[libcxx-commits] [PATCH] D63883: [libc++] Do not cleverly link against libc++abi just because it happens to be there
Louis Dionne via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jun 27 09:00:51 PDT 2019
ldionne created this revision.
ldionne added a reviewer: EricWF.
Herald added subscribers: libcxx-commits, dexonsmith, jkorous, christof, mgorny.
Herald added a project: libc++.
Otherwise, when libcxxabi is not an enabled project in the monorepo, we
get a link error because we try to link against non-existent cxxabi_shared.
More generally, we shouldn't change the behavior of the build based on
implicit things like whether a file happens to be at a specific path or
not.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D63883
Files:
libcxx/CMakeLists.txt
libcxx/cmake/Modules/HandleLibCXXABI.cmake
Index: libcxx/cmake/Modules/HandleLibCXXABI.cmake
===================================================================
--- libcxx/cmake/Modules/HandleLibCXXABI.cmake
+++ libcxx/cmake/Modules/HandleLibCXXABI.cmake
@@ -98,7 +98,7 @@
"${_LIBSUPCXX_LIBNAME}" "${_LIBSUPCXX_LIBNAME}" "${_LIBSUPCXX_INCLUDE_FILES}" "bits"
)
elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi")
- if (LIBCXX_CXX_ABI_INTREE)
+ if (TARGET cxxabi_shared AND TARGET cxxabi_static)
# Link against just-built "cxxabi" target.
set(CXXABI_SHARED_LIBNAME cxxabi_shared)
set(CXXABI_STATIC_LIBNAME cxxabi_static)
Index: libcxx/CMakeLists.txt
===================================================================
--- libcxx/CMakeLists.txt
+++ libcxx/CMakeLists.txt
@@ -149,22 +149,9 @@
# Setup the default options if LIBCXX_CXX_ABI is not specified.
if (LIBCXX_CXX_ABI STREQUAL "default")
- find_path(
- LIBCXX_LIBCXXABI_INCLUDES_INTERNAL cxxabi.h
- PATHS ${LLVM_MAIN_SRC_DIR}/projects/libcxxabi/include
- ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include
- ${LLVM_MAIN_SRC_DIR}/../libcxxabi/include
- NO_DEFAULT_PATH
- NO_CMAKE_FIND_ROOT_PATH
- )
if (LIBCXX_TARGETING_MSVC)
# FIXME: Figure out how to configure the ABI library on Windows.
set(LIBCXX_CXX_ABI_LIBNAME "vcruntime")
- elseif ((NOT LIBCXX_STANDALONE_BUILD OR HAVE_LIBCXXABI) AND
- IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
- set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
- set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
- set(LIBCXX_CXX_ABI_INTREE 1)
elseif (APPLE)
set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
set(LIBCXX_CXX_ABI_SYSTEM 1)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63883.206878.patch
Type: text/x-patch
Size: 1704 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190627/fdf58381/attachment.bin>
More information about the libcxx-commits
mailing list