From: machenbach@chromium.org Date: Wed, 23 Jul 2014 13:14:26 +0000 (+0000) Subject: Add tsan support to v8's gyp and test driver. X-Git-Tag: upstream/4.7.83~8086 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f5a4b26061aada52a109abd31556ea59ea777aae;p=platform%2Fupstream%2Fv8.git Add tsan support to v8's gyp and test driver. Tests only the default variant for now. BUG= R=jochen@chromium.org Review URL: https://codereview.chromium.org/412853002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/build/standalone.gypi b/build/standalone.gypi index 932a468..1fcb886 100644 --- a/build/standalone.gypi +++ b/build/standalone.gypi @@ -35,6 +35,7 @@ 'component%': 'static_library', 'clang%': 0, 'asan%': 0, + 'tsan%': 0, 'visibility%': 'hidden', 'v8_enable_backtrace%': 0, 'v8_enable_i18n_support%': 1, @@ -186,6 +187,27 @@ ], }, }], + ['tsan==1', { + 'target_defaults': { + 'cflags+': [ + '-fno-omit-frame-pointer', + '-gline-tables-only', + '-fsanitize=thread', + '-fPIC', + '-Wno-c++11-extensions', + ], + 'cflags!': [ + '-fomit-frame-pointer', + ], + 'ldflags': [ + '-fsanitize=thread', + '-pie', + ], + 'defines': [ + 'THREAD_SANITIZER', + ], + }, + }], ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ or OS=="netbsd"', { 'target_defaults': { diff --git a/tools/run-deopt-fuzzer.py b/tools/run-deopt-fuzzer.py index b3ea2aa..57cb6b2 100755 --- a/tools/run-deopt-fuzzer.py +++ b/tools/run-deopt-fuzzer.py @@ -388,6 +388,7 @@ def Execute(arch, mode, args, options, suites, workspace): "no_snap": False, "simulator": utils.UseSimulator(arch), "system": utils.GuessOS(), + "tsan": False, } all_tests = [] num_tests = 0 diff --git a/tools/run-tests.py b/tools/run-tests.py index 1077c3e..d1eb3a3 100755 --- a/tools/run-tests.py +++ b/tools/run-tests.py @@ -213,6 +213,9 @@ def BuildOptions(): default=False, action="store_true") result.add_option("-t", "--timeout", help="Timeout in seconds", default= -1, type="int") + result.add_option("--tsan", + help="Regard test expectations for TSAN", + default=False, action="store_true") result.add_option("-v", "--verbose", help="Verbose output", default=False, action="store_true") result.add_option("--valgrind", help="Run tests through valgrind", @@ -275,6 +278,9 @@ def ProcessOptions(options): if options.asan: options.extra_flags.append("--invoke-weak-callbacks") + if options.tsan: + VARIANTS = ["default"] + if options.j == 0: options.j = multiprocessing.cpu_count() @@ -459,6 +465,7 @@ def Execute(arch, mode, args, options, suites, workspace): "simulator_run": simulator_run, "simulator": utils.UseSimulator(arch), "system": utils.GuessOS(), + "tsan": options.tsan, } all_tests = [] num_tests = 0