scons: Add '-Wl,--as-needed' to default LINKFLAGS
authorYu-hsin Wang <yuhsingw@google.com>
Mon, 6 Jan 2020 04:27:19 +0000 (12:27 +0800)
committerYu-hsin Wang <yuhsingw@google.com>
Wed, 8 Jan 2020 09:01:55 +0000 (09:01 +0000)
In current build flow, EXTRAS flag is evaluated before building gem5
tools and binaries. Such that, unneeded libraries may be linked into
gem5 binaries. Adding '-Wl,--as-needed' can fix this problem also
shrinks binaries.

Change-Id: Ifb001786a66b0dd9b29865e39a5740313002f250
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24003
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
SConstruct

index ec74d699d5dd4743f8af0315a147a5cd02950187..d84b91284bde04fc5d52cf90121378465edf2ca7 100755 (executable)
@@ -372,6 +372,7 @@ if main['GCC'] or main['CLANG']:
         main.Append(CCFLAGS=['-I/usr/local/include'])
         main.Append(CXXFLAGS=['-I/usr/local/include'])
 
+    main.Append(LINKFLAGS='-Wl,--as-needed')
     main['FILTER_PSHLINKFLAGS'] = lambda x: str(x).replace(' -shared', '')
     main['PSHLINKFLAGS'] = main.subst('${FILTER_PSHLINKFLAGS(SHLINKFLAGS)}')
     if GetOption('gold_linker'):