You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[libc++] Replace LIBCXX_ENABLE_STATIC_ABI_LIBRARY & friends by a new LIBCXX_CXX_ABI choice
Instead of having complicated options like LIBCXX_ENABLE_STATIC_ABI_LIBRARY
and LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY, introduce a more general
mechanism to select the ABI library used by libc++. The new mechanism allows
specifying the ABI library for the static libc++ and the shared libc++
separately, and allows selecting a "merged" flavor of libc++ for both
the in-tree libc++abi and any external static ABI library.
As an example, one can now specify arbitrary combinations like
-DLIBCXX_ABILIB_FOR_SHARED="shared-libcxxabi"
-DLIBCXX_ABILIB_FOR_STATIC="merged-libcxxabi"
which would have been impossible or very brittle in the past. In theory,
one can even select an entirely different ABI library for the static and
the shared libc++ (e.g. libc++abi vs libsupc++), although supporting that
is not a primary goal of this patch but merely a result of the general
mechanism.
Closes#77655Fixes#57759
Differential Revision: https://reviews.llvm.org/D125683
set(LIBCXX_CXX_ABI "${LIBCXX_DEFAULT_ABI_LIBRARY}"CACHESTRING"Specify C++ ABI library to use. Supported values are ${LIBCXX_SUPPORTED_ABI_LIBRARIES}.")
245
-
if (NOT"${LIBCXX_CXX_ABI}"IN_LIST LIBCXX_SUPPORTED_ABI_LIBRARIES)
246
-
message(FATAL_ERROR "Unsupported C++ ABI library: '${LIBCXX_CXX_ABI}'. Supported values are ${LIBCXX_SUPPORTED_ABI_LIBRARIES}.")
0 commit comments