diff --git a/libcxx/cmake/caches/Armv7.cmake b/libcxx/cmake/caches/Armv7.cmake new file mode 100644 --- /dev/null +++ b/libcxx/cmake/caches/Armv7.cmake @@ -0,0 +1,2 @@ +set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") +set(LIBCXX_TARGET_TRIPLE "armv7-linux-gnueabihf" CACHE STRING "") diff --git a/libcxx/cmake/caches/Armv8.cmake b/libcxx/cmake/caches/Armv8.cmake new file mode 100644 --- /dev/null +++ b/libcxx/cmake/caches/Armv8.cmake @@ -0,0 +1,2 @@ +set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") +set(LIBCXX_TARGET_TRIPLE "armv8-linux-gnueabihf" CACHE STRING "") 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 @@ -15,342 +15,390 @@ # steps: - - 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: "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: "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++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++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++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++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: "-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: "GCC/C++20" - 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 - - - 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-nodebug" - 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: "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 - - - 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 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 - - # All jobs defined before this `wait` will run whenever a CI job is started. - # Jobs defined after the `wait` will run only if all the jobs above succeeded. - # We use this to reduce the load on testers that have more constrained resources - # and avoid running builds that we know fail anyway. - - wait +# - 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: "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: "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++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++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++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++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: "-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: "GCC/C++20" +# 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 +# +# - 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-nodebug" +# 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: "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 +# +# - 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 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 +# +# # All jobs defined before this `wait` will run whenever a CI job is started. +# # Jobs defined after the `wait` will run only if all the jobs above succeeded. +# # We use this to reduce the load on testers that have more constrained resources +# # and avoid running builds that we know fail anyway. +# - wait +# +# # 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 +# +# # TODO: Re-enable those as soon as Green Dragon is back online. Currently, +# # all the jobs are failing when they try to pull the older dylibs from +# # Green Dragon, which is down. +# # # 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: +# - "**/test-results.xml" +# agents: +# queue: "libcxx-builders-linaro-arm" +# arch: "aarch64" +# retry: +# automatic: +# - 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 - # 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" + - label: "Armv8" + command: "libcxx/utils/ci/run-buildbot armv8" artifact_paths: - "**/test-results.xml" agents: - queue: "libcxx-builders-macos" + queue: "libcxx-builders-linaro-arm" + arch: "armv8l" 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" + - label: "Armv8 -fno-exceptions" + command: "libcxx/utils/ci/run-buildbot armv8-noexceptions" artifact_paths: - "**/test-results.xml" agents: - queue: "libcxx-builders-macos" + queue: "libcxx-builders-linaro-arm" + arch: "armv8l" retry: automatic: - exit_status: -1 # Agent was lost limit: 2 - # TODO: Re-enable those as soon as Green Dragon is back online. Currently, - # all the jobs are failing when they try to pull the older dylibs from - # Green Dragon, which is down. - # # 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" + - label: "Armv7" + command: "libcxx/utils/ci/run-buildbot armv7" artifact_paths: - "**/test-results.xml" agents: queue: "libcxx-builders-linaro-arm" - arch: "aarch64" + arch: "armv8l" # Compiling for v7, running on v8 hardware retry: automatic: - exit_status: -1 # Agent was lost limit: 2 - - label: "AArch64 -fno-exceptions" - command: "libcxx/utils/ci/run-buildbot aarch64-noexceptions" + - label: "Armv7 -fno-exceptions" + command: "libcxx/utils/ci/run-buildbot armv7-noexceptions" artifact_paths: - "**/test-results.xml" agents: queue: "libcxx-builders-linaro-arm" - arch: "aarch64" + arch: "armv8l" # Compiling for v7, running on v8 hardware retry: automatic: - exit_status: -1 # Agent was lost 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 @@ -399,6 +399,41 @@ -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF check-cxx-cxxabi ;; +# Aka Armv8 32 bit +armv8) + clean + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv8.cmake" \ + -DCMAKE_CXX_FLAGS="-marm" \ + -DCMAKE_C_FLAGS="-marm" + check-cxx-cxxabi +;; +armv8-noexceptions) + clean + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv8.cmake" \ + -DCMAKE_CXX_FLAGS="-mthumb" \ + -DCMAKE_C_FLAGS="-mthumb" \ + -DLIBCXX_ENABLE_EXCEPTIONS=OFF \ + -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF + check-cxx-cxxabi +;; +# Armv7 32 bit. One building Arm only one Thumb only code. +armv7) + clean + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv7.cmake" \ + -DCMAKE_CXX_FLAGS="-marm" \ + -DCMAKE_C_FLAGS="-marm" + check-cxx-cxxabi +;; +armv7-noexceptions) + clean + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv7.cmake" \ + -DCMAKE_CXX_FLAGS="-mthumb" \ + -DCMAKE_C_FLAGS="-mthumb" \ + -DLIBCXX_ENABLE_EXCEPTIONS=OFF \ + -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF + check-cxx-cxxabi +;; + *) echo "${BUILDER} is not a known configuration" exit 1