enormous executable

Simon Marlow simonmar@microsoft.com
Tue, 2 Oct 2001 10:02:35 +0100


> | Surely the executable itself is only linked with the=20
> | functions that are actually used by the program? =20
>=20
> AFAIUI the GNU linker is not clever enough to remove junk
> on a per-function basis, only on a per-object basis.  This is
> why we do object-splitting -- by breaking libraries up into=20
> thousands of .o files before rolling them into a .a, the
> effectiveness of what GNU ld can do is enhanced.
>=20
> Perhaps more recent GNU ld's do better on some platforms?
> I have a vague recollection of some -gc-sections flag.

Yup, but it needs compiler support.  The idea is to get the compiler to
put each function in its own section, then the linker removes unused
sections from the linked image.

Cheers,
	Simon