scons: Fix linker flags for prof/perf builds.
SCons does not use a variable called LDFLAGS, it uses one called LINKFLAGS. Switch some errant uses to the correct name. Also, adjust all the other variable names to use LINK, for consistency and to avoid confusion and avoid mistakes in the future. Change-Id: I38d40f5231afdf62bcfba04478d403d65e9b1e26 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51987 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
14
SConstruct
14
SConstruct
@@ -248,8 +248,8 @@ global_vars.AddVariables(
|
|||||||
('CXX', 'C++ compiler', environ.get('CXX', main['CXX'])),
|
('CXX', 'C++ compiler', environ.get('CXX', main['CXX'])),
|
||||||
('CCFLAGS_EXTRA', 'Extra C and C++ compiler flags', ''),
|
('CCFLAGS_EXTRA', 'Extra C and C++ compiler flags', ''),
|
||||||
('GEM5PY_CCFLAGS_EXTRA', 'Extra C and C++ gem5py compiler flags', ''),
|
('GEM5PY_CCFLAGS_EXTRA', 'Extra C and C++ gem5py compiler flags', ''),
|
||||||
('GEM5PY_LDFLAGS_EXTRA', 'Extra marshal gem5py flags', ''),
|
('GEM5PY_LINKFLAGS_EXTRA', 'Extra marshal gem5py flags', ''),
|
||||||
('LDFLAGS_EXTRA', 'Extra linker flags', ''),
|
('LINKFLAGS_EXTRA', 'Extra linker flags', ''),
|
||||||
('PYTHON_CONFIG', 'Python config binary to use',
|
('PYTHON_CONFIG', 'Python config binary to use',
|
||||||
[ 'python3-config', 'python-config']
|
[ 'python3-config', 'python-config']
|
||||||
),
|
),
|
||||||
@@ -304,7 +304,7 @@ main.Prepend(CPPPATH=Dir('include'))
|
|||||||
|
|
||||||
# Initialize the Link-Time Optimization (LTO) flags
|
# Initialize the Link-Time Optimization (LTO) flags
|
||||||
main['LTO_CCFLAGS'] = []
|
main['LTO_CCFLAGS'] = []
|
||||||
main['LTO_LDFLAGS'] = []
|
main['LTO_LINKFLAGS'] = []
|
||||||
|
|
||||||
# According to the readme, tcmalloc works best if the compiler doesn't
|
# According to the readme, tcmalloc works best if the compiler doesn't
|
||||||
# assume that we're using the builtin malloc and friends. These flags
|
# assume that we're using the builtin malloc and friends. These flags
|
||||||
@@ -386,7 +386,7 @@ if main['GCC']:
|
|||||||
warning('"make" not found, link time optimization will be '
|
warning('"make" not found, link time optimization will be '
|
||||||
'single threaded.')
|
'single threaded.')
|
||||||
|
|
||||||
for var in 'LTO_CCFLAGS', 'LTO_LDFLAGS':
|
for var in 'LTO_CCFLAGS', 'LTO_LINKFLAGS':
|
||||||
# Use the same amount of jobs for LTO as we are running scons with.
|
# Use the same amount of jobs for LTO as we are running scons with.
|
||||||
main[var] = ['-flto%s' % parallelism]
|
main[var] = ['-flto%s' % parallelism]
|
||||||
|
|
||||||
@@ -400,7 +400,7 @@ elif main['CLANG']:
|
|||||||
|
|
||||||
# Set the Link-Time Optimization (LTO) flags if enabled.
|
# Set the Link-Time Optimization (LTO) flags if enabled.
|
||||||
if GetOption('with_lto'):
|
if GetOption('with_lto'):
|
||||||
for var in 'LTO_CCFLAGS', 'LTO_LDFLAGS':
|
for var in 'LTO_CCFLAGS', 'LTO_LINKFLAGS':
|
||||||
main[var] = ['-flto']
|
main[var] = ['-flto']
|
||||||
|
|
||||||
# clang has a few additional warnings that we disable.
|
# clang has a few additional warnings that we disable.
|
||||||
@@ -537,7 +537,7 @@ gem5py_env = main.Clone()
|
|||||||
|
|
||||||
# Bare minimum environment that only includes python
|
# Bare minimum environment that only includes python
|
||||||
gem5py_env.Append(CCFLAGS=['${GEM5PY_CCFLAGS_EXTRA}'])
|
gem5py_env.Append(CCFLAGS=['${GEM5PY_CCFLAGS_EXTRA}'])
|
||||||
gem5py_env.Append(LINKFLAGS=['${GEM5PY_LDFLAGS_EXTRA}'])
|
gem5py_env.Append(LINKFLAGS=['${GEM5PY_LINKFLAGS_EXTRA}'])
|
||||||
|
|
||||||
main['HAVE_PKG_CONFIG'] = main.Detect('pkg-config')
|
main['HAVE_PKG_CONFIG'] = main.Detect('pkg-config')
|
||||||
|
|
||||||
@@ -709,7 +709,7 @@ Build variables for {dir}:
|
|||||||
sticky_vars.Save(current_vars_file, env)
|
sticky_vars.Save(current_vars_file, env)
|
||||||
|
|
||||||
env.Append(CCFLAGS='$CCFLAGS_EXTRA')
|
env.Append(CCFLAGS='$CCFLAGS_EXTRA')
|
||||||
env.Append(LINKFLAGS='$LDFLAGS_EXTRA')
|
env.Append(LINKFLAGS='$LINKFLAGS_EXTRA')
|
||||||
|
|
||||||
exports=['env', 'gem5py_env']
|
exports=['env', 'gem5py_env']
|
||||||
|
|
||||||
|
|||||||
@@ -830,10 +830,10 @@ envs = {
|
|||||||
envs['debug'].Append(CPPDEFINES=['DEBUG', 'TRACING_ON=1'])
|
envs['debug'].Append(CPPDEFINES=['DEBUG', 'TRACING_ON=1'])
|
||||||
envs['opt'].Append(CCFLAGS=['-g'], CPPDEFINES=['TRACING_ON=1'])
|
envs['opt'].Append(CCFLAGS=['-g'], CPPDEFINES=['TRACING_ON=1'])
|
||||||
envs['fast'].Append(CPPDEFINES=['NDEBUG', 'TRACING_ON=0'])
|
envs['fast'].Append(CPPDEFINES=['NDEBUG', 'TRACING_ON=0'])
|
||||||
envs['prof'].Append(CCFLAGS=['-g', '-pg'], LDFLAGS=['-pg'],
|
envs['prof'].Append(CCFLAGS=['-g', '-pg'], LINKFLAGS=['-pg'],
|
||||||
CPPDEFINES=['NDEBUG', 'TRACING_ON=0'])
|
CPPDEFINES=['NDEBUG', 'TRACING_ON=0'])
|
||||||
envs['perf'].Append(CCFLAGS=['-g'], CPPDEFINES=['NDEBUG', 'TRACING_ON=0'],
|
envs['perf'].Append(CCFLAGS=['-g'], CPPDEFINES=['NDEBUG', 'TRACING_ON=0'],
|
||||||
LDFLAGS=['-Wl,--no-as-needed', '-lprofiler', '-Wl,--as-needed'])
|
LINKFLAGS=['-Wl,--no-as-needed', '-lprofiler', '-Wl,--as-needed'])
|
||||||
|
|
||||||
# For Link Time Optimization, the optimisation flags used to compile
|
# For Link Time Optimization, the optimisation flags used to compile
|
||||||
# individual files are decoupled from those used at link time
|
# individual files are decoupled from those used at link time
|
||||||
@@ -844,13 +844,13 @@ if env['GCC']:
|
|||||||
envs['debug'].Append(CCFLAGS=['-gstabs+'])
|
envs['debug'].Append(CCFLAGS=['-gstabs+'])
|
||||||
else:
|
else:
|
||||||
envs['debug'].Append(CCFLAGS=['-ggdb3'])
|
envs['debug'].Append(CCFLAGS=['-ggdb3'])
|
||||||
envs['debug'].Append(LDFLAGS=['-O0'])
|
envs['debug'].Append(LINKFLAGS=['-O0'])
|
||||||
# opt, fast, prof and perf all share the same cc flags, also add
|
# opt, fast, prof and perf all share the same cc flags, also add
|
||||||
# the optimization to the ldflags as LTO defers the optimization
|
# the optimization to the linkflags as LTO defers the optimization
|
||||||
# to link time
|
# to link time
|
||||||
for target in ['opt', 'fast', 'prof', 'perf']:
|
for target in ['opt', 'fast', 'prof', 'perf']:
|
||||||
envs[target].Append(CCFLAGS=['-O3', '${LTO_CCFLAGS}'])
|
envs[target].Append(CCFLAGS=['-O3', '${LTO_CCFLAGS}'])
|
||||||
envs[target].Append(LDFLAGS=['-O3', '${LTO_LDFLAGS}'])
|
envs[target].Append(LINKFLAGS=['-O3', '${LTO_LINKFLAGS}'])
|
||||||
|
|
||||||
elif env['CLANG']:
|
elif env['CLANG']:
|
||||||
envs['debug'].Append(CCFLAGS=['-g', '-O0'])
|
envs['debug'].Append(CCFLAGS=['-g', '-O0'])
|
||||||
|
|||||||
Reference in New Issue
Block a user