Date: Sun, 15 Sep 2013 19:30:01 -0700 From: Tim Kientzle <kientzle@freebsd.org> To: Ed Schouten <ed@80386.nl> Cc: FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: -ffunction-sections, -fdata-sections and -Wl,--gc-sections Message-ID: <C44ABFB8-557D-48F3-A379-C00B6E0E2606@freebsd.org> In-Reply-To: <CAJOYFBBGY0GosPwG1B=1MKyapChEtX-O97r2zhXpGS8o7WO3gA@mail.gmail.com> References: <CAJOYFBBGY0GosPwG1B=1MKyapChEtX-O97r2zhXpGS8o7WO3gA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sep 15, 2013, at 2:24 PM, Ed Schouten <ed@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 =85. > - 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C44ABFB8-557D-48F3-A379-C00B6E0E2606>