brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · a0b9c61 Raw
92 lines · plain
1include_directories(..)2 3# Runtime library sources and build flags.4set(MSAN_RTL_SOURCES5  msan.cpp6  msan_allocator.cpp7  msan_chained_origin_depot.cpp8  msan_dl.cpp9  msan_interceptors.cpp10  msan_linux.cpp11  msan_report.cpp12  msan_thread.cpp13  msan_poisoning.cpp14  )15 16set(MSAN_RTL_CXX_SOURCES17  msan_new_delete.cpp18  )19 20set(MSAN_RTL_HEADERS21  msan.h22  msan_allocator.h23  msan_chained_origin_depot.h24  msan_dl.h25  msan_flags.h26  msan_flags.inc27  msan_interface_internal.h28  msan_origin.h29  msan_poisoning.h30  msan_report.h31  msan_thread.h32  )33 34set(MSAN_RTL_CFLAGS ${SANITIZER_COMMON_CFLAGS})35if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")36  append_list_if(COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC -ftls-model=initial-exec MSAN_RTL_CFLAGS)37endif()38append_rtti_flag(OFF MSAN_RTL_CFLAGS)39if(NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD")40  append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE MSAN_RTL_CFLAGS)41endif()42# Prevent clang from generating libc calls.43append_list_if(COMPILER_RT_HAS_FFREESTANDING_FLAG -ffreestanding MSAN_RTL_CFLAGS)44 45set(MSAN_RUNTIME_LIBRARIES)46 47# Static runtime library.48add_compiler_rt_component(msan)49 50foreach(arch ${MSAN_SUPPORTED_ARCH})51  add_compiler_rt_runtime(clang_rt.msan52    STATIC53    ARCHS ${arch}54    SOURCES ${MSAN_RTL_SOURCES}55            $<TARGET_OBJECTS:RTInterception.${arch}>56            $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>57            $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>58            $<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>59            $<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>60            $<TARGET_OBJECTS:RTSanitizerCommonSymbolizerInternal.${arch}>61            $<TARGET_OBJECTS:RTUbsan.${arch}>62    ADDITIONAL_HEADERS ${MSAN_RTL_HEADERS}63    CFLAGS ${MSAN_RTL_CFLAGS}64    PARENT_TARGET msan)65  add_compiler_rt_runtime(clang_rt.msan_cxx66    STATIC67    ARCHS ${arch}68    SOURCES ${MSAN_RTL_CXX_SOURCES}69    ADDITIONAL_HEADERS ${MSAN_RTL_HEADERS}70    CFLAGS ${MSAN_RTL_CFLAGS}71    PARENT_TARGET msan)72  list(APPEND MSAN_RUNTIME_LIBRARIES clang_rt.msan-${arch}73                                     clang_rt.msan_cxx-${arch})74  if(SANITIZER_USE_SYMBOLS)75    add_sanitizer_rt_symbols(clang_rt.msan76      ARCHS ${arch}77      EXTRA msan.syms.extra)78    add_sanitizer_rt_symbols(clang_rt.msan_cxx79      ARCHS ${arch}80      EXTRA msan.syms.extra)81    add_dependencies(msan clang_rt.msan-${arch}-symbols82                          clang_rt.msan_cxx-${arch}-symbols)83  endif()84endforeach()85 86add_compiler_rt_resource_file(msan_ignorelist msan_ignorelist.txt msan)87list(APPEND MSAN_RUNTIME_LIBRARIES msan_ignorelist)88 89if(COMPILER_RT_INCLUDE_TESTS)90  add_subdirectory(tests)91endif()92