107 lines · plain
1include_directories(..)2 3set(RTSAN_CXX_SOURCES4 rtsan.cpp5 rtsan_context.cpp6 rtsan_diagnostics.cpp7 rtsan_flags.cpp8 rtsan_interceptors_posix.cpp9 rtsan_stats.cpp10 rtsan_suppressions.cpp11 )12 13set(RTSAN_PREINIT_SOURCES14 rtsan_preinit.cpp)15 16set(RTSAN_HEADERS17 rtsan.h18 rtsan_checks.inc19 rtsan_assertions.h20 rtsan_context.h21 rtsan_diagnostics.h22 rtsan_flags.h23 rtsan_flags.inc24 rtsan_stats.h25 rtsan_suppressions.h26 )27 28set(RTSAN_DEPS)29 30set(RTSAN_CFLAGS31 ${COMPILER_RT_COMMON_CFLAGS}32 ${COMPILER_RT_CXX_CFLAGS}33 -DSANITIZER_COMMON_NO_REDEFINE_BUILTINS)34set(RTSAN_LINK_FLAGS ${COMPILER_RT_COMMON_LINK_FLAGS})35set(RTSAN_DYNAMIC_LIBS36 ${COMPILER_RT_UNWINDER_LINK_LIBS}37 ${SANITIZER_CXX_ABI_LIBRARIES}38 ${SANITIZER_COMMON_LINK_LIBS})39 40append_rtti_flag(OFF RTSAN_CFLAGS)41 42if(APPLE)43 add_compiler_rt_object_libraries(RTRtsan44 OS ${SANITIZER_COMMON_SUPPORTED_OS}45 ARCHS ${RTSAN_SUPPORTED_ARCH}46 SOURCES ${RTSAN_CXX_SOURCES}47 ADDITIONAL_HEADERS ${RTSAN_HEADERS}48 CFLAGS ${RTSAN_CFLAGS}49 DEPS ${RTSAN_DEPS})50else()51 add_compiler_rt_object_libraries(RTRtsan52 ARCHS ${RTSAN_SUPPORTED_ARCH}53 SOURCES ${RTSAN_CXX_SOURCES}54 ADDITIONAL_HEADERS ${RTSAN_HEADERS}55 CFLAGS ${RTSAN_CFLAGS}56 DEPS ${RTSAN_DEPS})57 add_compiler_rt_object_libraries(RTRtsan_preinit58 ARCHS ${RTSAN_SUPPORTED_ARCH}59 SOURCES ${RTSAN_PREINIT_SOURCES}60 ADDITIONAL_HEADERS ${RTSAN_HEADERS}61 CFLAGS ${RTSAN_CFLAGS})62endif()63 64set(RTSAN_COMMON_RUNTIME_OBJECT_LIBS65 RTInterception66 RTSanitizerCommon67 RTSanitizerCommonLibc68 RTSanitizerCommonCoverage69 RTSanitizerCommonSymbolizer)70 71append_list_if(COMPILER_RT_HAS_LIBDL dl RTSAN_DYNAMIC_LIBS)72append_list_if(COMPILER_RT_HAS_LIBRT rt RTSAN_DYNAMIC_LIBS)73append_list_if(COMPILER_RT_HAS_LIBM m RTSAN_DYNAMIC_LIBS)74append_list_if(COMPILER_RT_HAS_LIBPTHREAD pthread RTSAN_DYNAMIC_LIBS)75append_list_if(COMPILER_RT_HAS_LIBLOG log RTSAN_DYNAMIC_LIBS)76 77add_compiler_rt_component(rtsan)78 79if (APPLE)80 add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)81 set(RTSAN_LINK_FLAGS ${RTSAN_LINK_FLAGS} ${WEAK_SYMBOL_LINK_FLAGS})82 83 add_compiler_rt_runtime(clang_rt.rtsan84 SHARED85 OS ${SANITIZER_COMMON_SUPPORTED_OS}86 ARCHS ${RTSAN_SUPPORTED_ARCH}87 OBJECT_LIBS RTRtsan88 ${RTSAN_COMMON_RUNTIME_OBJECT_LIBS}89 LINK_FLAGS ${RTSAN_LINK_FLAGS}90 LINK_LIBS ${RTSAN_DYNAMIC_LIBS}91 PARENT_TARGET rtsan)92else()93 add_compiler_rt_runtime(clang_rt.rtsan94 STATIC95 ARCHS ${RTSAN_SUPPORTED_ARCH}96 OBJECT_LIBS RTRtsan_preinit97 RTRtsan98 ${RTSAN_COMMON_RUNTIME_OBJECT_LIBS}99 LINK_FLAGS ${RTSAN_LINK_FLAGS}100 CFLAGS ${RTSAN_CFLAGS}101 PARENT_TARGET rtsan)102endif()103 104if(COMPILER_RT_INCLUDE_TESTS)105 add_subdirectory(tests)106endif()107