From: Gustavo Sverzut Barbieri Date: Tue, 5 Oct 2010 19:45:51 +0000 (+0200) Subject: build-sys: Add compiler and linker flags to reduce binary size X-Git-Tag: v11~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9b85fc6a89386582bfe792dba881800b0a093839;p=thirdparty%2Fsystemd.git build-sys: Add compiler and linker flags to reduce binary size Reduce number of exported symbols with -fvisibility=hidden by default, this is safe as we're not generating and loadable library and our binaries should have no exported symbol other than main(). This alone reduces around 4kb per binary. It will also request GCC to emit every function and data variable in its own section, then request the linker to remove unused sections. This reduces the size of utility tools (/lib/systemd/systemd-*) by half or even more (in my system some binaries went from 84kb to 32kb). --- diff --git a/configure.ac b/configure.ac index 753adc5096c..562921a958f 100644 --- a/configure.ac +++ b/configure.ac @@ -86,7 +86,12 @@ CC_CHECK_CFLAGS_APPEND([ \ -ffast-math \ -fno-common \ -fdiagnostics-show-option \ - -fno-strict-aliasing]) + -fno-strict-aliasing \ + -fvisibility=hidden \ + -ffunction-sections \ + -fdata-sections \ + -Wl,--as-needed \ + -Wl,--gc-sections]) LT_PREREQ(2.2) LT_INIT