scons: Bump minimum gcc version to 4.8
[gem5.git] / src / SConscript
index 9b6c2170be3166e1f3f8bc5a268d4771f54b6e94..bb6f26fc1221820d6fd36e3ac6a6e3e6315a5dce 100755 (executable)
@@ -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()
@@ -1251,7 +1252,6 @@ needed_envs = [identifyTarget(target) for target in BUILD_TARGETS]
 if 'all' in needed_envs:
     needed_envs += target_types
 
-gem5_root = Dir('.').up().up().abspath
 def makeEnvirons(target, source, env):
     # cause any later Source() calls to be fatal, as a diagnostic.
     Source.done()
@@ -1300,7 +1300,7 @@ def makeEnvirons(target, source, env):
 
     # Set up the regression tests for each build.
     for e in envList:
-        SConscript(os.path.join(gem5_root, 'tests', 'SConscript'),
+        SConscript(os.path.join(env.root.abspath, 'tests', 'SConscript'),
                    variant_dir = variantd('tests', e.Label),
                    exports = { 'env' : e }, duplicate = False)