Date: Wed, 22 Dec 2021 06:46:46 +0100 From: Markus Wichmann <nullplan@....net> To: musl@...ts.openwall.com Subject: Re: Dynamic linking of NEEDED with absolute path differs than that of glibc On Tue, Dec 21, 2021 at 10:56:33AM -0800, Farid Zakaria wrote: > Hello! > > I am working, along with Tom <scogland1@...l.gov> on a contribution to > patchelf that takes all the NEEDED from downstream shared object > dependencies and lifts them to the top executable. I then change the > NEEDED in the top executable to be absolute paths. This seems to work > as expected in glibc. > May I ask why you copy the transitive dependencies? This also used to be the default behavior of GNU ld, and it didn't make sense to me then, either. I noticed it when I was using Gentoo. I had some library providing some cryptographic service, but not actually implementing the crypto itself; it could use at least two backends for that. Something happened that broke one backend, so I recompiled the library to use the other backend, but the executables now would not load, because they contained a dependency on the library they never actually needed directly. So I had to recompile the program. And I thought not having to recompile the programs when you update the libraries was supposed to be a strength of shared libraries. > > Tom helped track this down due to the shortname assignment behavior > This has already been the subject of discussion years ago. The stated reason (Rich gave) back then was that loading a library by explicit file name is not the same as loading it by short name. Loading the library by explicit file name can mean that you have a module with a private version of a library, that is not meant to be globally accessible, and if then later someone comes along to load a library by the short name, they do not mean the same version, but rather, the system version of the library. Though I don't know if this applies to DT_NEEDED as much as to dlopen(). Ciao, Markus
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.