summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/SConscript30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/SConscript b/src/SConscript
index 02b3c28d4..115ce24eb 100755
--- a/src/SConscript
+++ b/src/SConscript
@@ -1085,19 +1085,26 @@ def makeEnv(env, label, objsfx, strip = False, **kwargs):
'-Wno-maybe-uninitialized',
'-Wno-type-limits'])
+
+ # The address sanitizer is available for gcc >= 4.8
+ if GetOption('with_asan'):
+ if GetOption('with_ubsan') and \
+ compareVersions(env['GCC_VERSION'], '4.9') >= 0:
+ new_env.Append(CCFLAGS=['-fsanitize=address,undefined',
+ '-fno-omit-frame-pointer'])
+ new_env.Append(LINKFLAGS='-fsanitize=address,undefined')
+ else:
+ new_env.Append(CCFLAGS=['-fsanitize=address',
+ '-fno-omit-frame-pointer'])
+ new_env.Append(LINKFLAGS='-fsanitize=address')
# Only gcc >= 4.9 supports UBSan, so check both the version
# and the command-line option before adding the compiler and
# linker flags.
- if GetOption('with_ubsan') and \
+ elif GetOption('with_ubsan') and \
compareVersions(env['GCC_VERSION'], '4.9') >= 0:
new_env.Append(CCFLAGS='-fsanitize=undefined')
new_env.Append(LINKFLAGS='-fsanitize=undefined')
- # The address sanitizer is available for gcc >= 4.8
- if GetOption('with_asan'):
- new_env.Append(CCFLAGS=['-fsanitize=address',
- '-fno-omit-frame-pointer'])
- new_env.Append(LINKFLAGS='-fsanitize=address')
if env['CLANG']:
swig_env.Append(CCFLAGS=['-Wno-sometimes-uninitialized',
@@ -1107,10 +1114,15 @@ def makeEnv(env, label, objsfx, strip = False, **kwargs):
# We require clang >= 3.1, so there is no need to check any
# versions here.
if GetOption('with_ubsan'):
- new_env.Append(CCFLAGS='-fsanitize=undefined')
- new_env.Append(LINKFLAGS='-fsanitize=undefined')
+ if GetOption('with_asan'):
+ new_env.Append(CCFLAGS=['-fsanitize=address,undefined',
+ '-fno-omit-frame-pointer'])
+ new_env.Append(LINKFLAGS='-fsanitize=address,undefined')
+ else:
+ new_env.Append(CCFLAGS='-fsanitize=undefined')
+ new_env.Append(LINKFLAGS='-fsanitize=undefined')
- if GetOption('with_asan'):
+ elif GetOption('with_asan'):
new_env.Append(CCFLAGS=['-fsanitize=address',
'-fno-omit-frame-pointer'])
new_env.Append(LINKFLAGS='-fsanitize=address')