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 scheme. 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?
Description: This is a digitally signed message part