Eliminating static binaries (Was: Unwanted RPM dependencies)

Bernardo Innocenti bernie at codewiz.org
Thu Jun 7 23:44:00 UTC 2007


Denis Leroy wrote:

> I believe the granularity of the linker is a single object file. So even 
>   if you use just a small routine within a big object file, the whole 
> thing is linked with (if you think about how ld works internally and 
> what it has to do, it makes sense).

True, but irrelevant.  Because this behavior of linkers is
well known, library implementors always have been splitting
functions in separate compilation units.

The reason you get 400KB of stuff in is that library calls
are so interconnected that linking printf() could easily
end up pulling in even the DNS resolver ;-)

As a side note, today, glibc and other libraries designe for
GCC only could use -ffunction-sections to achieve pretty much
the same goal without creating that much debris and cutting
build time considerably.

-- 
   // Bernardo Innocenti
 \X/  http://www.codewiz.org/




More information about the fedora-devel-list mailing list