diff options
| author | Louis Dionne <ldionne@apple.com> | 2019-08-08 00:28:06 +0000 |
|---|---|---|
| committer | Louis Dionne <ldionne@apple.com> | 2019-08-08 00:28:06 +0000 |
| commit | 80ef2f05d878fd6b00bbfb2ed1c04e2657d241cc (patch) | |
| tree | 042212355b7361b9e1dcb6911f70429fb85546d1 | |
| parent | 155b8d02c36354c13f2c9a8ec012a95ae0e283b3 (diff) | |
| download | bcm5719-llvm-80ef2f05d878fd6b00bbfb2ed1c04e2657d241cc.tar.gz bcm5719-llvm-80ef2f05d878fd6b00bbfb2ed1c04e2657d241cc.zip | |
Revert "[libc++] Take 3: Do not cleverly link against libc++abi just because it happens to be there"
This also reverts "[libc++] Remove temporary hack for D63883".
Clearly, I don't understand how the Linux build bots are configured.
Differential Revision: https://reviews.llvm.org/D63883
llvm-svn: 368238
| -rw-r--r-- | libcxx/CMakeLists.txt | 23 | ||||
| -rw-r--r-- | libcxx/cmake/Modules/HandleLibCXXABI.cmake | 2 |
2 files changed, 24 insertions, 1 deletions
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt index a3d4f4e3163..37a1e3fc082 100644 --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -148,11 +148,34 @@ set(LIBCXX_CXX_ABI "default" CACHE STRING set(CXXABIS none default libcxxabi libcxxrt libstdc++ libsupc++ vcruntime) set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS}) +# FIXME: This is a temporary hack to get the buildbots working while D63883 is in flight. +# Without this all the bots fail while building libc++ +if (DEFINED ENV{USER}) + if (("$ENV{USER}" STREQUAL "buildbot") OR (("$ENV{USER}" STREQUAL "llvmbb") OR ("$ENV{USER}" STREQUAL "buildslave"))) + if (LIBCXX_CXX_ABI STREQUAL "libcxxabi" AND NOT DEFINED LIBCXX_CXX_ABI_INCLUDE_PATHS) + message(WARNING "OVERRIDING BUILDBOT CONFIG") + set(LIBCXX_CXX_ABI "default" CACHE STRING "FIXME" FORCE) + endif() + endif() +endif() # 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) diff --git a/libcxx/cmake/Modules/HandleLibCXXABI.cmake b/libcxx/cmake/Modules/HandleLibCXXABI.cmake index 57f9e32c5da..10f100f7f0f 100644 --- a/libcxx/cmake/Modules/HandleLibCXXABI.cmake +++ b/libcxx/cmake/Modules/HandleLibCXXABI.cmake @@ -98,7 +98,7 @@ if ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libstdc++" OR "${_LIBSUPCXX_LIBNAME}" "${_LIBSUPCXX_LIBNAME}" "${_LIBSUPCXX_INCLUDE_FILES}" "bits" ) elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi") - if (TARGET cxxabi_shared AND TARGET cxxabi_static) + if (LIBCXX_CXX_ABI_INTREE) # Link against just-built "cxxabi" target. set(CXXABI_SHARED_LIBNAME cxxabi_shared) set(CXXABI_STATIC_LIBNAME cxxabi_static) |

