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).
This commit is contained in:
parent
7c8d6e3660
commit
be014d4338
2 changed files with 22 additions and 23 deletions
12
SConstruct
12
SConstruct
|
@ -675,12 +675,12 @@ else:
|
|||
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,15 +690,13 @@ if main['GCC']:
|
|||
# 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()
|
||||
|
||||
# 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
|
||||
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 + \
|
||||
|
@ -739,7 +737,7 @@ if main['GCC']:
|
|||
|
||||
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)
|
||||
|
|
|
@ -1084,9 +1084,9 @@ def makeEnv(env, label, objsfx, strip = False, **kwargs):
|
|||
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 @@ def makeEnv(env, label, objsfx, strip = False, **kwargs):
|
|||
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()
|
||||
|
|
Loading…
Reference in a new issue