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

Re: ELF extension for starting symbol search from module dependencies

On Thu, 2002-08-22 at 11:23, Jakub Jelinek wrote:
> On Thu, Aug 22, 2002 at 10:35:33AM +0200, Maciej W. Rozycki wrote:
> > On 21 Aug 2002, Luca Barbieri wrote:
> > 
> > > This is a proposal (including patches) for a GNU extension to the ELF
> > > executable format that adds a flag that causes the dynamic loader to
> > > start searching for symbols referenced by modules with the flag set from
> > > the module itself and its immediate dependencies. If the symbol is not
> > > found in this way, the dynamic linker continues the search as usual. 
> > > 
> > > This extension would be useful to allow to load in the same address
> > > space multiple libraries that define identical symbols, that would be
> > > used by different modules possibly unaware of each other's use of such
> > > symbols. 
> > 
> >  Hmm, what if two functions which get imported from different versions of
> > the same library operate on a static (private to the library) variable
> > that is needed for a proper operation for some reason?  You'd better
> > rebuild the sources to use a single version of each library instead. 
> Or, even better, introduce symbol versioning for libpng.so and maintain it
> ABI compatible from this point on...
Yes, you could compatibly introduce versioning in libraries and continue
to build unversioned binaries and it will work.

However, this introduces a minor ABI modification that will cause
libraries to break if they are used with libraries created by someone
else that decided to do the same but invented a different versioning

So this should be done in accordance with the library maintainers and
other distributors while this extension can be introduced immediately
and used until there is a universally accepted plan to add versioning.

Also, libpng is not the only target: this can similarly be used in all
the cases where the library maintainers decide to inconvenience everyone
else by creating two incompatible libraries with conflicting symbols.

BTW, how is RedHat handling this?

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: