[libcxx-commits] [libcxxabi] a0ae3b0 - [libc++abi] Remove the LIBCXXABI_ENABLE_PIC option
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jun 10 09:27:43 PDT 2021
Author: Louis Dionne
Date: 2021-06-10T12:26:31-04:00
New Revision: a0ae3b0789140ee9238c3052b2231ceaa777e82f
URL: https://github.com/llvm/llvm-project/commit/a0ae3b0789140ee9238c3052b2231ceaa777e82f
DIFF: https://github.com/llvm/llvm-project/commit/a0ae3b0789140ee9238c3052b2231ceaa777e82f.diff
LOG: [libc++abi] Remove the LIBCXXABI_ENABLE_PIC option
Instead, people should be using CMAKE_POSITION_INDEPENDENT_CODE to control
whether they want to use PIC or not. We should try to avoid reinventing
the wheel whenever CMake natively supports something.
This makes libc++abi consistent with libc++ and libunwind.
Differential Revision: https://reviews.llvm.org/D103973
Added:
Modified:
libcxx/cmake/caches/Apple.cmake
libcxx/docs/ReleaseNotes.rst
libcxxabi/CMakeLists.txt
libcxxabi/src/CMakeLists.txt
Removed:
################################################################################
diff --git a/libcxx/cmake/caches/Apple.cmake b/libcxx/cmake/caches/Apple.cmake
index 75b96b2a7ce22..d40a3bf942960 100644
--- a/libcxx/cmake/caches/Apple.cmake
+++ b/libcxx/cmake/caches/Apple.cmake
@@ -15,6 +15,5 @@ set(LIBCXX_ENABLE_VENDOR_AVAILABILITY_ANNOTATIONS ON CACHE BOOL "")
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
index 0cc8c00608efa..bda3c646071f9 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -65,3 +65,7 @@ API Changes
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
index 1e8b73aa38cc9..9bd81075dd14b 100644
--- a/libcxxabi/CMakeLists.txt
+++ b/libcxxabi/CMakeLists.txt
@@ -82,7 +82,6 @@ option(LIBCXXABI_ENABLE_EXCEPTIONS
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
index fbf9a10a73e56..49c6b0ad4e462 100644
--- a/libcxxabi/src/CMakeLists.txt
+++ b/libcxxabi/src/CMakeLists.txt
@@ -201,10 +201,6 @@ if (LIBCXXABI_ENABLE_SHARED)
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 @@ if (LIBCXXABI_ENABLE_STATIC)
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
More information about the libcxx-commits
mailing list