Author: Michał Górny Date: 2022-03-01T13:45:45-05:00 New Revision: 4327d39b15b22b9ee23582e5455df5b2a093fe8d
URL: https://github.com/llvm/llvm-project/commit/4327d39b15b22b9ee23582e5455df5b2a093fe8d DIFF: https://github.com/llvm/llvm-project/commit/4327d39b15b22b9ee23582e5455df5b2a093fe8d.diff LOG: [libcxx] Add an explicit option to build against system-libcxxabi Add an explicit LIBCXX_CXX_ABI=system-libcxxabi option for linking to system-installed libc++abi. This fixes the ability to link against one when building libcxx via the runtimes build, as otherwise the build system insists on linking into in-tree targets. Differential Revision: https://reviews.llvm.org/D119539 (cherry picked from commit ba4f1e44e480d661d99973007a39dc642f5d79a4) Added: Modified: libcxx/cmake/Modules/HandleLibCXXABI.cmake libcxx/docs/BuildingLibcxx.rst libcxx/utils/libcxx/test/config.py Removed: ################################################################################ diff --git a/libcxx/cmake/Modules/HandleLibCXXABI.cmake b/libcxx/cmake/Modules/HandleLibCXXABI.cmake index d69405ddeeacf..9b5df6e015b35 100644 --- a/libcxx/cmake/Modules/HandleLibCXXABI.cmake +++ b/libcxx/cmake/Modules/HandleLibCXXABI.cmake @@ -118,6 +118,10 @@ elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi") setup_abi_lib( "-DLIBCXX_BUILDING_LIBCXXABI" "${shared}" "${static}" "cxxabi.h;__cxxabi_config.h" "") +elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "system-libcxxabi") + setup_abi_lib( + "-DLIBCXX_BUILDING_LIBCXXABI" + "c++abi" "c++abi" "cxxabi.h;__cxxabi_config.h" "") elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxrt") if(NOT LIBCXX_CXX_ABI_INCLUDE_PATHS) set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1") diff --git a/libcxx/docs/BuildingLibcxx.rst b/libcxx/docs/BuildingLibcxx.rst index a0c7672ff7717..544d06cc8c424 100644 --- a/libcxx/docs/BuildingLibcxx.rst +++ b/libcxx/docs/BuildingLibcxx.rst @@ -318,7 +318,7 @@ ABI Library Specific Options .. option:: LIBCXX_CXX_ABI:STRING - **Values**: ``none``, ``libcxxabi``, ``libcxxrt``, ``libstdc++``, ``libsupc++``. + **Values**: ``none``, ``libcxxabi``, ``system-libcxxabi``, ``libcxxrt``, ``libstdc++``, ``libsupc++``. Select the ABI library to build libc++ against. diff --git a/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py index fdc1ff4f714ab..152a9755206e1 100644 --- a/libcxx/utils/libcxx/test/config.py +++ b/libcxx/utils/libcxx/test/config.py @@ -410,6 +410,8 @@ def configure_link_flags_abi_library(self): self.cxx.link_flags += [abs_path] else: self.cxx.link_flags += ['-lc++abi'] + elif cxx_abi == 'system-libcxxabi': + self.cxx.link_flags += ['-lc++abi'] elif cxx_abi == 'libcxxrt': self.cxx.link_flags += ['-lcxxrt'] elif cxx_abi == 'vcruntime': _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
