[Mesa-dev] [PATCH 24/24] automake: ask the linker to do garbage collection

Lauri Kasanen cand at gmx.com
Fri Mar 28 01:35:00 PDT 2014


On Thu, 27 Mar 2014 21:00:39 +0000
Emil Velikov <emil.l.velikov at gmail.com> wrote:

> By doing GC the linker removes all the symbols that are not referenced
> and/or used by the final library. This results in a saving of ~100K
> up-to ~600K per (stripped) binary (classic vs gallium drivers).
> 
> If interested one can ask the compiler to print the sections that are
> removed using -Wl,--print-gc-sections.

I didn't see where you add the corresponding flags to CFLAGS/CXXFLAGS.

Without -ffunction-sections -fdata-sections in compile flags the garbage
collection is handicapped - add those by default too, and see much
greater gains.

I should also add that this is a GNUism, so it should be detected for
in configure in case people use other compilers/linkers. It's also
redundant if LTO is used.

In one of my projects I detect as such:

if -flto supported, use it (needs to be added to all three CFLAGS
CXXFLAGS LDFLAGS)
else if sections supported, use it
else print a message they're missing out

- Lauri


More information about the mesa-dev mailing list