[libcxx-commits] [PATCH] D72687: [libcxx] Allow tests to link with static libc++abi/libc++ even if the shared version is present
Sergej Jaskiewicz via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Jan 14 02:13:28 PST 2020
broadwaylamb created this revision.
broadwaylamb added reviewers: EricWF, ldionne, phosek, mehdi_amini, mclow.lists, jroelofs, bcraig.
broadwaylamb added a project: libc++.
Herald added subscribers: libcxx-commits, dexonsmith, christof, mgorny.
This is essentially D71894 <https://reviews.llvm.org/D71894>, but for libc++.
This is needed for running libc++ tests over SSH.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D72687
Files:
libcxx/CMakeLists.txt
libcxx/test/CMakeLists.txt
libcxx/test/lit.site.cfg.in
Index: libcxx/test/lit.site.cfg.in
===================================================================
--- libcxx/test/lit.site.cfg.in
+++ libcxx/test/lit.site.cfg.in
@@ -8,7 +8,7 @@
config.enable_experimental = @LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY@
config.enable_filesystem = @LIBCXX_ENABLE_FILESYSTEM@
config.enable_rtti = @LIBCXX_ENABLE_RTTI@
-config.enable_shared = @LIBCXX_ENABLE_SHARED@
+config.enable_shared = @LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX@
config.enable_32bit = @LIBCXX_BUILD_32_BITS@
config.cxx_abi = "@LIBCXX_CXX_ABI_LIBNAME@"
config.use_sanitizer = "@LLVM_USE_SANITIZER@"
@@ -31,7 +31,7 @@
config.has_libatomic = @LIBCXX_HAS_ATOMIC_LIB@
config.use_libatomic = @LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB@
config.debug_build = @LIBCXX_DEBUG_BUILD@
-config.libcxxabi_shared = @LIBCXXABI_ENABLE_SHARED@
+config.libcxxabi_shared = @LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI@
config.cxx_ext_threads = @LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY@
config.pstl_src_root = "@ParallelSTL_SOURCE_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None
config.pstl_obj_root = "@ParallelSTL_BINARY_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None
Index: libcxx/test/CMakeLists.txt
===================================================================
--- libcxx/test/CMakeLists.txt
+++ libcxx/test/CMakeLists.txt
@@ -30,6 +30,8 @@
pythonize_bool(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
pythonize_bool(LIBCXX_ENABLE_RTTI)
pythonize_bool(LIBCXX_ENABLE_SHARED)
+pythonize_bool(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX)
+pythonize_bool(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI)
pythonize_bool(LIBCXX_ENABLE_FILESYSTEM)
pythonize_bool(LIBCXX_BUILD_32_BITS)
pythonize_bool(LIBCXX_GENERATE_COVERAGE)
Index: libcxx/CMakeLists.txt
===================================================================
--- libcxx/CMakeLists.txt
+++ libcxx/CMakeLists.txt
@@ -72,6 +72,15 @@
option(LIBCXX_ENABLE_ASSERTIONS "Enable assertions independent of build mode." OFF)
option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
option(LIBCXX_ENABLE_STATIC "Build libc++ as a static library." ON)
+
+option(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI
+ "Whether the libc++ tests should link with the shared libc++abi library"
+ ${LIBCXXABI_ENABLE_SHARED})
+
+option(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX
+ "Whether the libc++ tests should link with the shared libc++ library"
+ ${LIBCXX_ENABLE_SHARED})
+
option(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY "Build libc++experimental.a" ON)
set(ENABLE_FILESYSTEM_DEFAULT ON)
if (WIN32)
@@ -376,6 +385,26 @@
endif()
endif()
+if(DEFINED LIBCXXABI_ENABLE_SHARED
+ AND LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXAB
+ AND NOT LIBCXXABI_ENABLE_SHARED)
+ message(FATAL_ERROR "LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI being ON requires LIBCXXABI_ENABLE_SHARED to be ON")
+endif()
+
+if(DEFINED LIBCXXABI_ENABLE_STATIC
+ AND NOT LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI
+ AND NOT LIBCXXABI_ENABLE_STATIC)
+ message(FATAL_ERROR "LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI being OFF requires LIBCXXABI_ENABLE_STATIC to be ON")
+endif()
+
+if(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX AND NOT LIBCXX_ENABLE_SHARED)
+ message(FATAL_ERROR "LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX being ON requires LIBCXX_ENABLE_SHARED to be ON")
+endif()
+
+if(NOT LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX AND NOT LIBCXX_ENABLE_STATIC)
+ message(FATAL_ERROR "LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX being OFF requires LIBCXX_ENABLE_STATIC to be ON")
+endif()
+
if (LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
if (APPLE)
message(FATAL_ERROR "LIBCXX_ENABLE_ABI_LINKER_SCRIPT cannot be used on APPLE targets")
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72687.237889.patch
Type: text/x-patch
Size: 3786 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20200114/0f11a5e6/attachment-0001.bin>
More information about the libcxx-commits
mailing list