mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-25 06:40:18 +00:00
[CMake] Use libcxx-abi-* targets for in-tree sanitizer C++ ABI
When in-tree libcxx is selected as the sanitizer C++ ABI, use libcxx-abi-* targets rather than libcxxabi and libunwind directly. Differential Revision: https://reviews.llvm.org/D134855
This commit is contained in:
parent
fc1f631f85
commit
826693e2b0
@ -579,17 +579,16 @@ if (SANITIZER_CXX_ABI_LIBNAME STREQUAL "libc++")
|
||||
# because we added -nodefaultlibs there earlier, and adding would result in
|
||||
# a warning, but if we switch to -nostdlib++, we would need to add it here.
|
||||
# append_list_if(CXX_SUPPORTS_UNWINDLIB_NONE_FLAG --unwindlib=none SANITIZER_COMMON_LINK_FLAGS)
|
||||
|
||||
if (SANITIZER_USE_STATIC_LLVM_UNWINDER AND (TARGET unwind_static OR HAVE_LIBUNWIND))
|
||||
list(APPEND SANITIZER_CXX_ABI_LIBRARIES unwind_static)
|
||||
elseif (TARGET unwind_shared OR HAVE_LIBUNWIND)
|
||||
list(APPEND SANITIZER_CXX_ABI_LIBRARIES unwind_shared)
|
||||
endif()
|
||||
|
||||
if (SANITIZER_USE_STATIC_CXX_ABI AND (TARGET cxxabi_static OR HAVE_LIBCXXABI))
|
||||
list(APPEND SANITIZER_CXX_ABI_LIBRARIES cxxabi_static)
|
||||
elseif (TARGET cxxabi_shared OR HAVE_LIBCXXABI)
|
||||
list(APPEND SANITIZER_CXX_ABI_LIBRARIES cxxabi_shared)
|
||||
if(SANITIZER_USE_STATIC_CXX_ABI)
|
||||
if(TARGET libcxx-abi-static)
|
||||
set(SANITIZER_CXX_ABI_LIBRARIES libcxx-abi-static)
|
||||
endif()
|
||||
else()
|
||||
if(TARGET libcxx-abi-shared)
|
||||
set(SANITIZER_CXX_ABI_LIBRARIES libcxx-abi-shared)
|
||||
elseif(TARGET libcxx-abi-static)
|
||||
set(SANITIZER_CXX_ABI_LIBRARIES libcxx-abi-static)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
append_list_if(COMPILER_RT_HAS_LIBCXX c++ SANITIZER_CXX_ABI_LIBRARIES)
|
||||
|
@ -117,7 +117,10 @@ append_list_if(COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC
|
||||
-ftls-model=initial-exec ASAN_DYNAMIC_CFLAGS)
|
||||
append_list_if(MSVC /DEBUG ASAN_DYNAMIC_LINK_FLAGS)
|
||||
|
||||
set(ASAN_DYNAMIC_LIBS ${SANITIZER_CXX_ABI_LIBRARIES} ${SANITIZER_COMMON_LINK_LIBS})
|
||||
set(ASAN_DYNAMIC_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES}
|
||||
${SANITIZER_COMMON_LINK_LIBS})
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL dl ASAN_DYNAMIC_LIBS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBRT rt ASAN_DYNAMIC_LIBS)
|
||||
|
@ -81,7 +81,10 @@ append_list_if(COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC
|
||||
-ftls-model=initial-exec HWASAN_DYNAMIC_CFLAGS)
|
||||
append_list_if(MSVC /DEBUG HWASAN_DYNAMIC_LINK_FLAGS)
|
||||
|
||||
set(HWASAN_DYNAMIC_LIBS ${SANITIZER_CXX_ABI_LIBRARIES} ${SANITIZER_COMMON_LINK_LIBS})
|
||||
set(HWASAN_DYNAMIC_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES}
|
||||
${SANITIZER_COMMON_LINK_LIBS})
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL dl HWASAN_DYNAMIC_LIBS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBRT rt HWASAN_DYNAMIC_LIBS)
|
||||
|
@ -65,7 +65,10 @@ set(MEMPROF_DYNAMIC_CFLAGS ${MEMPROF_CFLAGS})
|
||||
append_list_if(COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC
|
||||
-ftls-model=initial-exec MEMPROF_DYNAMIC_CFLAGS)
|
||||
|
||||
set(MEMPROF_DYNAMIC_LIBS ${SANITIZER_CXX_ABI_LIBRARIES} ${SANITIZER_COMMON_LINK_LIBS})
|
||||
set(MEMPROF_DYNAMIC_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES}
|
||||
${SANITIZER_COMMON_LINK_LIBS})
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL dl MEMPROF_DYNAMIC_LIBS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBRT rt MEMPROF_DYNAMIC_LIBS)
|
||||
|
@ -50,7 +50,9 @@ if (FUCHSIA)
|
||||
list(APPEND SCUDO_CFLAGS -nostdinc++)
|
||||
list(APPEND SCUDO_DYNAMIC_LINK_FLAGS -nostdlib++)
|
||||
else()
|
||||
list(APPEND SCUDO_DYNAMIC_LIBS ${SANITIZER_CXX_ABI_LIBRARIES})
|
||||
list(APPEND SCUDO_DYNAMIC_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES})
|
||||
list(APPEND SCUDO_OBJECT_LIBS
|
||||
RTSanitizerCommonCoverage
|
||||
RTSanitizerCommonSymbolizer
|
||||
|
@ -10,7 +10,10 @@ set(DD_SOURCES
|
||||
dd_interceptors.cpp
|
||||
)
|
||||
|
||||
set(DD_LINKLIBS ${SANITIZER_CXX_ABI_LIBRARIES} ${SANITIZER_COMMON_LINK_LIBS})
|
||||
set(DD_LINKLIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES}
|
||||
${SANITIZER_COMMON_LINK_LIBS})
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL dl DD_LINKLIBS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBRT rt DD_LINKLIBS)
|
||||
|
@ -10,7 +10,10 @@ append_list_if(COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG -Wglobal-constructors
|
||||
set(TSAN_RTL_DYNAMIC_CFLAGS ${TSAN_RTL_CFLAGS})
|
||||
list(REMOVE_ITEM TSAN_RTL_DYNAMIC_CFLAGS -fPIE)
|
||||
|
||||
set(TSAN_DYNAMIC_LINK_LIBS ${SANITIZER_CXX_ABI_LIBRARIES} ${SANITIZER_COMMON_LINK_LIBS})
|
||||
set(TSAN_DYNAMIC_LINK_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES}
|
||||
${SANITIZER_COMMON_LINK_LIBS})
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL dl TSAN_DYNAMIC_LINK_LIBS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBM m TSAN_DYNAMIC_LINK_LIBS)
|
||||
|
@ -10,7 +10,10 @@ append_list_if(COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG -Wglobal-constructors
|
||||
set(TSAN_RTL_DYNAMIC_CFLAGS ${TSAN_RTL_CFLAGS})
|
||||
list(REMOVE_ITEM TSAN_RTL_DYNAMIC_CFLAGS -fPIE)
|
||||
|
||||
set(TSAN_DYNAMIC_LINK_LIBS ${SANITIZER_CXX_ABI_LIBRARIES} ${SANITIZER_COMMON_LINK_LIBS})
|
||||
set(TSAN_DYNAMIC_LINK_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES}
|
||||
${SANITIZER_COMMON_LINK_LIBS})
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL dl TSAN_DYNAMIC_LINK_LIBS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBM m TSAN_DYNAMIC_LINK_LIBS)
|
||||
|
@ -62,7 +62,10 @@ endif()
|
||||
|
||||
set(UBSAN_LINK_FLAGS ${SANITIZER_COMMON_LINK_FLAGS})
|
||||
|
||||
set(UBSAN_DYNAMIC_LIBS ${SANITIZER_CXX_ABI_LIBRARIES} ${SANITIZER_COMMON_LINK_LIBS})
|
||||
set(UBSAN_DYNAMIC_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${SANITIZER_CXX_ABI_LIBRARIES}
|
||||
${SANITIZER_COMMON_LINK_LIBS})
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL dl UBSAN_DYNAMIC_LIBS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBLOG log UBSAN_DYNAMIC_LIBS)
|
||||
|
Loading…
Reference in New Issue
Block a user