From Zixing Liu:

d/p/fix-unwind-detection-logic.patch: use an upstream patch to fix libunwind detection logic when compiler-rt is disabled.
This commit is contained in:
Gianfranco Costamagna 2024-03-06 08:39:21 +01:00
parent 0e82ff5822
commit a0393bfef6
3 changed files with 48 additions and 1 deletions

8
debian/changelog vendored
View File

@ -1,3 +1,11 @@
llvm-toolchain-16 (1:16.0.6-22) UNRELEASED; urgency=medium
[ Zixing Liu ]
* d/p/fix-unwind-detection-logic.patch: use an upstream patch to fix
libunwind detection logic when compiler-rt is disabled.
-- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 06 Mar 2024 08:38:53 +0100
llvm-toolchain-16 (1:16.0.6-21) unstable; urgency=medium
[ Steve Langasek ]

View File

@ -0,0 +1,39 @@
From 7c5e4e5fa3a948fc662be3a6bf057021d32f72e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
Date: Thu, 5 Oct 2023 11:41:11 +0300
Subject: [PATCH] Reapply [compiler-rt] Check for and use -lunwind when linking
with -nodefaultlibs (#66584)
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.
This is a reland of #65912.
---
compiler-rt/cmake/config-ix.cmake | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake
index 09a9b62ce4cd37..a8e078f1ebc988 100644
--- a/compiler-rt/cmake/config-ix.cmake
+++ b/compiler-rt/cmake/config-ix.cmake
@@ -63,6 +63,16 @@ if (C_SUPPORTS_NODEFAULTLIBS_FLAG)
moldname mingwex msvcrt)
list(APPEND CMAKE_REQUIRED_LIBRARIES ${MINGW_LIBRARIES})
endif()
+ if (NOT TARGET unwind)
+ # Don't check for a library named unwind, if there's a target with that name within
+ # the same build.
+ check_library_exists(unwind _Unwind_GetRegionStart "" 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()
endif ()
# CodeGen options.

View File

@ -135,7 +135,7 @@ protobuf_3.21.patch
# compiler-rt
compiler-rt/compilerrt-builtins-arch-fix-armhf.diff
compiler-rt/compilerrt-build-scudo-standalone-option.diff
fix-unwind-detection-logic.patch
# wasm patches
wasm/wasm-ld-path.diff