On 2020-09-25, John Calcote <john.calc...@gmail.com> wrote: > On Fri, Sep 25, 2020 at 10:45 AM Bob Friesenhahn > <bfrie...@simple.dallas.tx.us> wrote: >> Exactly! It might as well be a tar file except that the 'ar' archiver >> knows how to add/update/remove files from it and that is not possible >> with a tar file. The ability to do incremental updates of the archive >> file is important as objects are built/rebuilt. The 'make' program >> itself already understands archive files. >> > > I did not know this about libtool and convenience libraries. Do you have > any historical notion of why this was done? I ask because this sort of > behaviour total defeats the linker's ability to discard unused objects, > does it not?
As I mentioned elsethread, at least with current versions, this only appears to actually happen when convenience libraries are linked into libraries (which OP is doing). This _has_ to happen for the use case that convenience libraries are described to be, well, convenient for: linking a set of common object files into multiple shared libraries. Obviously "unused object" is a nontrivial concept when linking libraries. Cheers, Nick