[libcxx-commits] [libcxxabi] b8c6252 - [libc++abi] Always re-export std:: exception types from libc++abi (#84031)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Mar 5 12:26:02 PST 2024
Author: Louis Dionne
Date: 2024-03-05T15:25:58-05:00
New Revision: b8c6252bc19e05fc968c6504b69f5fed208f32d4
URL: https://github.com/llvm/llvm-project/commit/b8c6252bc19e05fc968c6504b69f5fed208f32d4
DIFF: https://github.com/llvm/llvm-project/commit/b8c6252bc19e05fc968c6504b69f5fed208f32d4.diff
LOG: [libc++abi] Always re-export std:: exception types from libc++abi (#84031)
We always provide the std:: exception types, even when exceptions are
disabled. This is a bit counter-intuitive, but these exception types are
just normal types at the end of the day so we made the decision to
always provide their definition. Failure to re-export these types would
cause libc++ to fail to link on Apple platforms when exceptions are
disabled.
Added:
Modified:
libcxxabi/src/CMakeLists.txt
Removed:
################################################################################
diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt
index 0f17ea9184c824..0af4dc1448e91a 100644
--- a/libcxxabi/src/CMakeLists.txt
+++ b/libcxxabi/src/CMakeLists.txt
@@ -230,9 +230,12 @@ if (LIBCXXABI_ENABLE_SHARED)
reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/new-delete.exp")
endif()
+ # Note that std:: exception types are always defined by the library regardless of
+ # whether the exception runtime machinery is provided.
+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/std-exceptions.exp")
+
if (LIBCXXABI_ENABLE_EXCEPTIONS)
reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/itanium-exceptions.exp")
- reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/std-exceptions.exp")
if ("${CMAKE_OSX_ARCHITECTURES}" MATCHES "^(armv6|armv7|armv7s)$")
reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/personality-sjlj.exp")
More information about the libcxx-commits
mailing list