Extract an archive member to satisfy a DSO undef

Alan Modra amodra@gmail.com
Sat Aug 14 07:31:52 GMT 2021


My history of computing is quite rusty, but I believe static archives
predated shared libraries.  Given that, and the fact that when linking
against -lfoo a user does not necessarily know whether libfoo.a or
libfoo.so exists, I would say reasonable linker behaviour for shared
libraries should as closely as possible mimic that for static
libraries.

Since linking "some.o -lfoo -lbar" with a typical unix linker will
extract archive elements from libbar.a to satisfy an undefined
reference from an archive element extracted from libfoo.a, I would
expect libfoo.so undefined symbols to similarly cause elements to be
extracted from libbar.a.  Anything else is surprising.

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list