diff --git a/libcxx/cmake/caches/Apple.cmake b/libcxx/cmake/caches/Apple.cmake --- a/libcxx/cmake/caches/Apple.cmake +++ b/libcxx/cmake/caches/Apple.cmake @@ -15,6 +15,5 @@ set(LIBCXX_HERMETIC_STATIC_LIBRARY ON CACHE BOOL "") set(LIBCXXABI_HERMETIC_STATIC_LIBRARY ON CACHE BOOL "") -set(LIBCXXABI_ENABLE_PIC OFF CACHE BOOL "") set(LIBCXXABI_ENABLE_ASSERTIONS OFF CACHE BOOL "") set(LIBCXXABI_ENABLE_FORGIVING_DYNAMIC_CAST ON CACHE BOOL "") diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -65,3 +65,7 @@ While this is technically both an API and an ABI break, we do not expect ``std::pointer_safety`` to have been used at all in real code, since we never implemented the underlying support for garbage collection. + +- The `LIBCXXABI_ENABLE_PIC` CMake option was removed. If you are building your + own libc++abi from source and were using `LIBCXXABI_ENABLE_PIC`, please use + `CMAKE_POSITION_INDEPENDENT_CODE=ON` instead. diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt --- a/libcxxabi/src/CMakeLists.txt +++ b/libcxxabi/src/CMakeLists.txt @@ -201,10 +201,6 @@ DEFINE_SYMBOL "") - if(LIBCXXABI_ENABLE_PIC) - set_target_properties(cxxabi_shared PROPERTIES POSITION_INDEPENDENT_CODE ON) - endif() - list(APPEND LIBCXXABI_BUILD_TARGETS "cxxabi_shared") if (LIBCXXABI_INSTALL_SHARED_LIBRARY) list(APPEND LIBCXXABI_INSTALL_TARGETS "cxxabi_shared") @@ -262,10 +258,6 @@ OUTPUT_NAME "c++abi") - if(LIBCXXABI_ENABLE_PIC) - set_target_properties(cxxabi_static PROPERTIES POSITION_INDEPENDENT_CODE ON) - endif() - if(LIBCXXABI_HERMETIC_STATIC_LIBRARY) append_flags_if_supported(CXXABI_STATIC_LIBRARY_FLAGS -fvisibility=hidden) # If the hermetic library doesn't define the operator new/delete functions