Skip to content

Commit ba4f1e4

Browse files
mgornyldionne
authored andcommitted
[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
1 parent 3de4e6b commit ba4f1e4

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

libcxx/cmake/Modules/HandleLibCXXABI.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi")
118118
setup_abi_lib(
119119
"-DLIBCXX_BUILDING_LIBCXXABI"
120120
"${shared}" "${static}" "cxxabi.h;__cxxabi_config.h" "")
121+
elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "system-libcxxabi")
122+
setup_abi_lib(
123+
"-DLIBCXX_BUILDING_LIBCXXABI"
124+
"c++abi" "c++abi" "cxxabi.h;__cxxabi_config.h" "")
121125
elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxrt")
122126
if(NOT LIBCXX_CXX_ABI_INCLUDE_PATHS)
123127
set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1")

libcxx/docs/BuildingLibcxx.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ ABI Library Specific Options
318318

319319
.. option:: LIBCXX_CXX_ABI:STRING
320320

321-
**Values**: ``none``, ``libcxxabi``, ``libcxxrt``, ``libstdc++``, ``libsupc++``.
321+
**Values**: ``none``, ``libcxxabi``, ``system-libcxxabi``, ``libcxxrt``, ``libstdc++``, ``libsupc++``.
322322

323323
Select the ABI library to build libc++ against.
324324

libcxx/utils/libcxx/test/config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,8 @@ def configure_link_flags_abi_library(self):
406406
self.cxx.link_flags += [abs_path]
407407
else:
408408
self.cxx.link_flags += ['-lc++abi']
409+
elif cxx_abi == 'system-libcxxabi':
410+
self.cxx.link_flags += ['-lc++abi']
409411
elif cxx_abi == 'libcxxrt':
410412
self.cxx.link_flags += ['-lcxxrt']
411413
elif cxx_abi == 'vcruntime':

0 commit comments

Comments
 (0)