changeset 024291dab733 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=024291dab733
description:
scons: Bump minimum gcc version to 4.8
After reaching consensus on the mailing list, this patch officially
makes gcc 4.8 the minimum.
A few checks in the SConstruct are cleaned up as a result. This patch
also adds "-fno-omit-frame-pointer" when using ASAN (which is part of
the gcc/clang recommended flags).
diffstat:
SConstruct | 36 +++++++++++++++++-------------------
src/SConscript | 9 +++++----
2 files changed, 22 insertions(+), 23 deletions(-)
diffs (91 lines):
diff -r 16ceeed96e1c -r 024291dab733 SConstruct
--- a/SConstruct Fri May 27 16:55:01 2016 +0100
+++ b/SConstruct Mon May 30 02:10:48 2016 -0400
@@ -675,12 +675,12 @@
Exit(1)
if main['GCC']:
- # Check for a supported version of gcc. >= 4.7 is chosen for its
+ # Check for a supported version of gcc. >= 4.8 is chosen for its
# level of c++11 support. See
# http://gcc.gnu.org/projects/cxx0x.html for details.
gcc_version = readCommand([main['CXX'], '-dumpversion'], exception=False)
- if compareVersions(gcc_version, "4.7") < 0:
- print 'Error: gcc version 4.7 or newer required.'
+ if compareVersions(gcc_version, "4.8") < 0:
+ print 'Error: gcc version 4.8 or newer required.'
print ' Installed version:', gcc_version
Exit(1)
@@ -690,23 +690,21 @@
# to avoid performance penalties on certain AMD chips. Older
# assemblers detect this as an error, "Error: expecting string
# instruction after `rep'"
- if compareVersions(gcc_version, "4.8") > 0:
- as_version_raw = readCommand([main['AS'], '-v', '/dev/null'],
- exception=False).split()
+ as_version_raw = readCommand([main['AS'], '-v', '/dev/null'],
+ exception=False).split()
- # version strings may contain extra distro-specific
- # qualifiers, so play it safe and keep only what comes before
- # the first hyphen
- as_version = as_version_raw[-1].split('-')[0] if as_version_raw \
- else None
+ # version strings may contain extra distro-specific
+ # qualifiers, so play it safe and keep only what comes before
+ # the first hyphen
+ as_version = as_version_raw[-1].split('-')[0] if as_version_raw else None
- if not as_version or compareVersions(as_version, "2.23") < 0:
- print termcap.Yellow + termcap.Bold + \
- 'Warning: This combination of gcc and binutils have' + \
- ' known incompatibilities.\n' + \
- ' If you encounter build problems, please update ' + \
- 'binutils to 2.23.' + \
- termcap.Normal
+ if not as_version or compareVersions(as_version, "2.23") < 0:
+ print termcap.Yellow + termcap.Bold + \
+ 'Warning: This combination of gcc and binutils have' + \
+ ' known incompatibilities.\n' + \
+ ' If you encounter build problems, please update ' + \
+ 'binutils to 2.23.' + \
+ termcap.Normal
# Make sure we warn if the user has requested to compile with the
# Undefined Benahvior Sanitizer and this version of gcc does not
@@ -739,7 +737,7 @@
elif main['CLANG']:
# Check for a supported version of clang, >= 3.1 is needed to
- # support similar features as gcc 4.7. See
+ # support similar features as gcc 4.8. See
# http://clang.llvm.org/cxx_status.html for details
clang_version_re = re.compile(".* version (\d+\.\d+)")
clang_version_match = clang_version_re.search(CXX_version)
diff -r 16ceeed96e1c -r 024291dab733 src/SConscript
--- a/src/SConscript Fri May 27 16:55:01 2016 +0100
+++ b/src/SConscript Mon May 30 02:10:48 2016 -0400
@@ -1084,9 +1084,9 @@
new_env.Append(LINKFLAGS='-fsanitize=undefined')
# The address sanitizer is available for gcc >= 4.8
- if GetOption('with_asan') and \
- compareVersions(env['GCC_VERSION'], '4.8') >= 0:
- new_env.Append(CCFLAGS='-fsanitize=address')
+ if GetOption('with_asan'):
+ new_env.Append(CCFLAGS=['-fsanitize=address',
+ '-fno-omit-frame-pointer'])
new_env.Append(LINKFLAGS='-fsanitize=address')
if env['CLANG']:
@@ -1101,7 +1101,8 @@
new_env.Append(LINKFLAGS='-fsanitize=undefined')
if GetOption('with_asan'):
- new_env.Append(CCFLAGS='-fsanitize=address')
+ new_env.Append(CCFLAGS=['-fsanitize=address',
+ '-fno-omit-frame-pointer'])
new_env.Append(LINKFLAGS='-fsanitize=address')
werror_env = new_env.Clone()
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev