diff options
author | Louis Dionne <ldionne.2@gmail.com> | 2024-03-05 15:25:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-05 15:25:58 -0500 |
commit | b8c6252bc19e05fc968c6504b69f5fed208f32d4 (patch) | |
tree | e02f8f4d548175b6a6d2b8c18f2170fbec3e25cd /libcxxabi | |
parent | b6ca602658c101b783540418130ac5fadc0b2360 (diff) | |
download | llvm-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.txt | 5 |
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") |