aboutsummaryrefslogtreecommitdiff
path: root/lib/msan/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msan/CMakeLists.txt')
-rw-r--r--lib/msan/CMakeLists.txt15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/msan/CMakeLists.txt b/lib/msan/CMakeLists.txt
index 0671b59c0025..06f3f65d8e38 100644
--- a/lib/msan/CMakeLists.txt
+++ b/lib/msan/CMakeLists.txt
@@ -25,13 +25,24 @@ if(CAN_TARGET_${arch})
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
- CFLAGS ${MSAN_RTL_CFLAGS}
- SYMS msan.syms)
+ CFLAGS ${MSAN_RTL_CFLAGS})
list(APPEND MSAN_RUNTIME_LIBRARIES clang_rt.msan-${arch})
+ if(UNIX)
+ add_sanitizer_rt_symbols(clang_rt.msan-${arch} msan.syms.extra)
+ list(APPEND MSAN_RUNTIME_LIBRARIES clang_rt.msan-${arch}-symbols)
+ endif()
endif()
add_compiler_rt_resource_file(msan_blacklist msan_blacklist.txt)
+# We should only build MSan unit tests if we can build instrumented libcxx.
+set(MSAN_LIBCXX_PATH ${LLVM_MAIN_SRC_DIR}/projects/libcxx)
+if(EXISTS ${MSAN_LIBCXX_PATH}/)
+ set(MSAN_CAN_INSTRUMENT_LIBCXX TRUE)
+else()
+ set(MSAN_CAN_INSTRUMENT_LIBCXX FALSE)
+endif()
+
if(LLVM_INCLUDE_TESTS)
add_subdirectory(tests)
endif()