[compiler-rt] 64c0bdd - [compiler-rt] Check for and use -lunwind when linking with -nodefaultlibs (#65912)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 15 01:49:49 PDT 2023
Author: Martin Storsjö
Date: 2023-09-15T11:49:45+03:00
New Revision: 64c0bddb7639dd4bfad73fbbc909ca739b84aa10
URL: https://github.com/llvm/llvm-project/commit/64c0bddb7639dd4bfad73fbbc909ca739b84aa10
DIFF: https://github.com/llvm/llvm-project/commit/64c0bddb7639dd4bfad73fbbc909ca739b84aa10.diff
LOG: [compiler-rt] Check for and use -lunwind when linking with -nodefaultlibs (#65912)
If libc++ is available and should be used as the ubsan C++ ABI library,
the check for libc++ might fail if libc++ is a static library, as the
-nodefaultlibs flag inhibits a potential compiler default -lunwind.
Just like the -nodefaultlibs configuration tests for and manually adds a
bunch of compiler default libraries, look for -lunwind too.
Added:
Modified:
compiler-rt/cmake/config-ix.cmake
Removed:
################################################################################
diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake
index 09a9b62ce4cd37b..8a5b2792661da9d 100644
--- a/compiler-rt/cmake/config-ix.cmake
+++ b/compiler-rt/cmake/config-ix.cmake
@@ -63,6 +63,12 @@ if (C_SUPPORTS_NODEFAULTLIBS_FLAG)
moldname mingwex msvcrt)
list(APPEND CMAKE_REQUIRED_LIBRARIES ${MINGW_LIBRARIES})
endif()
+ check_library_exists(unwind _Unwind_RaiseException "" COMPILER_RT_HAS_LIBUNWIND)
+ if (COMPILER_RT_HAS_LIBUNWIND)
+ # If we're omitting default libraries, we might need to manually link in libunwind.
+ # This can affect whether we detect a statically linked libc++ correctly.
+ list(APPEND CMAKE_REQUIRED_LIBRARIES unwind)
+ endif()
endif ()
# CodeGen options.
More information about the llvm-commits
mailing list