From 84bec0a2192dbde5711d2f66b602bcf7b4f9a72b Mon Sep 17 00:00:00 2001 From: Han Zhu Date: Fri, 13 Jan 2023 12:18:32 -0800 Subject: [PATCH] [tsan] Always initialize tsan when building shared lib Differential Revision: https://reviews.llvm.org/D142039 --- compiler-rt/lib/tsan/rtl/CMakeLists.txt | 1 + compiler-rt/lib/tsan/rtl/tsan_rtl.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler-rt/lib/tsan/rtl/CMakeLists.txt b/compiler-rt/lib/tsan/rtl/CMakeLists.txt index d6c547bb75ef..7ad91b3cddd1 100644 --- a/compiler-rt/lib/tsan/rtl/CMakeLists.txt +++ b/compiler-rt/lib/tsan/rtl/CMakeLists.txt @@ -271,6 +271,7 @@ else() $ ADDITIONAL_HEADERS ${TSAN_HEADERS} CFLAGS ${TSAN_RTL_DYNAMIC_CFLAGS} + DEFS SANITIZER_SHARED LINK_LIBS ${TSAN_DYNAMIC_LINK_LIBS} LINK_FLAGS ${SANITIZER_COMMON_LINK_FLAGS} PARENT_TARGET tsan) diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.h b/compiler-rt/lib/tsan/rtl/tsan_rtl.h index 7f5de6bf907f..e02ce5a52ade 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_rtl.h +++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.h @@ -681,7 +681,7 @@ void LazyInitialize(ThreadState *thr) { // If we can use .preinit_array, assume that __tsan_init // called from .preinit_array initializes runtime before // any instrumented code except ANDROID. -#if (!SANITIZER_CAN_USE_PREINIT_ARRAY || defined(__ANDROID__)) +#if (!SANITIZER_CAN_USE_PREINIT_ARRAY || defined(SANITIZER_SHARED)) if (UNLIKELY(!is_initialized)) Initialize(thr); #endif