diff options
author | Robin Gareus <robin@gareus.org> | 2019-12-07 00:46:33 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-12-07 00:46:33 +0100 |
commit | 8be727114c60308eed71309851a3587a42abfc30 (patch) | |
tree | 7dd35ee60ba891283880650d51e8309b30ff4374 /wscript | |
parent | 052f3a683676c4aee671b2c8d81ab4c8cba35ec1 (diff) |
Add tsan option to trace data-races
Diffstat (limited to 'wscript')
-rw-r--r-- | wscript | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -384,6 +384,12 @@ int main() { return 0; }''', cxx_flags.append('-fno-omit-frame-pointer') linker_flags.append('-fsanitize=address') + if conf.options.tsan: + conf.check_cxx(cxxflags=["-fsanitize=thread", "-fno-omit-frame-pointer"], linkflags=["-fsanitize=thread"]) + c_flags.extend(('-fsanitize=thread', '-fno-omit-frame-pointer')) + cxx_flags.extend(('-fsanitize=thread', '-fno-omit-frame-pointer')) + linker_flags.append('-fsanitize=thread') + if opt.gprofile: debug_flags = [ flags_dict['gprofile'] ] @@ -828,6 +834,8 @@ def options(opt): help='use libc++ instead of default or auto-detected stdlib') opt.add_option('--address-sanitizer', action='store_true', default=False, dest='asan', help='Turn on AddressSanitizer (requires GCC >= 4.8 or clang >= 3.1)') + opt.add_option('--thread-sanitizer', action='store_true', default=False, dest='tsan', + help='Turn on ThreadSanitizer (requires GCC >= 4.8 or clang, and 64bit CPU)') opt.add_option('--ptformat', action='store_true', default=False, dest='ptformat', help='Turn on PT session import option') opt.add_option('--no-threaded-waveviews', action='store_true', default=False, dest='no_threaded_waveviews', |