libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RFC: proposal for indirect deplibs


From: Ralf Wildenhues
Subject: Re: RFC: proposal for indirect deplibs
Date: Fri, 26 Nov 2004 14:53:38 +0100
User-agent: Mutt/1.4.1i

Hi Scott, everybody else,

* Scott James Remnant wrote on Fri, Nov 26, 2004 at 07:32:39AM CET:
> On Wed, 2004-11-24 at 10:19 +0100, Ralf Wildenhues wrote:
> 
> > needed-following linker:
> > A system with a needed-following linker has a means to record
> > dependencies on other libraries within a library (based on the soname of
> > the dependency library), and a linker that uses this information to load
> > dependent libraries.  Solaris and Linux are examples of this, [
> > prominent counter-example ].
> > 
> I always consider Solaris the prominent counter-example, though my
> information may be out of date.  Can you demonstrate which versions of
> Solaris do and don't have link-loaders that follow NEEDED?
> 
> It may be that they fixed it, but didn't add appropriate NEEDEDs to some
> of their shipped libraries.  We'll need to take this into account if
> that's the case.

Actually, I don't have a clue about Solaris, I merely thought I saw a
statement to that extent somewhere.  I'll go and check.

> > This has lead to subtle problems on such systems when dependent
> > libraries are recompiled against different versions of its dependencies.
> > Multiple versions of a library may be linked in the same output,
> > resulting in a broken link.
> > [ insert example from Scott ]
> > 
> Generally it's not a "multiple versions may be linked" problem, because
> you have that exact same problem when you don't link them all.  They
> still both get loaded into the address space.

ACK.  Thanks for mentioning this (Bob also did this before).

> The problem is when you have a SONAME change in a low-level library
> (such as libpng) in a very large stack (such as GNOME or KDE).  The
> low-level library is only being used by the libraries that link it, yet
> you have to recompile the entire desktop environment to move to the new
> library as everything directly linked it.
> 
> By only linking the actually declared dependencies, you only need
> recompile the libraries that declare dependencies on libpng itself.

ACK.

Thanks everybody else for the numerous comments.  I think I should have
some time this weekend to address most of the ideas and post an updated
RFC.

Generally, I agree with the notion that only one label per relationship
may not be sufficient, also thinking about Bob's comments convinced me
that it's necessary to go the most conservative default route (i.e.,
unless library packages actively change their configuration, libtool
will do the same as before).  I was hoping to be able to avoid different
notions of API- and ABI-compatibility, and I think that should be
possible by using a very strict notion of indirect derivation only.

Independent of this, I regard this topic as quite undecided, and would
only push for advancing libtool in that direction if we can reach a
consensus about this.

Stay tuned,
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]