add msan sanitizer option for linus/bsd, lsan option for osx
This commit is contained in:
parent
8c45b1d61c
commit
da35cd2f00
|
@ -70,6 +70,7 @@ def get_opts():
|
||||||
BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
|
BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
|
||||||
BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
|
BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
|
||||||
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
||||||
|
BoolVariable("use_msan", "Use LLVM/GCC compiler memory sanitizer (MSAN))", False),
|
||||||
BoolVariable("pulseaudio", "Detect and use PulseAudio", True),
|
BoolVariable("pulseaudio", "Detect and use PulseAudio", True),
|
||||||
BoolVariable("udev", "Use udev for gamepad connection callbacks", True),
|
BoolVariable("udev", "Use udev for gamepad connection callbacks", True),
|
||||||
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
||||||
|
@ -142,7 +143,7 @@ def configure(env):
|
||||||
env.Append(CCFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
env.Append(CCFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
||||||
env.Append(LINKFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
env.Append(LINKFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
||||||
|
|
||||||
if env["use_ubsan"] or env["use_asan"] or env["use_lsan"] or env["use_tsan"]:
|
if env["use_ubsan"] or env["use_asan"] or env["use_lsan"] or env["use_tsan"] or env["use_msan"]:
|
||||||
env.extra_suffix += "s"
|
env.extra_suffix += "s"
|
||||||
|
|
||||||
if env["use_ubsan"]:
|
if env["use_ubsan"]:
|
||||||
|
@ -161,6 +162,10 @@ def configure(env):
|
||||||
env.Append(CCFLAGS=["-fsanitize=thread"])
|
env.Append(CCFLAGS=["-fsanitize=thread"])
|
||||||
env.Append(LINKFLAGS=["-fsanitize=thread"])
|
env.Append(LINKFLAGS=["-fsanitize=thread"])
|
||||||
|
|
||||||
|
if env["use_msan"]:
|
||||||
|
env.Append(CCFLAGS=["-fsanitize=memory"])
|
||||||
|
env.Append(LINKFLAGS=["-fsanitize=memory"])
|
||||||
|
|
||||||
if env["use_lto"]:
|
if env["use_lto"]:
|
||||||
if not env["use_llvm"] and env.GetOption("num_jobs") > 1:
|
if not env["use_llvm"] and env.GetOption("num_jobs") > 1:
|
||||||
env.Append(CCFLAGS=["-flto"])
|
env.Append(CCFLAGS=["-flto"])
|
||||||
|
|
|
@ -35,6 +35,7 @@ def get_opts():
|
||||||
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
||||||
BoolVariable("use_ubsan", "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)", False),
|
BoolVariable("use_ubsan", "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)", False),
|
||||||
BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
|
BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
|
||||||
|
BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
|
||||||
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -131,7 +132,7 @@ def configure(env):
|
||||||
env["AS"] = basecmd + "as"
|
env["AS"] = basecmd + "as"
|
||||||
env.Append(CPPDEFINES=["__MACPORTS__"]) # hack to fix libvpx MM256_BROADCASTSI128_SI256 define
|
env.Append(CPPDEFINES=["__MACPORTS__"]) # hack to fix libvpx MM256_BROADCASTSI128_SI256 define
|
||||||
|
|
||||||
if env["use_ubsan"] or env["use_asan"] or env["use_tsan"]:
|
if env["use_ubsan"] or env["use_asan"] or env["use_lsan"] or env["use_tsan"]:
|
||||||
env.extra_suffix += "s"
|
env.extra_suffix += "s"
|
||||||
|
|
||||||
if env["use_ubsan"]:
|
if env["use_ubsan"]:
|
||||||
|
@ -142,6 +143,10 @@ def configure(env):
|
||||||
env.Append(CCFLAGS=["-fsanitize=address"])
|
env.Append(CCFLAGS=["-fsanitize=address"])
|
||||||
env.Append(LINKFLAGS=["-fsanitize=address"])
|
env.Append(LINKFLAGS=["-fsanitize=address"])
|
||||||
|
|
||||||
|
if env["use_lsan"]:
|
||||||
|
env.Append(CCFLAGS=["-fsanitize=leak"])
|
||||||
|
env.Append(LINKFLAGS=["-fsanitize=leak"])
|
||||||
|
|
||||||
if env["use_tsan"]:
|
if env["use_tsan"]:
|
||||||
env.Append(CCFLAGS=["-fsanitize=thread"])
|
env.Append(CCFLAGS=["-fsanitize=thread"])
|
||||||
env.Append(LINKFLAGS=["-fsanitize=thread"])
|
env.Append(LINKFLAGS=["-fsanitize=thread"])
|
||||||
|
|
|
@ -39,6 +39,7 @@ def get_opts():
|
||||||
BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
|
BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
|
||||||
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
||||||
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
||||||
|
BoolVariable("use_msan", "Use LLVM/GCC compiler memory sanitizer (MSAN))", False),
|
||||||
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
||||||
BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", False),
|
BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", False),
|
||||||
]
|
]
|
||||||
|
@ -99,7 +100,7 @@ def configure(env):
|
||||||
env.Append(CCFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
env.Append(CCFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
||||||
env.Append(LINKFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
env.Append(LINKFLAGS=["-ftest-coverage", "-fprofile-arcs"])
|
||||||
|
|
||||||
if env["use_ubsan"] or env["use_asan"] or env["use_lsan"] or env["use_tsan"]:
|
if env["use_ubsan"] or env["use_asan"] or env["use_lsan"] or env["use_tsan"] or env["use_msan"]:
|
||||||
env.extra_suffix += "s"
|
env.extra_suffix += "s"
|
||||||
|
|
||||||
if env["use_ubsan"]:
|
if env["use_ubsan"]:
|
||||||
|
@ -118,6 +119,10 @@ def configure(env):
|
||||||
env.Append(CCFLAGS=["-fsanitize=thread"])
|
env.Append(CCFLAGS=["-fsanitize=thread"])
|
||||||
env.Append(LINKFLAGS=["-fsanitize=thread"])
|
env.Append(LINKFLAGS=["-fsanitize=thread"])
|
||||||
|
|
||||||
|
if env["use_msan"]:
|
||||||
|
env.Append(CCFLAGS=["-fsanitize=memory"])
|
||||||
|
env.Append(LINKFLAGS=["-fsanitize=memory"])
|
||||||
|
|
||||||
if env["use_lto"]:
|
if env["use_lto"]:
|
||||||
env.Append(CCFLAGS=["-flto"])
|
env.Append(CCFLAGS=["-flto"])
|
||||||
if not env["use_llvm"] and env.GetOption("num_jobs") > 1:
|
if not env["use_llvm"] and env.GetOption("num_jobs") > 1:
|
||||||
|
|
Loading…
Reference in New Issue