From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19798 invoked by alias); 27 Mar 2013 22:09:12 -0000 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org Received: (qmail 19568 invoked by uid 55); 27 Mar 2013 22:09:00 -0000 From: "neleai at seznam dot cz" To: glibc-bugs@sourceware.org Subject: [Bug dynamic-link/15311] _dl_sort_fini static deps can be violated by dynamic ones Date: Wed, 27 Mar 2013 22:09:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: dynamic-link X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: neleai at seznam dot cz X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 X-SW-Source: 2013-03/txt/msg00154.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=15311 --- Comment #3 from Ondrej Bilka 2013-03-27 22:09:00 UTC --- On Wed, Mar 27, 2013 at 07:49:25AM +0000, dhatch at ilm dot com wrote: > http://sourceware.org/bugzilla/show_bug.cgi?id=15311 > > Bug #: 15311 > Summary: _dl_sort_fini static deps can be violated by dynamic > ones > Product: glibc > Version: unspecified > Status: NEW > Severity: normal > Priority: P2 > Component: dynamic-link > AssignedTo: unassigned@sourceware.org > ReportedBy: dhatch@ilm.com > Classification: Unclassified > > > _dl_sort_fini tries to honor static dependencies > at the expense of relocation (dynamic) dependencies, when there is a conflict. > But the code that does this is rather half-hearted-- > it only ignores a dynamic dependency > if the dynamic dependency directly contradicts > a single static dependency, per the following comment > in the loop over dynamic dependencies in elf/dl-fini.c: > /* If a cycle exists with a link time dependency, > preserve the latter. */ > > In even slightly more complex situations, > e.g. a mixed cycle of length 3 (consisting of at least one > static and at least one dynamic dependency), > no preference is given to the static dep(s); > the cycle is broken arbitrarily and so the static dep may be violated, > even if there are no cycles at all in the static dependency graph. > > If static dependencies really are more important than dynamic ones, > it might be a good idea to give them preference in a more principled way. > > If the sorting routine gets overhauled > (as I think it needs to be, due to currently absurd asymptotic behavior, > see bug 15310) > it would be good to keep this in mind. > If you do topologic sort it should suffice to take static dependency edges before dynamic ones, it assures that static when static are acyclic then they are always correctly ordered. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.