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 @@ -18,463 +18,6 @@ # steps: - # - # Light pre-commit tests for things like formatting or when people forget - # to update generated files. - # - - label: "Format" - command: "libcxx/utils/ci/run-buildbot check-format" - artifact_paths: - - "**/clang-format.patch" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - soft_fail: - - exit_status: 1 - - - label: "Generated output" - command: "libcxx/utils/ci/run-buildbot check-generated-output" - artifact_paths: - - "**/generated_output.patch" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - # - # General testing with the default configuration, under all the supported - # Standard modes, with Clang and GCC. This catches most issues upfront. - # The goal of this step is to catch most issues while being very fast. - # - - wait - - - label: "C++2b" - command: "libcxx/utils/ci/run-buildbot generic-cxx2b" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "C++20" - command: "libcxx/utils/ci/run-buildbot generic-cxx20" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "C++17" - command: "libcxx/utils/ci/run-buildbot generic-cxx17" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "C++14" - command: "libcxx/utils/ci/run-buildbot generic-cxx14" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - label: "C++11" - command: "libcxx/utils/ci/run-buildbot generic-cxx11" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "C++03" - command: "libcxx/utils/ci/run-buildbot generic-cxx03" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "GCC 11" - command: "libcxx/utils/ci/run-buildbot generic-gcc" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - # - # All other supported configurations of libc++. - # - - wait - - - label: "Clang 11" - command: "libcxx/utils/ci/run-buildbot generic-clang-11" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Clang 12" - command: "libcxx/utils/ci/run-buildbot generic-clang-12" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "-fno-exceptions" - command: "libcxx/utils/ci/run-buildbot generic-noexceptions" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Modular build" - command: "libcxx/utils/ci/run-buildbot generic-modules" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Static libraries" - command: "libcxx/utils/ci/run-buildbot generic-static" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Assertions enabled" - command: "libcxx/utils/ci/run-buildbot generic-assertions" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Debug iterators" - command: "libcxx/utils/ci/run-buildbot generic-debug-iterators" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "ASAN" - command: "libcxx/utils/ci/run-buildbot generic-asan" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "TSAN" - command: "libcxx/utils/ci/run-buildbot generic-tsan" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "UBSAN" - command: "libcxx/utils/ci/run-buildbot generic-ubsan" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "With LLVM's libunwind" - command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Single-threaded" - command: "libcxx/utils/ci/run-buildbot generic-singlethreaded" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "No debug mode" - command: "libcxx/utils/ci/run-buildbot generic-no-debug" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "No Filesystem" - command: "libcxx/utils/ci/run-buildbot generic-no-filesystem" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "No random device" - command: "libcxx/utils/ci/run-buildbot generic-no-random_device" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "No locale" - command: "libcxx/utils/ci/run-buildbot generic-no-localization" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Benchmarks" - command: "libcxx/utils/ci/run-buildbot benchmarks" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Documentation" - command: "libcxx/utils/ci/run-buildbot documentation" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - 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: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Unified standalone build" - command: "libcxx/utils/ci/run-buildbot unified-standalone" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Runtimes build" - command: "libcxx/utils/ci/run-buildbot runtimes-build" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Windows (DLL)" - command: "bash libcxx/utils/ci/run-buildbot windows-dll" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "windows" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Windows (Static)" - command: "bash libcxx/utils/ci/run-buildbot windows-static" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "windows" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "32 bit" - command: "libcxx/utils/ci/run-buildbot generic-32bit" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "MacOS C++20" - command: "libcxx/utils/ci/run-buildbot generic-cxx20" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders-macos" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - # Build with the configuration we use to generate libc++.dylib on Apple platforms - - label: "Apple system" - command: "libcxx/utils/ci/run-buildbot x86_64-apple-system" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-macos" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Apple system -fno-exceptions" - command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-noexceptions" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-macos" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - # Test back-deployment to older Apple platforms - - label: "Apple back-deployment macosx10.9" - command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.9" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-macos10.15" # TODO: For now, we're running the back-deployment tests for 10.9 on 10.15, because we don't have proper 10.9 machines - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Apple back-deployment macosx10.15" - command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.15" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-macos10.15" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - label: "AArch64" command: "libcxx/utils/ci/run-buildbot aarch64" artifact_paths: @@ -487,18 +30,6 @@ - exit_status: -1 # Agent was lost limit: 2 - - label: "AArch64 -fno-exceptions" - command: "libcxx/utils/ci/run-buildbot aarch64-noexceptions" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-linaro-arm" - arch: "aarch64" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - label: "Armv8" command: "libcxx/utils/ci/run-buildbot armv8" artifact_paths: @@ -510,39 +41,3 @@ automatic: - exit_status: -1 # Agent was lost limit: 2 - - - label: "Armv8 -fno-exceptions" - command: "libcxx/utils/ci/run-buildbot armv8-noexceptions" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-linaro-arm" - arch: "armv8l" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Armv7" - command: "libcxx/utils/ci/run-buildbot armv7" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-linaro-arm" - arch: "armv8l" # Compiling for v7, running on v8 hardware - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - - label: "Armv7 -fno-exceptions" - command: "libcxx/utils/ci/run-buildbot armv7-noexceptions" - artifact_paths: - - "**/test-results.xml" - agents: - queue: "libcxx-builders-linaro-arm" - arch: "armv8l" # Compiling for v7, running on v8 hardware - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 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 @@ -145,393 +145,21 @@ ${NINJA} --version case "${BUILDER}" in -check-format) - clean - echo "+++ Checking formatting" - # We need to set --extensions so that clang-format checks extensionless files. - mkdir -p ${BUILD_DIR} - git-clang-format \ - --binary /usr/bin/clang-format --diff \ - --extensions ',h,hh,hpp,hxx,c,cc,cxx,cpp' HEAD~1 \ - -- \ - libcxx/{benchmarks,include,src,test} \ - libcxxabi/{fuzz,include,src,test} \ - | tee ${BUILD_DIR}/clang-format.patch - # Check if the diff is empty, fail otherwise. - ! grep -q '^--- a' ${BUILD_DIR}/clang-format.patch -;; -check-generated-output) - # `! foo` doesn't work properly with `set -e`, use `! foo || false` instead. - # https://stackoverflow.com/questions/57681955/set-e-does-not-respect-logical-not - clean - echo "+++ Checking the output of the generator scripts" - mkdir -p ${BUILD_DIR} - # Reject patches that don't update the generated output correctly. - python3 libcxx/utils/generate_feature_test_macro_components.py - python3 libcxx/utils/generate_header_inclusion_tests.py - python3 libcxx/utils/generate_header_tests.py - git diff | tee ${BUILD_DIR}/generated_output.patch - # Check if the diffs are empty, fail otherwise. - ! grep -q '^--- a' ${BUILD_DIR}/generated_output.patch || false - # Reject patches that introduce non-ASCII characters or hard tabs. - # Depends on LC_COLLATE set at the top of this script. - ! grep -rn '[^ -~]' libcxx/include/ || false - # Check that no dependency cycles have been introduced. - python3 libcxx/utils/graph_header_deps.py >/dev/null -;; -generic-cxx03) - # TODO: Switch to compiling with Clang ToT once issues with https://reviews.llvm.org/D104500 are resolved. - export CC=clang-12 - export CXX=clang++-12 - clean - 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 -;; -generic-cxx11) - clean - 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 -;; -generic-cxx14) - clean - 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 -;; -generic-cxx17) - clean - 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 -;; -generic-cxx20) - clean - 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 -;; -generic-cxx2b) - clean - 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 -;; -generic-assertions) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-assertions.cmake" - check-cxx-cxxabi - check-abi-list -;; -generic-debug-iterators) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-debug-iterators.cmake" - check-cxx-cxxabi - check-abi-list -;; -generic-noexceptions) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-noexceptions.cmake" - check-cxx-cxxabi -;; -generic-modules) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-modules.cmake" - check-cxx-cxxabi -;; -generic-static) - clean - 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) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-32bits.cmake" - check-cxx-cxxabi -;; -generic-clang-11) - export CC=clang-11 - export CXX=clang++-11 - clean - generate-cmake - check-cxx-cxxabi -;; -generic-clang-12) - export CC=clang-12 - export CXX=clang++-12 - clean - generate-cmake - check-cxx-cxxabi -;; -generic-gcc) - export CC=gcc-11 - export CXX=g++-11 - clean - generate-cmake - check-cxx-cxxabi -;; -generic-asan) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-asan.cmake" - check-cxx-cxxabi -;; -generic-msan) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-msan.cmake" - check-cxx-cxxabi -;; -generic-tsan) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-tsan.cmake" - check-cxx-cxxabi -;; -generic-ubsan) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-ubsan.cmake" - check-cxx-cxxabi -;; -generic-with_llvm_unwinder) - clean - generate-cmake -DLIBCXXABI_USE_LLVM_UNWINDER=ON - check-cxx-cxxabi -;; -generic-singlethreaded) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-singlethreaded.cmake" - check-cxx-cxxabi -;; -generic-no-debug) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-debug.cmake" - check-cxx-cxxabi -;; -generic-no-filesystem) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-filesystem.cmake" - check-cxx-cxxabi -;; -generic-no-random_device) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-random_device.cmake" - check-cxx-cxxabi -;; -generic-no-localization) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-localization.cmake" - check-cxx-cxxabi -;; -x86_64-apple-system) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake" - check-cxx-cxxabi -;; -x86_64-apple-system-noexceptions) - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake" \ - -DLIBCXX_ENABLE_EXCEPTIONS=OFF \ - -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF - check-cxx-cxxabi -;; -x86_64-apple-system-backdeployment-*) - clean - - if [[ "${OSX_ROOTS}" == "" ]]; then - echo "--- Downloading previous macOS dylibs" - PREVIOUS_DYLIBS_URL="https://dl.dropboxusercontent.com/s/liu4fmc53qzlfly/libcxx-roots.tar.gz" - OSX_ROOTS="${BUILD_DIR}/macos-roots" - mkdir -p "${OSX_ROOTS}" - curl "${PREVIOUS_DYLIBS_URL}" | tar -xz --strip-components=1 -C "${OSX_ROOTS}" - fi - - DEPLOYMENT_TARGET="${BUILDER#x86_64-apple-system-backdeployment-}" - - # TODO: On Apple platforms, we never produce libc++abi.1.dylib, always libc++abi.dylib. - # Fix that in the build so that the tests stop searching for @rpath/libc++abi.1.dylib. - cp "${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}/libc++abi.dylib" \ - "${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}/libc++abi.1.dylib" - - PARAMS="target_triple=x86_64-apple-macosx${DEPLOYMENT_TARGET}" - PARAMS+=";cxx_runtime_root=${OSX_ROOTS}/macOS/libc++/${DEPLOYMENT_TARGET}" - PARAMS+=";abi_runtime_root=${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}" - PARAMS+=";use_system_cxx_lib=True" - - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake" \ - -DLIBCXX_TEST_PARAMS="${PARAMS}" \ - -DLIBCXXABI_TEST_PARAMS="${PARAMS}" - - check-cxx-cxxabi -;; -benchmarks) - clean - generate-cmake - check-cxx-benchmarks -;; -documentation) - clean - generate-cmake -DLLVM_ENABLE_SPHINX=ON - - echo "+++ Generating documentation" - ${NINJA} -vC "${BUILD_DIR}" docs-libcxx-html -;; -unified-standalone) - - clean - - echo "--- Generating CMake" - ${CMAKE} \ - -S "${MONOREPO_ROOT}/libcxx/utils/ci/runtimes" \ - -B "${BUILD_DIR}" \ - -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi;libunwind" - - check-cxx-cxxabi -;; -runtimes-build) - clean - - echo "--- Generating CMake" - # TODO: We currently enable modules and assertions in the runtimes build - # because that provides coverage for some specific Clang failures - # we've been seeing recently, however it would be better to instead - # run all CI configurations against a Clang that has assertions enabled. - ${CMAKE} \ - -S "${MONOREPO_ROOT}/llvm" \ - -B "${BUILD_DIR}" \ - -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLLVM_ENABLE_PROJECTS="clang" \ - -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \ - -DLLVM_RUNTIME_TARGETS="x86_64-unknown-linux-gnu" \ - -DLLVM_ENABLE_ASSERTIONS=ON \ - -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-modules.cmake" - - echo "+++ Running the libc++ and libc++abi tests" - ${NINJA} -C "${BUILD_DIR}" check-runtimes - - echo "--- Installing libc++ and libc++abi to a fake location" - ${NINJA} -C "${BUILD_DIR}" install-runtimes -;; -legacy-test-config) - clean - generate-cmake -DLIBCXX_TEST_CONFIG="${MONOREPO_ROOT}/libcxx/test/configs/legacy.cfg.in" - check-cxx-cxxabi -;; -legacy-standalone) - clean - - echo "--- Generating CMake" - ${CMAKE} \ - -S "${MONOREPO_ROOT}/libcxx" \ - -B "${BUILD_DIR}/libcxx" \ - -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${MONOREPO_ROOT}/libcxxabi/include" \ - -DLIBCXX_CXX_ABI_LIBRARY_PATH="${BUILD_DIR}/libcxxabi/lib" - - ${CMAKE} \ - -S "${MONOREPO_ROOT}/libcxxabi" \ - -B "${BUILD_DIR}/libcxxabi" \ - -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \ - -DLIBCXXABI_LIBCXX_PATH="${MONOREPO_ROOT}/libcxx" \ - -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}/libcxx/include/c++/v1" \ - -DLIBCXXABI_LIBCXX_LIBRARY_PATH="${BUILD_DIR}/libcxx/lib" - - echo "+++ Generating libc++ headers" - ${NINJA} -vC "${BUILD_DIR}/libcxx" generate-cxx-headers - - echo "+++ Building libc++abi" - ${NINJA} -vC "${BUILD_DIR}/libcxxabi" cxxabi - - echo "+++ Building libc++" - ${NINJA} -vC "${BUILD_DIR}/libcxx" cxx - - echo "+++ Running the libc++ tests" - ${NINJA} -vC "${BUILD_DIR}/libcxx" check-cxx - - echo "+++ Running the libc++abi tests" - ${NINJA} -vC "${BUILD_DIR}/libcxxabi" check-cxxabi -;; aarch64) - export CC=/usr/local/bin/cc - export CXX=/usr/local/bin/c++ + whoami + echo $PATH clean generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/AArch64.cmake" check-cxx-cxxabi ;; -aarch64-noexceptions) - export CC=/usr/local/bin/cc - export CXX=/usr/local/bin/c++ - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/AArch64.cmake" \ - -DLIBCXX_ENABLE_EXCEPTIONS=OFF \ - -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF - check-cxx-cxxabi -;; # Aka Armv8 32 bit armv8) - export CC=/usr/local/bin/cc - export CXX=/usr/local/bin/c++ + whoami + echo $PATH clean generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv8Arm.cmake" check-cxx-cxxabi ;; -armv8-noexceptions) - export CC=/usr/local/bin/cc - export CXX=/usr/local/bin/c++ - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv8Thumb-noexceptions.cmake" - check-cxx-cxxabi -;; -# Armv7 32 bit. One building Arm only one Thumb only code. -armv7) - export CC=/usr/local/bin/cc - export CXX=/usr/local/bin/c++ - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv7Arm.cmake" - check-cxx-cxxabi -;; -armv7-noexceptions) - export CC=/usr/local/bin/cc - export CXX=/usr/local/bin/c++ - clean - generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv7Thumb-noexceptions.cmake" - check-cxx-cxxabi -;; -windows-dll) - clean - # TODO: Currently, building with the experimental library breaks running - # tests (the test linking look for the c++experimental library with the - # wrong name, and the statically linked c++experimental can't be linked - # correctly when libc++ visibility attributes indicate dllimport linkage - # anyway), thus just disable the experimental library. Remove this - # setting when cmake and the test driver does the right thing automatically. - generate-cmake-libcxx-win -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - echo "+++ Running the libc++ tests" - ${NINJA} -vC "${BUILD_DIR}" check-cxx -;; -windows-static) - clean - generate-cmake-libcxx-win -DLIBCXX_ENABLE_SHARED=OFF - echo "+++ Running the libc++ tests" - ${NINJA} -vC "${BUILD_DIR}" check-cxx -;; ################################################################# # Insert vendor-specific internal configurations below. #