https://github.com/Endilll updated https://github.com/llvm/llvm-project/pull/93318
>From 16ec4c725d86020831541a64bada8f4629a0972c Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:15:54 +0300 Subject: [PATCH 01/17] [clang][ci] Move libc++ testing into the main PR pipeline --- .ci/generate-buildkite-pipeline-premerge | 31 ++++++++++- .ci/monolithic-linux.sh | 65 ++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index e1c66ac18e7ac..d563fa6a01120 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -85,6 +85,22 @@ function compute-projects-to-test() { done } +function compute-runtimes-to-test() { + projects=${@} + for project in ${projects}; do + echo "${project}" + case ${project} in + clang) + for p in libcxx libcxxabi libunwind; do + echo $p + done + *) + # Nothing to do + ;; + esac + done +} + function add-dependencies() { projects=${@} for project in ${projects}; do @@ -178,6 +194,15 @@ function check-targets() { cross-project-tests) echo "check-cross-project" ;; + libcxx) + echo "check-cxx" + ;; + libcxxabi) + echo "check-cxxabi" + ;; + libunwind) + echo "check-unwind" + ;; lldb) echo "check-all" # TODO: check-lldb may not include all the LLDB tests? ;; @@ -231,6 +256,10 @@ linux_projects_to_test=$(exclude-linux $(compute-projects-to-test ${modified_pro linux_check_targets=$(check-targets ${linux_projects_to_test} | sort | uniq) linux_projects=$(add-dependencies ${linux_projects_to_test} | sort | uniq) +linux_runtimes_to_test=$(compute-runtimes-to-test ${linux_projects_to_test}) +linux_runtime_check_targets=$(check-targets ${linux_runtimes_to_test} | sort | uniq) +linux_runtimes=$(${linux_runtimes_to_test} | sort | uniq) + windows_projects_to_test=$(exclude-windows $(compute-projects-to-test ${modified_projects})) windows_check_targets=$(check-targets ${windows_projects_to_test} | sort | uniq) windows_projects=$(add-dependencies ${windows_projects_to_test} | sort | uniq) @@ -255,7 +284,7 @@ if [[ "${linux_projects}" != "" ]]; then CC: 'clang' CXX: 'clang++' commands: - - './.ci/monolithic-linux.sh "$(echo ${linux_projects} | tr ' ' ';')" "$(echo ${linux_check_targets})"' + - './.ci/monolithic-linux.sh "$(echo ${linux_projects} | tr ' ' ';')" "$(echo ${linux_check_targets})" "$(echo ${linux_runtimes} | tr ' ' ';')" "$(echo ${linux_runtime_check_targets})"' EOF fi diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh index b00a4b984a1d2..bbd90f7d496b1 100755 --- a/.ci/monolithic-linux.sh +++ b/.ci/monolithic-linux.sh @@ -54,3 +54,68 @@ cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \ echo "--- ninja" # Targets are not escaped as they are passed as separate arguments. ninja -C "${BUILD_DIR}" -k 0 ${targets} + +runtimes="${3}" +runtime_targets="${4}" + +# Compiling runtimes with just-built Clang and running their tests +# as an additional testing for Clang. +if [[ "${runtimes}" != "" ]]; then + if [[ "${runtime_targets}" == "" ]]; then + echo "Runtimes to build are specified, but targets are not." + fi + + RUNTIMES_BUILD_DIR="${MONOREPO_ROOT}/build-runtimes" + INSTALL_DIR="${RUNTIMES_BUILD_DIR}/install" + mkdir -p ${RUNTIMES_BUILD_DIR} + + echo "--- cmake runtimes C++03" + + cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ + -DCMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ + -DCMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -DLLVM_ENABLE_RUNTIMES="${runtimes}" \ + -DLIBCXX_CXX_ABI=libcxxabi \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -DLIBCXX_TEST_PARAMS="std=c++03" \ + -DLIBCXXABI_TEST_PARAMS="std=c++03" + + echo "--- ninja runtimes C++03" + + ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets} + + echo "--- cmake runtimes C++26" + + rm -rf "${RUNTIMES_BUILD_DIR}" + cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ + -DCMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ + -DCMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -DLLVM_ENABLE_RUNTIMES="${runtimes}" \ + -DLIBCXX_CXX_ABI=libcxxabi \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -DLIBCXX_TEST_PARAMS="std=c++26" \ + -DLIBCXXABI_TEST_PARAMS="std=c++26" + + echo "--- ninja runtimes C++26" + + ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets} + + echo "--- cmake runtimes clang modules" + + rm -rf "${RUNTIMES_BUILD_DIR}" + cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ + -DCMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ + -DCMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -DLLVM_ENABLE_RUNTIMES="${runtimes}" \ + -DLIBCXX_CXX_ABI=libcxxabi \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -DLIBCXX_TEST_PARAMS="enable_modules=clang" \ + -DLIBCXXABI_TEST_PARAMS="enable_modules=clang" + + echo "--- ninja runtimes clang modules" + + ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets} +fi >From 5be9db11843c12f9a7e8064e68bd3218c7ad3855 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:17:14 +0300 Subject: [PATCH 02/17] Add missing semicolons --- .ci/generate-buildkite-pipeline-premerge | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index d563fa6a01120..8d55239254cea 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -94,6 +94,7 @@ function compute-runtimes-to-test() { for p in libcxx libcxxabi libunwind; do echo $p done + ;; *) # Nothing to do ;; >From d2ce8f24442e25117499499ac6b3f7c4b586f0aa Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:21:49 +0300 Subject: [PATCH 03/17] Make a test change in clang --- clang/examples/PrintFunctionNames/PrintFunctionNames.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp b/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp index 6509a6440e12d..b2b785b87c25c 100644 --- a/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp +++ b/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp @@ -72,7 +72,7 @@ class PrintFunctionsConsumer : public ASTConsumer { *sema.LateParsedTemplateMap.find(FD)->second; sema.LateTemplateParser(sema.OpaqueParser, LPT); llvm::errs() << "late-parsed-decl: \"" << FD->getNameAsString() << "\"\n"; - } + } } }; >From a585ece606204a9623cca70ba73f68d5796de8e5 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:27:14 +0300 Subject: [PATCH 04/17] Add `set -x` to pipeline generating script --- .ci/generate-buildkite-pipeline-premerge | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index 8d55239254cea..16bcd34422ce1 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -19,6 +19,7 @@ set -eu set -o pipefail +set -x # Environment variables script works with: >From 9160288e92d0556a3ca5f45d82c97348ed24f248 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:29:26 +0300 Subject: [PATCH 05/17] Add missing echo --- .ci/generate-buildkite-pipeline-premerge | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index 16bcd34422ce1..fac6d6bdc9d41 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -260,7 +260,7 @@ linux_projects=$(add-dependencies ${linux_projects_to_test} | sort | uniq) linux_runtimes_to_test=$(compute-runtimes-to-test ${linux_projects_to_test}) linux_runtime_check_targets=$(check-targets ${linux_runtimes_to_test} | sort | uniq) -linux_runtimes=$(${linux_runtimes_to_test} | sort | uniq) +linux_runtimes=$(echo ${linux_runtimes_to_test} | sort | uniq) windows_projects_to_test=$(exclude-windows $(compute-projects-to-test ${modified_projects})) windows_check_targets=$(check-targets ${windows_projects_to_test} | sort | uniq) >From ad6a5dfed34eb0edcbad3ec83b193b0f1ce919ab Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:36:11 +0300 Subject: [PATCH 06/17] Add more debug echoes --- .ci/generate-buildkite-pipeline-premerge | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index fac6d6bdc9d41..e286d1e2664c8 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -19,7 +19,6 @@ set -eu set -o pipefail -set -x # Environment variables script works with: @@ -259,8 +258,11 @@ linux_check_targets=$(check-targets ${linux_projects_to_test} | sort | uniq) linux_projects=$(add-dependencies ${linux_projects_to_test} | sort | uniq) linux_runtimes_to_test=$(compute-runtimes-to-test ${linux_projects_to_test}) +echo "debug linux_runtimes_to_test: ${linux_runtimes_to_test}" linux_runtime_check_targets=$(check-targets ${linux_runtimes_to_test} | sort | uniq) +echo "debug linux_runtime_check_targets: ${linux_runtime_check_targets}" linux_runtimes=$(echo ${linux_runtimes_to_test} | sort | uniq) +echo "debug linux_runtimes: ${linux_runtimes}" windows_projects_to_test=$(exclude-windows $(compute-projects-to-test ${modified_projects})) windows_check_targets=$(check-targets ${windows_projects_to_test} | sort | uniq) >From 5d56a7e54d7e22be3337d571ac640f353ebc5ac7 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:37:50 +0300 Subject: [PATCH 07/17] Re-enable `set -x` --- .ci/generate-buildkite-pipeline-premerge | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index e286d1e2664c8..c4885103ecbd4 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -19,6 +19,7 @@ set -eu set -o pipefail +set -x # Environment variables script works with: >From 67ed5ce731f7a359c6cccb85b111e6fe71118c72 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:46:23 +0300 Subject: [PATCH 08/17] Removed unncessary echo --- .ci/generate-buildkite-pipeline-premerge | 1 - 1 file changed, 1 deletion(-) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index c4885103ecbd4..e628630257cb3 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -89,7 +89,6 @@ function compute-projects-to-test() { function compute-runtimes-to-test() { projects=${@} for project in ${projects}; do - echo "${project}" case ${project} in clang) for p in libcxx libcxxabi libunwind; do >From 6cd1e08f26e8d229b9505daca594abed3500fe20 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:49:35 +0300 Subject: [PATCH 09/17] Remove debug echoes --- .ci/generate-buildkite-pipeline-premerge | 3 --- 1 file changed, 3 deletions(-) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index e628630257cb3..06474323c5b12 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -258,11 +258,8 @@ linux_check_targets=$(check-targets ${linux_projects_to_test} | sort | uniq) linux_projects=$(add-dependencies ${linux_projects_to_test} | sort | uniq) linux_runtimes_to_test=$(compute-runtimes-to-test ${linux_projects_to_test}) -echo "debug linux_runtimes_to_test: ${linux_runtimes_to_test}" linux_runtime_check_targets=$(check-targets ${linux_runtimes_to_test} | sort | uniq) -echo "debug linux_runtime_check_targets: ${linux_runtime_check_targets}" linux_runtimes=$(echo ${linux_runtimes_to_test} | sort | uniq) -echo "debug linux_runtimes: ${linux_runtimes}" windows_projects_to_test=$(exclude-windows $(compute-projects-to-test ${modified_projects})) windows_check_targets=$(check-targets ${windows_projects_to_test} | sort | uniq) >From cac43abbbc829e8bafa06cca4de68718ea4f3360 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 19:50:34 +0300 Subject: [PATCH 10/17] Remove `set -x` --- .ci/generate-buildkite-pipeline-premerge | 1 - 1 file changed, 1 deletion(-) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index 06474323c5b12..aaccdf0d4287d 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -19,7 +19,6 @@ set -eu set -o pipefail -set -x # Environment variables script works with: >From 9bbf851eb0aa5393b99b9558b8bbe1d05b54fd5d Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 21:12:52 +0300 Subject: [PATCH 11/17] Remove `clang-ci` trigger from the main pipeline --- .ci/generate-buildkite-pipeline-premerge | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge index aaccdf0d4287d..3ed5eb96eceb5 100755 --- a/.ci/generate-buildkite-pipeline-premerge +++ b/.ci/generate-buildkite-pipeline-premerge @@ -232,17 +232,6 @@ if echo "$modified_dirs" | grep -q -E "^(libcxx|libcxxabi|libunwind|runtimes|cma EOF fi -# If clang changed. -if echo "$modified_dirs" | grep -q -E "^(clang)$"; then - cat <<EOF -- trigger: "clang-ci" - build: - message: "${buildMessage}" - commit: "${BUILDKITE_COMMIT}" - branch: "${BUILDKITE_BRANCH}" -EOF -fi - # Generic pipeline for projects that have not defined custom steps. # # Individual projects should instead define the pre-commit CI tests that suits their >From e2ba15e605aa5f3e2f2aa1c6e81f8021a6676ff0 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 21:13:34 +0300 Subject: [PATCH 12/17] Revert "Make a test change in clang" This reverts commit d2ce8f24442e25117499499ac6b3f7c4b586f0aa. --- clang/examples/PrintFunctionNames/PrintFunctionNames.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp b/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp index b2b785b87c25c..6509a6440e12d 100644 --- a/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp +++ b/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp @@ -72,7 +72,7 @@ class PrintFunctionsConsumer : public ASTConsumer { *sema.LateParsedTemplateMap.find(FD)->second; sema.LateTemplateParser(sema.OpaqueParser, LPT); llvm::errs() << "late-parsed-decl: \"" << FD->getNameAsString() << "\"\n"; - } + } } }; >From a739134f0788ac900e6c46de4b2a59255f06063e Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 21:47:20 +0300 Subject: [PATCH 13/17] Delete `buildkite-pipeline.yml` --- clang/utils/ci/buildkite-pipeline.yml | 82 --------------------------- 1 file changed, 82 deletions(-) delete mode 100644 clang/utils/ci/buildkite-pipeline.yml diff --git a/clang/utils/ci/buildkite-pipeline.yml b/clang/utils/ci/buildkite-pipeline.yml deleted file mode 100644 index 86cfcf35cc867..0000000000000 --- a/clang/utils/ci/buildkite-pipeline.yml +++ /dev/null @@ -1,82 +0,0 @@ -#===----------------------------------------------------------------------===## -# -# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -# See https://llvm.org/LICENSE.txt for license information. -# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -# -#===----------------------------------------------------------------------===## - -# -# This file describes the various pre-commit CI bots used to test Clang against -# libc++ under various configurations. Unlike the usual libc++ CI pipeline, -# which aims to test libc++ itself, this pipeline aims to test Clang by -# compiling libc++ and running its test suite against the just-built Clang, -# in various configurations. -# -env: - # LLVM RELEASE bump version - LLVM_HEAD_VERSION: "17" -steps: - - label: "Building Clang (Linux)" - commands: - - "clang/utils/ci/run-buildbot build-clang" - agents: - queue: "linux" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - timeout_in_minutes: 120 - - - wait - - - label: "Testing libc++ with just-built Clang (C++03)" - commands: - - "clang/utils/ci/run-buildbot generic-cxx03" - artifact_paths: - - "**/test-results.xml" - - "**/crash_diagnostics/*" - env: - LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch? - CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics" - agents: - queue: "linux" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - timeout_in_minutes: 120 - - - label: "Testing libc++ with just-built Clang (C++26)" - commands: - - "clang/utils/ci/run-buildbot generic-cxx26" - artifact_paths: - - "**/test-results.xml" - - "**/crash_diagnostics/*" - env: - LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch? - CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics" - agents: - queue: "linux" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - timeout_in_minutes: 120 - - - label: "Testing libc++ with just-built Clang (w/ Clang Modules)" - commands: - - "clang/utils/ci/run-buildbot generic-modules" - artifact_paths: - - "**/test-results.xml" - - "**/crash_diagnostics/*" - env: - LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch? - CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics" - agents: - queue: "linux" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - timeout_in_minutes: 120 >From 8d10d51a3e084fea5dc771dbe3103ade2cc001f9 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 23:48:32 +0300 Subject: [PATCH 14/17] Add whitespaces to CMake arguments --- .ci/monolithic-linux.sh | 48 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh index bbd90f7d496b1..4389f0e137170 100755 --- a/.ci/monolithic-linux.sh +++ b/.ci/monolithic-linux.sh @@ -72,14 +72,14 @@ if [[ "${runtimes}" != "" ]]; then echo "--- cmake runtimes C++03" cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ - -DCMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ - -DCMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ - -DLLVM_ENABLE_RUNTIMES="${runtimes}" \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLIBCXX_TEST_PARAMS="std=c++03" \ - -DLIBCXXABI_TEST_PARAMS="std=c++03" + -D CMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ + -D CMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -D LLVM_ENABLE_RUNTIMES="${runtimes}" \ + -D LIBCXX_CXX_ABI=libcxxabi \ + -D CMAKE_BUILD_TYPE=RelWithDebInfo \ + -D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -D LIBCXX_TEST_PARAMS="std=c++03" \ + -D LIBCXXABI_TEST_PARAMS="std=c++03" echo "--- ninja runtimes C++03" @@ -89,14 +89,14 @@ if [[ "${runtimes}" != "" ]]; then rm -rf "${RUNTIMES_BUILD_DIR}" cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ - -DCMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ - -DCMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ - -DLLVM_ENABLE_RUNTIMES="${runtimes}" \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLIBCXX_TEST_PARAMS="std=c++26" \ - -DLIBCXXABI_TEST_PARAMS="std=c++26" + -D CMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ + -D CMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -D LLVM_ENABLE_RUNTIMES="${runtimes}" \ + -D LIBCXX_CXX_ABI=libcxxabi \ + -D CMAKE_BUILD_TYPE=RelWithDebInfo \ + -D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -D LIBCXX_TEST_PARAMS="std=c++26" \ + -D LIBCXXABI_TEST_PARAMS="std=c++26" echo "--- ninja runtimes C++26" @@ -106,14 +106,14 @@ if [[ "${runtimes}" != "" ]]; then rm -rf "${RUNTIMES_BUILD_DIR}" cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ - -DCMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ - -DCMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ - -DLLVM_ENABLE_RUNTIMES="${runtimes}" \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ - -DLIBCXX_TEST_PARAMS="enable_modules=clang" \ - -DLIBCXXABI_TEST_PARAMS="enable_modules=clang" + -D CMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ + -D CMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -D LLVM_ENABLE_RUNTIMES="${runtimes}" \ + -D LIBCXX_CXX_ABI=libcxxabi \ + -D CMAKE_BUILD_TYPE=RelWithDebInfo \ + -D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -D LIBCXX_TEST_PARAMS="enable_modules=clang" \ + -D LIBCXXABI_TEST_PARAMS="enable_modules=clang" echo "--- ninja runtimes clang modules" >From 9c1b04af304f4ab0aeaaf0f968731724353e14f2 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 23:57:17 +0300 Subject: [PATCH 15/17] Intall Clang and use it for libc++ builds --- .ci/monolithic-linux.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh index 4389f0e137170..a5fc705fe04b1 100755 --- a/.ci/monolithic-linux.sh +++ b/.ci/monolithic-linux.sh @@ -18,6 +18,7 @@ set -o pipefail MONOREPO_ROOT="${MONOREPO_ROOT:="$(git rev-parse --show-toplevel)"}" BUILD_DIR="${BUILD_DIR:=${MONOREPO_ROOT}/build}" +INSTALL_DIR="${BUILD_DIR}/install" rm -rf "${BUILD_DIR}" ccache --zero-stats @@ -49,7 +50,8 @@ cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \ -D LLVM_ENABLE_LLD=ON \ -D CMAKE_CXX_FLAGS=-gmlt \ -D LLVM_CCACHE_BUILD=ON \ - -D MLIR_ENABLE_BINDINGS_PYTHON=ON + -D MLIR_ENABLE_BINDINGS_PYTHON=ON \ + -D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" echo "--- ninja" # Targets are not escaped as they are passed as separate arguments. @@ -65,6 +67,10 @@ if [[ "${runtimes}" != "" ]]; then echo "Runtimes to build are specified, but targets are not." fi + echo "--- ninja install-clang" + + ninja -C ${BUILD_DIR} install-clang install-clang-resource-headers + RUNTIMES_BUILD_DIR="${MONOREPO_ROOT}/build-runtimes" INSTALL_DIR="${RUNTIMES_BUILD_DIR}/install" mkdir -p ${RUNTIMES_BUILD_DIR} @@ -72,8 +78,8 @@ if [[ "${runtimes}" != "" ]]; then echo "--- cmake runtimes C++03" cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ - -D CMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ - -D CMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \ + -D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \ -D LLVM_ENABLE_RUNTIMES="${runtimes}" \ -D LIBCXX_CXX_ABI=libcxxabi \ -D CMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -89,8 +95,8 @@ if [[ "${runtimes}" != "" ]]; then rm -rf "${RUNTIMES_BUILD_DIR}" cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ - -D CMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ - -D CMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \ + -D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \ -D LLVM_ENABLE_RUNTIMES="${runtimes}" \ -D LIBCXX_CXX_ABI=libcxxabi \ -D CMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -106,8 +112,8 @@ if [[ "${runtimes}" != "" ]]; then rm -rf "${RUNTIMES_BUILD_DIR}" cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \ - -D CMAKE_C_COMPILER="${BUILD_DIR}/bin/clang" \ - -D CMAKE_CXX_COMPILER="${BUILD_DIR}/bin/clang++" \ + -D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \ + -D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \ -D LLVM_ENABLE_RUNTIMES="${runtimes}" \ -D LIBCXX_CXX_ABI=libcxxabi \ -D CMAKE_BUILD_TYPE=RelWithDebInfo \ >From 34c2cb900c6d01c6a7bc3ff11c0386c6bfdb18b4 Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Fri, 24 May 2024 23:58:08 +0300 Subject: [PATCH 16/17] Add non-zero exit when only 3 arguments are passed to the `monolithic-linux.sh` --- .ci/monolithic-linux.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh index a5fc705fe04b1..0036c3e680afa 100755 --- a/.ci/monolithic-linux.sh +++ b/.ci/monolithic-linux.sh @@ -65,6 +65,7 @@ runtime_targets="${4}" if [[ "${runtimes}" != "" ]]; then if [[ "${runtime_targets}" == "" ]]; then echo "Runtimes to build are specified, but targets are not." + exit 1 fi echo "--- ninja install-clang" >From 735def1a4f9886174ec1594b730e3871fa3a4eaa Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Sat, 25 May 2024 00:17:02 +0300 Subject: [PATCH 17/17] Fix `INSTALL_DIR` that was based off wrong path --- .ci/monolithic-linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh index 0036c3e680afa..38d7128f241b6 100755 --- a/.ci/monolithic-linux.sh +++ b/.ci/monolithic-linux.sh @@ -73,7 +73,7 @@ if [[ "${runtimes}" != "" ]]; then ninja -C ${BUILD_DIR} install-clang install-clang-resource-headers RUNTIMES_BUILD_DIR="${MONOREPO_ROOT}/build-runtimes" - INSTALL_DIR="${RUNTIMES_BUILD_DIR}/install" + INSTALL_DIR="${BUILD_DIR}/install" mkdir -p ${RUNTIMES_BUILD_DIR} echo "--- cmake runtimes C++03" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits