From: Ciro Santilli Date: Tue, 21 May 2019 12:19:24 +0000 (+0100) Subject: scons: allow passing arbitrary CCFLAGS and LDFLAGS from the CLI X-Git-Tag: v19.0.0.0~775 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ec50225a654ddaedfcc6608409af496bab1d41c1;p=gem5.git scons: allow passing arbitrary CCFLAGS and LDFLAGS from the CLI The flags may be passed as: scons CCFLAGS_EXTRA='-Wno-error -pedantic' \ LDFLAGS_EXTRA='-g -g' build//gem5.opt The initial motivation for this commit is to help disable warning that have become errors while bisecting. scons orders the flags by Append call order, and ideally these flags should be added last to override the others, since the last GCC flags take precedence. However I haven't found a simple way to put them at the very end. Change-Id: Ida24dfb9604d88b99f113392ab5e47d578ba7259 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19048 Reviewed-by: Juha Jäykkä Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- diff --git a/SConstruct b/SConstruct index 28999a5b5..9e27b484c 100755 --- a/SConstruct +++ b/SConstruct @@ -1,6 +1,6 @@ # -*- mode:python -*- -# Copyright (c) 2013, 2015-2017 ARM Limited +# Copyright (c) 2013, 2015-2017, 2019 ARM Limited # All rights reserved. # # The license below extends only to copyright in the software and shall @@ -290,6 +290,8 @@ global_vars = Variables(global_vars_file, args=ARGUMENTS) global_vars.AddVariables( ('CC', 'C compiler', environ.get('CC', main['CC'])), ('CXX', 'C++ compiler', environ.get('CXX', main['CXX'])), + ('CCFLAGS_EXTRA', 'Extra C and C++ compiler flags', ''), + ('LDFLAGS_EXTRA', 'Extra linker flags', ''), ('PYTHON_CONFIG', 'Python config binary to use', [ 'python2.7-config', 'python-config' ]), ('PROTOC', 'protoc tool', environ.get('PROTOC', 'protoc')), @@ -1285,6 +1287,9 @@ for variant_path in variant_paths: if env['USE_SSE2']: env.Append(CCFLAGS=['-msse2']) + env.Append(CCFLAGS='$CCFLAGS_EXTRA') + env.Append(LINKFLAGS='$LDFLAGS_EXTRA') + # The src/SConscript file sets up the build rules in 'env' according # to the configured variables. It returns a list of environments, # one for each variant build (debug, opt, etc.)