scons: add --gold-linker to link with the gold linker
authorCiro Santilli <ciro.santilli@arm.com>
Wed, 7 Nov 2018 00:00:00 +0000 (00:00 +0000)
committerCiro Santilli <ciro.santilli@arm.com>
Thu, 15 Nov 2018 13:19:06 +0000 (13:19 +0000)
This option can significantly speedup link time on Linux systems, which is
the main bottleneck to rebuild after small changes.

Change-Id: I3b0bdd61f7dcef0d73629c8ee2ee98091953fec3
Reviewed-on: https://gem5-review.googlesource.com/c/14075
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

SConstruct

index d81c5abd964cafc24613d77232f112842c35e5f6..0a8cd0edc78a0364bd0dae449772220506f17c12 100755 (executable)
@@ -145,6 +145,8 @@ AddLocalOption('--default', dest='default', type='string', action='store',
                help='Override which build_opts file to use for defaults')
 AddLocalOption('--ignore-style', dest='ignore_style', action='store_true',
                help='Disable style checking hooks')
+AddLocalOption('--gold-linker', dest='gold_linker', action='store_true',
+               help='Use the gold linker')
 AddLocalOption('--no-lto', dest='no_lto', action='store_true',
                help='Disable Link-Time Optimization for fast')
 AddLocalOption('--force-lto', dest='force_lto', action='store_true',
@@ -357,6 +359,8 @@ if main['GCC'] or main['CLANG']:
 
     main['FILTER_PSHLINKFLAGS'] = lambda x: str(x).replace(' -shared', '')
     main['PSHLINKFLAGS'] = main.subst('${FILTER_PSHLINKFLAGS(SHLINKFLAGS)}')
+    if GetOption('gold_linker'):
+        main.Append(LINKFLAGS='-fuse-ld=gold')
     main['PLINKFLAGS'] = main.subst('${LINKFLAGS}')
     shared_partial_flags = ['-r', '-nostdlib']
     main.Append(PSHLINKFLAGS=shared_partial_flags)