[compiler-rt] [Fuchsia][cmake] Avoid referencing cxx_shared in compiler-rt (PR #112257)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 14 13:13:40 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Paul Kirth (ilovepi)
<details>
<summary>Changes</summary>
After https://github.com/llvm/llvm-project/pull/80007 Fuchsia builds are
now always building cxx_shared for arm64 and x64 Linux. Ultimately, this
is because the LIBCXX_ENABLE_SHARED is not used in compiler-rt to select
the correct libc++ target, and because cxx_shared is now always defined,
it is selected as a dependency when building runtimes tests.
---
Full diff: https://github.com/llvm/llvm-project/pull/112257.diff
2 Files Affected:
- (modified) compiler-rt/CMakeLists.txt (+3-3)
- (modified) compiler-rt/test/fuzzer/CMakeLists.txt (+3-4)
``````````diff
diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
index deb6994f481854..98c28556755525 100644
--- a/compiler-rt/CMakeLists.txt
+++ b/compiler-rt/CMakeLists.txt
@@ -616,7 +616,7 @@ if(COMPILER_RT_USE_LLVM_UNWINDER)
if (COMPILER_RT_ENABLE_STATIC_UNWINDER)
list(APPEND COMPILER_RT_UNWINDER_LINK_LIBS "$<TARGET_LINKER_FILE:unwind_static>")
else()
- list(APPEND COMPILER_RT_UNWINDER_LINK_LIBS "$<TARGET_LINKER_FILE:$<IF:$<TARGET_EXISTS:unwind_shared>,unwind_shared,unwind_static>>")
+ list(APPEND COMPILER_RT_UNWINDER_LINK_LIBS "$<TARGET_LINKER_FILE:$<IF:$<BOOL:${LIBUNWIND_ENABLE_SHARED}>,unwind_shared,unwind_static>>")
endif()
endif()
@@ -629,7 +629,7 @@ if (COMPILER_RT_CXX_LIBRARY STREQUAL "libcxx")
if (COMPILER_RT_STATIC_CXX_LIBRARY)
set(COMPILER_RT_CXX_LINK_LIBS "$<TARGET_LINKER_FILE:cxx_static>")
else()
- set(COMPILER_RT_CXX_LINK_LIBS "$<TARGET_LINKER_FILE:$<IF:$<TARGET_EXISTS:cxx_shared>,cxx_shared,cxx_static>>")
+ set(COMPILER_RT_CXX_LINK_LIBS "$<TARGET_LINKER_FILE:$<IF:$<BOOL:${LIBCXX_ENABLE_SHARED}>,cxx_shared,cxx_static>>")
endif()
elseif (COMPILER_RT_CXX_LIBRARY STREQUAL "none")
# We aren't using any C++ standard library so avoid including the default one.
@@ -671,7 +671,7 @@ if (SANITIZER_TEST_CXX_LIBNAME STREQUAL "libc++")
if (SANITIZER_USE_STATIC_TEST_CXX)
list(APPEND SANITIZER_TEST_CXX_LIBRARIES "$<TARGET_LINKER_FILE:cxx_static>")
else()
- list(APPEND SANITIZER_TEST_CXX_LIBRARIES "$<TARGET_LINKER_FILE:$<IF:$<TARGET_EXISTS:cxx_shared>,cxx_shared,cxx_static>>")
+ list(APPEND SANITIZER_TEST_CXX_LIBRARIES "$<TARGET_LINKER_FILE:$<IF:$<BOOL:${LIBCXX_ENABLE_SHARED}>,cxx_shared,cxx_static>>")
endif()
# We are using the in tree libc++ so avoid including the default one.
append_list_if(COMPILER_RT_HAS_NOSTDINCXX_FLAG -nostdinc++ COMPILER_RT_UNITTEST_CFLAGS)
diff --git a/compiler-rt/test/fuzzer/CMakeLists.txt b/compiler-rt/test/fuzzer/CMakeLists.txt
index b19f52e591fc0f..982225f294d238 100644
--- a/compiler-rt/test/fuzzer/CMakeLists.txt
+++ b/compiler-rt/test/fuzzer/CMakeLists.txt
@@ -73,11 +73,10 @@ endmacro()
test_fuzzer("default")
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
- if(TARGET cxx_shared)
- test_fuzzer("libc++" DEPS cxx_shared)
- endif()
- if(TARGET cxx_static)
+ if(LIBCXX_ENABLE_STATIC)
test_fuzzer("static-libc++" DEPS cxx_static)
+ elseif(LIBCXX_ENABLE_SHARED)
+ test_fuzzer("libc++" DEPS cxx_shared)
endif()
endif()
``````````
</details>
https://github.com/llvm/llvm-project/pull/112257
More information about the llvm-commits
mailing list