brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 1864d7a Raw
56 lines · plain
1# Build for the experimental deadlock detector runtime library.2 3include_directories(../..)4 5set(DD_CFLAGS ${SANITIZER_COMMON_CFLAGS})6append_rtti_flag(OFF DD_CFLAGS)7 8set(DD_SOURCES9  dd_rtl.cpp10  dd_interceptors.cpp11  )12 13set(DD_LINKLIBS14  ${COMPILER_RT_UNWINDER_LINK_LIBS}15  ${SANITIZER_CXX_ABI_LIBRARIES}16  ${SANITIZER_COMMON_LINK_LIBS})17 18append_list_if(COMPILER_RT_HAS_LIBDL dl DD_LINKLIBS)19append_list_if(COMPILER_RT_HAS_LIBRT rt DD_LINKLIBS)20append_list_if(COMPILER_RT_HAS_LIBPTHREAD pthread DD_LINKLIBS)21 22add_custom_target(dd)23set_target_properties(dd PROPERTIES FOLDER "Compiler-RT/Metatargets")24 25# Deadlock detector is currently supported on 64-bit Linux only.26if(CAN_TARGET_x86_64 AND UNIX AND NOT APPLE AND NOT ANDROID)27  set(arch "x86_64")28  add_compiler_rt_runtime(clang_rt.dd29    STATIC30    ARCHS ${arch}31    SOURCES ${DD_SOURCES}32            $<TARGET_OBJECTS:RTInterception.${arch}>33            $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>34            $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>35    CFLAGS ${DD_CFLAGS}36    PARENT_TARGET dd)37 38  add_compiler_rt_object_libraries(RTDD39    ARCHS ${arch}40    SOURCES ${DD_SOURCES} CFLAGS ${DD_CFLAGS})41 42  add_compiler_rt_runtime(clang_rt.dyndd43    SHARED44    ARCHS ${arch}45    SOURCES $<TARGET_OBJECTS:RTDD.${arch}>46            $<TARGET_OBJECTS:RTInterception.${arch}>47            $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>48            $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>49            $<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>50    LINK_FLAGS ${SANITIZER_COMMON_LINK_FLAGS}51    LINK_LIBS ${DD_LINKLIBS}52    PARENT_TARGET dd)53endif()54 55add_dependencies(compiler-rt dd)56