-ffunction-sections, -fdata-sections and -Wl,--gc-sections
Tim Kientzle
kientzle at freebsd.org
Mon Sep 16 02:30:10 UTC 2013
On Sep 15, 2013, at 2:24 PM, Ed Schouten <ed at 80386.nl> wrote:
> GCC and Clang support the -ffunction-sections and -fdata-sections
> flags. Essentially, these flags force the compiler to put every
> function and variable in its own section. Though this will blow up the
….
> - devd suddenly becomes 500 KB in size, instead of a megabyte,
> - init's size drops from 900 KB to 600 KB,
Can you figure out what functions are getting omitted
when you make this change?
Can you extract a linkage map from a build done this
way and compare it to one done the regular way?
That big of a difference suggests we have some badly-factored
code in our libraries. That is, some library is putting functions
into a single source file that shouldn't be combined.
Tim
More information about the freebsd-current
mailing list