On Wed, Nov 26, 2014 at 03:28:15PM +0100, Peter Wu wrote: > (cc'ing Zbigniew because he introduced gold, cc'ing Gustavo because he > added --gc-sections) > > On Monday 24 November 2014 20:00:58 Peter Wu wrote: > > The --gc-sections linker option triggers a bug in the gold linker[1] which > > results in a bogus .eh_frame section making debugging harder: gdb backtraces > > stop at a library built by systemd and libunwind simply segfaults. > > > > Workaround by that bug by removing the option. The additional disk space > > saved by this option is marginal anyway (less than 1%). To illustrate this, > > see > > this `du -ks` on the installed files: > > > > 83548 without-gc-sections/install > > 83432 with-gc-sections/install > > 25796 without-gc-sections/install-strip > > 25752 with-gc-sections/install-strip > > The above tests were done with binutils 2.24-8 on Arch Linux x86_64 > (installation media, so a pretty pristine packages list). > > Meanwhile the bug has been fixed in binutils git (which will also end up > in binutils 2.25). The numbers for binutils commit > c924eb67e143722e4098d84c1cb91123a51c988f ("Fix corrupted .eh_frame > section with LTO and --gc-sections.") and the same configure options: > > 84024 new-binutils-without-gc-sections/install > 83988 new-binutils-with-gc-sections/install > 26384 new-binutils-without-gc-sections/install-strip > 26380 new-binutils-with-gc-sections/install-strip > > For clarity on how I got these numbers, I ran 'makepkg' to build > systemd (based on 217-7), then executed 'make install(-strip) > DESTDIR=$PWD/fs' and counted the size with `du -sk`. > > The gains were pretty small, so what about removing the option and > improve the debugging experience?
I'm okay with the change to remove gc-sections. systemd is pretty good at not leaving crap in its code, then results are pretty small as we saw. My only comment is that we should also remove: -ffunction-sections -fdata-sections those are only useful to enable gc-sections. From time to time someone should run a build with -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,--print-gc-sections so we print out sections that are dangling and then we could remove them from source code if needed. BR, -- Gustavo Sverzut Barbieri Intel Open source Technology Center _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel