diff options
Diffstat (limited to 'lib/msan/CMakeLists.txt')
-rw-r--r-- | lib/msan/CMakeLists.txt | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/lib/msan/CMakeLists.txt b/lib/msan/CMakeLists.txt index 06f3f65d8e38e..90d9face17311 100644 --- a/lib/msan/CMakeLists.txt +++ b/lib/msan/CMakeLists.txt @@ -4,47 +4,43 @@ include_directories(..) set(MSAN_RTL_SOURCES msan.cc msan_allocator.cc + msan_chained_origin_depot.cc msan_interceptors.cc msan_linux.cc msan_new_delete.cc msan_report.cc + msan_thread.cc ) -set(MSAN_RTL_CFLAGS - ${SANITIZER_COMMON_CFLAGS} - -fno-rtti - -fPIE - # Prevent clang from generating libc calls. - -ffreestanding) -# Static runtime library. +set(MSAN_RTL_CFLAGS ${SANITIZER_COMMON_CFLAGS}) +append_no_rtti_flag(MSAN_RTL_CFLAGS) +append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE MSAN_RTL_CFLAGS) +# Prevent clang from generating libc calls. +append_list_if(COMPILER_RT_HAS_FFREESTANDING_FLAG -ffreestanding MSAN_RTL_CFLAGS) + set(MSAN_RUNTIME_LIBRARIES) -set(arch "x86_64") -if(CAN_TARGET_${arch}) - add_compiler_rt_static_runtime(clang_rt.msan-${arch} ${arch} + +# Static runtime library. +add_custom_target(msan) +foreach(arch ${MSAN_SUPPORTED_ARCH}) + add_compiler_rt_runtime(clang_rt.msan-${arch} ${arch} STATIC SOURCES ${MSAN_RTL_SOURCES} $<TARGET_OBJECTS:RTInterception.${arch}> $<TARGET_OBJECTS:RTSanitizerCommon.${arch}> $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}> CFLAGS ${MSAN_RTL_CFLAGS}) + add_dependencies(msan clang_rt.msan-${arch}) 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) + add_dependencies(msan clang_rt.msan-${arch}-symbols) endif() -endif() +endforeach() add_compiler_rt_resource_file(msan_blacklist msan_blacklist.txt) +add_dependencies(msan msan_blacklist) +add_dependencies(compiler-rt msan) -# 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) +if(COMPILER_RT_INCLUDE_TESTS) add_subdirectory(tests) endif() - -add_subdirectory(lit_tests) |