Revert "[CMake] Use libcxx targets for in-tree sanitizer C++ ABI"
authorPetr Hosek <phosek@google.com>
Fri, 30 Sep 2022 05:52:49 +0000 (05:52 +0000)
committerPetr Hosek <phosek@google.com>
Fri, 30 Sep 2022 05:52:49 +0000 (05:52 +0000)
This reverts commit 7dbdffefb768062f28599c256b5e013ee26ff04e since
it appears to have broken several ASan tests.

compiler-rt/CMakeLists.txt

index 9c43b67..689ce1a 100644 (file)
@@ -579,10 +579,17 @@ 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_CXX_ABI)
-      set(SANITIZER_CXX_ABI_LIBRARIES "$<TARGET_LINKER_FILE:cxx_static>")
-    else()
-      set(SANITIZER_CXX_ABI_LIBRARIES "$<TARGET_LINKER_FILE:$<IF:$<TARGET_EXISTS:cxx_shared>,cxx_shared,cxx_static>>")
+
+    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)
     endif()
   else()
     append_list_if(COMPILER_RT_HAS_LIBCXX c++ SANITIZER_CXX_ABI_LIBRARIES)