From 7142fef03d90f4f34e3f6d893f2bc4a671b9e4a5 Mon Sep 17 00:00:00 2001 From: Alex Richardson Date: Thu, 18 Jun 2020 17:07:49 +0100 Subject: [PATCH] [libc++] Don't override LIBCXX_CXX_ABI_INCLUDE_PATHS for libcxxrt When testing libc++ for our cross-compiled CheriBSD target we specify an explicit LIBCXX_CXX_ABI_INCLUDE_PATHS for libcxxrt. The hardcoded path /usr/include/c++/v1 was introduced in 61e89737c5daf7b65341936f88f68efb680cdcd4 and overrides any value passed on the CMake command line. Fix this by using it as a fallback rather than a fixed default value. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D82095 --- libcxx/cmake/Modules/HandleLibCXXABI.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libcxx/cmake/Modules/HandleLibCXXABI.cmake b/libcxx/cmake/Modules/HandleLibCXXABI.cmake index 973d875..5070e99 100644 --- a/libcxx/cmake/Modules/HandleLibCXXABI.cmake +++ b/libcxx/cmake/Modules/HandleLibCXXABI.cmake @@ -102,7 +102,9 @@ if ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libstdc++" OR "${_LIBSUPCXX_LIBNAME}" "${_LIBSUPCXX_LIBNAME}" "${_LIBSUPCXX_INCLUDE_FILES}" "bits" ) elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi") - set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_SOURCE_DIR}/../libcxxabi/include") + if(NOT LIBCXX_CXX_ABI_INCLUDE_PATHS) + set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_SOURCE_DIR}/../libcxxabi/include") + endif() if(LIBCXX_STANDALONE_BUILD AND NOT (LIBCXX_CXX_ABI_INTREE OR HAVE_LIBCXXABI)) set(shared c++abi) @@ -116,7 +118,9 @@ elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi") "-DLIBCXX_BUILDING_LIBCXXABI" "${shared}" "${static}" "cxxabi.h;__cxxabi_config.h" "") elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxrt") - set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1") + if(NOT LIBCXX_CXX_ABI_INCLUDE_PATHS) + set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1") + endif() setup_abi_lib( "-DLIBCXXRT" "cxxrt" "cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" "" -- 2.7.4