diff --git a/libcxx/cmake/caches/Generic-static.cmake b/libcxx/cmake/caches/Generic-static.cmake --- a/libcxx/cmake/caches/Generic-static.cmake +++ b/libcxx/cmake/caches/Generic-static.cmake @@ -1,10 +1,3 @@ set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") - -# TODO: We should switch this to a from-sratch config with static libraries -# instead and get rid of these options. -set(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI OFF CACHE BOOL "") -set(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX OFF CACHE BOOL "") -set(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI OFF CACHE BOOL "") -set(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX OFF CACHE BOOL "") diff --git a/libcxx/test/CMakeLists.txt b/libcxx/test/CMakeLists.txt --- a/libcxx/test/CMakeLists.txt +++ b/libcxx/test/CMakeLists.txt @@ -26,6 +26,7 @@ set(LIBCXXABI_USE_LLVM_UNWINDER OFF) endif() +# TODO: Clients using those options should switch to from-scratch Lit configuration files. option(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI "Whether the libc++ tests should link with the shared libc++abi library" ${LIBCXXABI_ENABLE_SHARED}) diff --git a/libcxx/test/configs/libcxx-trunk-shared.cfg.in b/libcxx/test/configs/libcxx-trunk-shared.cfg.in --- a/libcxx/test/configs/libcxx-trunk-shared.cfg.in +++ b/libcxx/test/configs/libcxx-trunk-shared.cfg.in @@ -5,6 +5,7 @@ COMPILER = "@CMAKE_CXX_COMPILER@" EXEC_ROOT = "@LIBCXX_BINARY_DIR@" CMAKE_OSX_SYSROOT = "@CMAKE_OSX_SYSROOT@" +TARGET_TRIPLE = "@TARGET_TRIPLE@" import os import pipes @@ -22,6 +23,8 @@ config.test_format = libcxx.test.format.CxxStandardLibraryTest() config.recursiveExpansionLimit = 10 config.test_exec_root = EXEC_ROOT +if TARGET_TRIPLE: + config.target_triple = TARGET_TRIPLE # Configure basic substitutions runPy = os.path.join(LIBCXX_ROOT, 'utils', 'run.py') @@ -35,7 +38,7 @@ os.path.join(LIBCXX_ROOT, 'test', 'support')) )) config.substitutions.append(('%{link_flags}', - '-nostdlib++ -L {0} -lc++ -Wl,-rpath,{0}'.format( + '-nostdlib++ -L {0} -lc++ -Wl,-rpath,{0} -pthread'.format( os.path.join(INSTALL_ROOT, 'lib')) )) config.substitutions.append(('%{exec}', diff --git a/libcxx/test/configs/libcxx-trunk-static.cfg.in b/libcxx/test/configs/libcxx-trunk-static.cfg.in --- a/libcxx/test/configs/libcxx-trunk-static.cfg.in +++ b/libcxx/test/configs/libcxx-trunk-static.cfg.in @@ -5,6 +5,7 @@ COMPILER = "@CMAKE_CXX_COMPILER@" EXEC_ROOT = "@LIBCXX_BINARY_DIR@" CMAKE_OSX_SYSROOT = "@CMAKE_OSX_SYSROOT@" +TARGET_TRIPLE = "@TARGET_TRIPLE@" import os import pipes @@ -22,6 +23,8 @@ config.test_format = libcxx.test.format.CxxStandardLibraryTest() config.recursiveExpansionLimit = 10 config.test_exec_root = EXEC_ROOT +if TARGET_TRIPLE: + config.target_triple = TARGET_TRIPLE # Configure basic substitutions runPy = os.path.join(LIBCXX_ROOT, 'utils', 'run.py') @@ -35,7 +38,7 @@ os.path.join(LIBCXX_ROOT, 'test', 'support')) )) config.substitutions.append(('%{link_flags}', - '-nostdlib++ {} {}'.format( + '-nostdlib++ {} {} -pthread'.format( os.path.join(INSTALL_ROOT, 'lib', 'libc++.a'), os.path.join(INSTALL_ROOT, 'lib', 'libc++abi.a')) )) diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -295,6 +295,17 @@ - exit_status: -1 # Agent was lost limit: 2 + - label: "Legacy Lit configuration" + command: "libcxx/utils/ci/run-buildbot legacy-test-config" + artifact_paths: + - "**/test-results.xml" + agents: + queue: "libcxx-builders" + retry: + automatic: + - exit_status: -1 # Agent was lost + limit: 2 + - label: "Legacy standalone build" command: "libcxx/utils/ci/run-buildbot legacy-standalone" artifact_paths: diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -183,7 +183,8 @@ export CC=clang export CXX=clang++ clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx03.cmake" + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx03.cmake" \ + -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/libcxx-trunk-shared.cfg.in" check-cxx-cxxabi check-abi-list ;; @@ -191,7 +192,8 @@ export CC=clang export CXX=clang++ clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx11.cmake" + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx11.cmake" \ + -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/libcxx-trunk-shared.cfg.in" check-cxx-cxxabi check-abi-list ;; @@ -199,7 +201,8 @@ export CC=clang export CXX=clang++ clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx14.cmake" + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx14.cmake" \ + -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/libcxx-trunk-shared.cfg.in" check-cxx-cxxabi check-abi-list ;; @@ -207,7 +210,8 @@ export CC=clang export CXX=clang++ clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx17.cmake" + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx17.cmake" \ + -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/libcxx-trunk-shared.cfg.in" check-cxx-cxxabi check-abi-list ;; @@ -215,7 +219,8 @@ export CC=clang export CXX=clang++ clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx20.cmake" + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx20.cmake" \ + -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/libcxx-trunk-shared.cfg.in" check-cxx-cxxabi check-abi-list ;; @@ -223,7 +228,8 @@ export CC=clang-tot export CXX=clang++-tot clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx2b.cmake" + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx2b.cmake" \ + -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/libcxx-trunk-shared.cfg.in" check-cxx-cxxabi check-abi-list ;; @@ -246,7 +252,8 @@ export CC=clang export CXX=clang++ clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-static.cmake" + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-static.cmake" \ + -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/libcxx-trunk-static.cfg.in" check-cxx-cxxabi ;; generic-32bit) @@ -436,6 +443,13 @@ echo "--- Installing libc++ and libc++abi to a fake location" ${NINJA} -C "${BUILD_DIR}" install-cxx install-cxxabi ;; +legacy-test-config) + export CC=clang + export CXX=clang++ + clean + generate-cmake -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/legacy.cfg.in" + check-cxx-cxxabi +;; legacy-standalone) export CC=clang export CXX=clang++