diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -137,3 +137,9 @@ .. code-block:: bash $ cmake -S /runtimes -B build -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" + +- Libc++, libc++abi and libunwind will not be built with ``-fPIC`` by default anymore. + If you want to build those runtimes with position independent code, please specify + ``-DCMAKE_POSITION_INDEPENDENT_CODE=ON`` explicitly when configuring the build, or + ``-DRUNTIMES__CMAKE_POSITION_INDEPENDENT_CODE=ON`` if using the + bootstrapping build. diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt --- a/libcxx/src/CMakeLists.txt +++ b/libcxx/src/CMakeLists.txt @@ -208,7 +208,6 @@ VERSION "${LIBCXX_ABI_VERSION}.0" SOVERSION "${LIBCXX_ABI_VERSION}" DEFINE_SYMBOL "" - POSITION_INDEPENDENT_CODE ON ) cxx_add_common_build_flags(cxx_shared) cxx_set_common_defines(cxx_shared) @@ -284,7 +283,6 @@ COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}" LINK_FLAGS "${LIBCXX_LINK_FLAGS}" OUTPUT_NAME "c++" - POSITION_INDEPENDENT_CODE ON ) cxx_add_common_build_flags(cxx_static) cxx_set_common_defines(cxx_static) diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt --- a/libcxxabi/src/CMakeLists.txt +++ b/libcxxabi/src/CMakeLists.txt @@ -192,7 +192,6 @@ SOVERSION "1" VERSION "${LIBCXXABI_LIBRARY_VERSION}" DEFINE_SYMBOL "" - POSITION_INDEPENDENT_CODE ON ) list(APPEND LIBCXXABI_BUILD_TARGETS "cxxabi_shared") @@ -245,7 +244,6 @@ COMPILE_FLAGS "${LIBCXXABI_COMPILE_FLAGS}" LINK_FLAGS "${LIBCXXABI_LINK_FLAGS}" OUTPUT_NAME "c++abi" - POSITION_INDEPENDENT_CODE ON ) if(LIBCXXABI_HERMETIC_STATIC_LIBRARY) diff --git a/libunwind/src/CMakeLists.txt b/libunwind/src/CMakeLists.txt --- a/libunwind/src/CMakeLists.txt +++ b/libunwind/src/CMakeLists.txt @@ -145,7 +145,6 @@ OUTPUT_NAME "unwind" VERSION "1.0" SOVERSION "1" - POSITION_INDEPENDENT_CODE ON ) list(APPEND LIBUNWIND_BUILD_TARGETS "unwind_shared") if (LIBUNWIND_INSTALL_SHARED_LIBRARY) @@ -171,7 +170,6 @@ LINK_FLAGS "${LIBUNWIND_LINK_FLAGS}" LINKER_LANGUAGE C OUTPUT_NAME "unwind" - POSITION_INDEPENDENT_CODE ON ) if(LIBUNWIND_HIDE_SYMBOLS) diff --git a/llvm/utils/release/test-release.sh b/llvm/utils/release/test-release.sh --- a/llvm/utils/release/test-release.sh +++ b/llvm/utils/release/test-release.sh @@ -386,12 +386,14 @@ echo "#" env CC="$c_compiler" CXX="$cxx_compiler" \ cmake -G "$generator" \ -DCMAKE_BUILD_TYPE=$BuildType -DLLVM_ENABLE_ASSERTIONS=$Assertions \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DLLVM_ENABLE_PROJECTS="$project_list" \ $ExtraConfigureFlags $BuildDir/llvm-project/llvm \ 2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log env CC="$c_compiler" CXX="$cxx_compiler" \ cmake -G "$generator" \ -DCMAKE_BUILD_TYPE=$BuildType -DLLVM_ENABLE_ASSERTIONS=$Assertions \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DLLVM_ENABLE_PROJECTS="$project_list" \ $ExtraConfigureFlags $BuildDir/llvm-project/llvm \ 2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log