From d5a6da84a3462d41be003f4e5d4d1d2e0364ce9d Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Mon, 5 Oct 2020 11:42:13 -0400 Subject: [PATCH] [libc++/abi] Revert "[libc++] Move the weak symbols list to libc++abi" This reverts commit c7d4aa711a. I am still investigating the issue, but it looks like that commit has an interaction with ld64 that causes new/delete weak re-exports not to work properly anymore. This is weird because this commit did not touch the exports of new/delete -- I am still investigating. --- libcxx/lib/weak.exp | 16 ++++++++++++++++ libcxx/src/CMakeLists.txt | 3 ++- libcxxabi/lib/weak.exp | 7 ------- libcxxabi/src/CMakeLists.txt | 2 -- 4 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 libcxx/lib/weak.exp delete mode 100644 libcxxabi/lib/weak.exp diff --git a/libcxx/lib/weak.exp b/libcxx/lib/weak.exp new file mode 100644 index 000000000000..6bdcc0578460 --- /dev/null +++ b/libcxx/lib/weak.exp @@ -0,0 +1,16 @@ +__ZTISt10bad_typeid +__ZTISt11logic_error +__ZTISt11range_error +__ZTISt12domain_error +__ZTISt12length_error +__ZTISt12out_of_range +__ZTISt13bad_exception +__ZTISt13runtime_error +__ZTISt14overflow_error +__ZTISt15underflow_error +__ZTISt16invalid_argument +__ZTISt16nested_exception +__ZTISt20bad_array_new_length +__ZTISt8bad_cast +__ZTISt9bad_alloc +__ZTISt9exception diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt index 98a374c2bf9f..0e6819369ffa 100644 --- a/libcxx/src/CMakeLists.txt +++ b/libcxx/src/CMakeLists.txt @@ -210,7 +210,8 @@ if (LIBCXX_ENABLE_SHARED) target_link_libraries(cxx_shared PRIVATE "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/libc++unexp.exp" "-Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/libc++abi.v${LIBCXX_LIBCPPABI_VERSION}.exp" - "-Wl,-force_symbols_not_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/notweak.exp") + "-Wl,-force_symbols_not_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/notweak.exp" + "-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/weak.exp") if (NOT LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS) target_link_libraries(cxx_shared PRIVATE diff --git a/libcxxabi/lib/weak.exp b/libcxxabi/lib/weak.exp deleted file mode 100644 index 784ca45decc1..000000000000 --- a/libcxxabi/lib/weak.exp +++ /dev/null @@ -1,7 +0,0 @@ -__ZTISt11range_error -__ZTISt12domain_error -__ZTISt12length_error -__ZTISt12out_of_range -__ZTISt14overflow_error -__ZTISt15underflow_error -__ZTISt16invalid_argument diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt index 58d04e6578e3..c57d6fa83aa0 100644 --- a/libcxxabi/src/CMakeLists.txt +++ b/libcxxabi/src/CMakeLists.txt @@ -214,8 +214,6 @@ if (LIBCXXABI_ENABLE_SHARED) export_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/itanium-base.exp") - target_link_libraries(cxxabi_shared PRIVATE "-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/weak.exp") - if (LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS) export_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../lib/new-delete.exp") endif()