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/CMakeLists.txt b/libcxxabi/CMakeLists.txt --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -82,7 +82,6 @@ When disabled, libc++abi does not support stack unwinding and other exceptions-related features." ON) option(LIBCXXABI_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON) option(LIBCXXABI_ENABLE_PEDANTIC "Compile with pedantic enabled." ON) -option(LIBCXXABI_ENABLE_PIC "Build Position-Independent Code, even in static library" ON) option(LIBCXXABI_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF) option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF) option(LIBCXXABI_ENABLE_STATIC_UNWINDER "Statically link the LLVM unwinder." OFF) 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