[tsan] Add environment variable TSAN_SYMBOLIZER_PATH as we do in other sanitizers
authorXu Mingjie <xumingjie.enna1@bytedance.com>
Tue, 31 Aug 2021 02:15:57 +0000 (10:15 +0800)
committerwangliushuai <wangliushuai@bytedance.com>
Tue, 31 Aug 2021 02:18:52 +0000 (10:18 +0800)
ASan, LSan, MSan and UBSan all allow to use environment variable `*SAN_SYMBOLIZER_PATH` to pass the symbolizer path, this patch add `TSAN_SYMBOLIZER_PATH` to TSan.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D108911

compiler-rt/lib/tsan/rtl/tsan_flags.cpp

index 49e4a9c..ee89862 100644 (file)
@@ -55,6 +55,7 @@ void InitializeFlags(Flags *f, const char *env, const char *env_option_name) {
     // Override some common flags defaults.
     CommonFlags cf;
     cf.CopyFrom(*common_flags());
+    cf.external_symbolizer_path = GetEnv("TSAN_SYMBOLIZER_PATH");
     cf.allow_addr2line = true;
     if (SANITIZER_GO) {
       // Does not work as expected for Go: runtime handles SIGABRT and crashes.