aboutsummaryrefslogtreecommitdiff
path: root/libcxxabi
diff options
context:
space:
mode:
authorLouis Dionne <ldionne.2@gmail.com>2024-03-05 15:25:58 -0500
committerGitHub <noreply@github.com>2024-03-05 15:25:58 -0500
commitb8c6252bc19e05fc968c6504b69f5fed208f32d4 (patch)
treee02f8f4d548175b6a6d2b8c18f2170fbec3e25cd /libcxxabi
parentb6ca602658c101b783540418130ac5fadc0b2360 (diff)
downloadllvm-b8c6252bc19e05fc968c6504b69f5fed208f32d4.zip
llvm-b8c6252bc19e05fc968c6504b69f5fed208f32d4.tar.gz
llvm-b8c6252bc19e05fc968c6504b69f5fed208f32d4.tar.bz2
[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.
Diffstat (limited to 'libcxxabi')
-rw-r--r--libcxxabi/src/CMakeLists.txt5
1 files changed, 4 insertions, 1 deletions
diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt
index 0f17ea9..0af4dc1 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")