scons: fix --gold-linker build after --as-needed

The build was failing with:

/usr/bin/ld: unrecognized option '--as-needed -fuse-ld=gold'

and --verbose confirms that a single quoted CLI parameter was being
executed:

"-Wl,--as-needed -fuse-ld=gold"

This happened because at Ifb001786a66b0dd9b29865e39a5740313002f250
--as-needed was added, and because it is the second option to happen before
the following main.subst, it exposed the fact that the existing main.subst
was wrong, because it returns a string instead of the expected array.

Change-Id: I619d242d60fe9d27438638ac11c2b92512881f26
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24624
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Ciro Santilli
2020-01-15 16:11:30 +00:00
parent 2f2f508c74
commit ae7dd927e2

View File

@@ -1,6 +1,6 @@
# -*- mode:python -*-
# Copyright (c) 2013, 2015-2019 ARM Limited
# Copyright (c) 2013, 2015-2020 ARM Limited
# All rights reserved.
#
# The license below extends only to copyright in the software and shall
@@ -377,7 +377,7 @@ if main['GCC'] or main['CLANG']:
main['PSHLINKFLAGS'] = main.subst('${FILTER_PSHLINKFLAGS(SHLINKFLAGS)}')
if GetOption('gold_linker'):
main.Append(LINKFLAGS='-fuse-ld=gold')
main['PLINKFLAGS'] = main.subst('${LINKFLAGS}')
main['PLINKFLAGS'] = main.get('LINKFLAGS')
shared_partial_flags = ['-r', '-nostdlib']
main.Append(PSHLINKFLAGS=shared_partial_flags)
main.Append(PLINKFLAGS=shared_partial_flags)