dependency list for static libraries

Howard Chu hyc@symas.com
Thu Sep 3 20:42:59 GMT 2020


Howard Chu wrote:
> Joseph Myers wrote:
>> You can install a linker script under a .a file name to achieve this
>> effect.  On x86_64, glibc's libm.a now looks like:
>>
>> /* GNU ld script
>> */
>> OUTPUT_FORMAT(elf64-x86-64)
>> GROUP ( /usr/lib64/libm-2.26.90.a /usr/lib64/libmvec.a )
> 
> Thanks for the suggestion, but that still means introducing additional/auxiliary files, so it has much the same drawback as libtool files. I also find this
> particularly gross because it breaks the principle of least surprise; when I see a *.a file I expect ar, nm, and ranlib to work on it. I'm kind of shocked that
> such a solution ever flew.
> 
Here's a proposed patch to ar to implement the first half of the solution:
storing the dependencies into a static library. It looks like I may be able
to use the linker plugin facility to handle the ld side of things. But it's
not clear to me that it won't clash with other plugins. I.e., if one plugin
claims an archive file, will that prevent other plugins from being able to
process it?

-- 
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-ar-support-for-dependencies.patch
Type: text/x-patch
Size: 9613 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20200903/efe02fc6/attachment-0001.bin>


More information about the Binutils mailing list