From 9b1168d59159fc85f4fb98fbc2e96125356e2f77 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 09:53:11 +0100 Subject: [PATCH 01/47] Add LLVM hermetic toolchains [BUILD-538] --- Jenkinsfile | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..cd39a0a --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,78 @@ +#!groovy + +/** + * This Jenkinsfile will only work in a Swift Navigation build/CI environment, as it uses + * non-public docker images and pipeline libraries. + */ + +// Use 'ci-jenkins@somebranch' to pull shared lib from a different branch than the default. +// Default is configured in Jenkins and should be from "stable" tag. +@Library("ci-jenkins") import com.swiftnav.ci.* + +def context = new Context(context: this) +context.setRepo("swift-toolchains") + +/** + * - Mount the refrepo to keep git operations functional on a repo that uses ref-repo during clone + **/ +String dockerMountArgs = "-v /mnt/efs/refrepo:/mnt/efs/refrepo" + +pipeline { + // Override agent in each stage to make sure we don't share containers among stages. + agent any + options { + // Make sure job aborts after 2 hours if hanging. + timeout(time: 4, unit: 'HOURS') + timestamps() + // Keep builds for 7 days. + buildDiscarder(logRotator(daysToKeepStr: '7')) + } + + stages { + stage('Build') { + parallel { + stage('llvm aarch64 darwin') { + agent { + node('macos-arm64') + } + steps { + gitPrep() + } + post { + always { + archiveArtifacts(artifacts: '', allowEmptyArchive: true) + } + } + } + // stage('llvm x86_64 darwin') { + // agent { + // node('macos') + // } + // steps { + // gitPrep() + // } + // post { + // always { + // archiveArtifacts(artifacts: '', allowEmptyArchive: true) + // } + // } + // } + // stage('llvm x86_64 linux') { + // agent { + // docker { + // image '' + // } + // } + // steps { + // gitPrep() + // } + // post { + // always { + // archiveArtifacts(artifacts: '', allowEmptyArchive: true) + // } + // } + // } + } + } + } +} From 2ef24cd07c236442473880e21b4df76cad7ff060 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 11:36:24 +0100 Subject: [PATCH 02/47] Test --- Jenkinsfile | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index cd39a0a..17557f6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,13 +36,17 @@ pipeline { node('macos-arm64') } steps { - gitPrep() - } - post { - always { - archiveArtifacts(artifacts: '', allowEmptyArchive: true) - } + sh(''' + git clone https://github.com/llvm/llvm-project + cd llvm-project + cmake -S llvm -B build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release + ''') } + // post { + // always { + // archiveArtifacts(artifacts: '', allowEmptyArchive: true) + // } + // } } // stage('llvm x86_64 darwin') { // agent { From b7ad638b0bc118b26fe30ee1725b56fefe427bdb Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 12:42:27 +0100 Subject: [PATCH 03/47] Test --- Jenkinsfile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 17557f6..882e7a6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,19 @@ pipeline { sh(''' git clone https://github.com/llvm/llvm-project cd llvm-project - cmake -S llvm -B build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release + git checkout llvmorg-14.0.6 + cmake -S llvm -B build -G "Unix Makefiles" \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$HOME/software/clang-14.0.6/arm64 \ + -DLLVM_TARGETS_TO_BUILD="AArch64" \ + -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + -DLLVM_ENABLE_PROJECTS='clang' + + make -C build install ''') } // post { From 027eb3e1e7439394d684aa9eeee249ef688354f2 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 12:51:50 +0100 Subject: [PATCH 04/47] Test --- Jenkinsfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 882e7a6..aff4433 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -50,8 +50,9 @@ pipeline { -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ -DLLVM_ENABLE_PROJECTS='clang' - - make -C build install + NPROC=$(nproc --all) + echo $NPROC + make -C build -j "$NPROC" install ''') } // post { From 3ea536fcd5d74ceab78649cf94572f507cb84f1a Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 13:15:56 +0100 Subject: [PATCH 05/47] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index aff4433..bfdabcd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,7 +52,7 @@ pipeline { -DLLVM_ENABLE_PROJECTS='clang' NPROC=$(nproc --all) echo $NPROC - make -C build -j "$NPROC" install + make -C build -j "$NPROC" install-distribution ''') } // post { From 343c0802e2fcbaec3319721e590062cf9fb9af0e Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 13:33:45 +0100 Subject: [PATCH 06/47] Test --- Jenkinsfile | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index bfdabcd..4199732 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,23 +36,26 @@ pipeline { node('macos-arm64') } steps { + // sh(''' + // git clone https://github.com/llvm/llvm-project + // cd llvm-project + // git checkout llvmorg-14.0.6 + // cmake -S llvm -B build -G "Unix Makefiles" \ + // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // -DCMAKE_C_COMPILER=`which clang` \ + // -DCMAKE_CXX_COMPILER=`which clang++` \ + // -DCMAKE_BUILD_TYPE=Release \ + // -DCMAKE_INSTALL_PREFIX=$HOME/software/clang-14.0.6/arm64 \ + // -DLLVM_TARGETS_TO_BUILD="AArch64" \ + // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_ENABLE_PROJECTS='clang' + // NPROC=$(nproc --all) + // echo $NPROC + // make -C build -j "$NPROC" install-distribution + // ''') sh(''' - git clone https://github.com/llvm/llvm-project - cd llvm-project - git checkout llvmorg-14.0.6 - cmake -S llvm -B build -G "Unix Makefiles" \ - -DCMAKE_OSX_ARCHITECTURES='arm64' \ - -DCMAKE_C_COMPILER=`which clang` \ - -DCMAKE_CXX_COMPILER=`which clang++` \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$HOME/software/clang-14.0.6/arm64 \ - -DLLVM_TARGETS_TO_BUILD="AArch64" \ - -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_ENABLE_PROJECTS='clang' - NPROC=$(nproc --all) - echo $NPROC - make -C build -j "$NPROC" install-distribution + ls -l clang-14.0.6/arm64/bin/ ''') } // post { From e55056bd5c514e31d809f85979ef21dd376c0c75 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 13:35:18 +0100 Subject: [PATCH 07/47] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4199732..d45c83d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,7 +55,7 @@ pipeline { // make -C build -j "$NPROC" install-distribution // ''') sh(''' - ls -l clang-14.0.6/arm64/bin/ + ls -l $HOME/clang-14.0.6/arm64/bin/ ''') } // post { From 8a080bd70e010e7357f1c87a7fe3e91e32ffab40 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 13:59:31 +0100 Subject: [PATCH 08/47] Test --- Jenkinsfile | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d45c83d..c431ef6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,27 +36,28 @@ pipeline { node('macos-arm64') } steps { - // sh(''' - // git clone https://github.com/llvm/llvm-project - // cd llvm-project - // git checkout llvmorg-14.0.6 - // cmake -S llvm -B build -G "Unix Makefiles" \ - // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // -DCMAKE_C_COMPILER=`which clang` \ - // -DCMAKE_CXX_COMPILER=`which clang++` \ - // -DCMAKE_BUILD_TYPE=Release \ - // -DCMAKE_INSTALL_PREFIX=$HOME/software/clang-14.0.6/arm64 \ - // -DLLVM_TARGETS_TO_BUILD="AArch64" \ - // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_ENABLE_PROJECTS='clang' - // NPROC=$(nproc --all) - // echo $NPROC - // make -C build -j "$NPROC" install-distribution - // ''') sh(''' + git clone https://github.com/llvm/llvm-project + cd llvm-project + git checkout llvmorg-14.0.6 + cmake -S llvm -B build -G "Unix Makefiles" \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$HOME/software/clang-14.0.6/arm64 \ + -DLLVM_TARGETS_TO_BUILD="AArch64" \ + -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + -DLLVM_ENABLE_PROJECTS='clang' + NPROC=$(nproc --all) + echo $NPROC + make -C build -j "$NPROC" install-distribution ls -l $HOME/clang-14.0.6/arm64/bin/ ''') + // sh(''' + // ls -l $HOME/clang-14.0.6/arm64/bin/ + // ''') } // post { // always { From 64b12a9d8f8c89835213196270a7abf7e29a3a9a Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 14:09:43 +0100 Subject: [PATCH 09/47] Build both stages --- Jenkinsfile | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c431ef6..0c60d0c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -40,20 +40,36 @@ pipeline { git clone https://github.com/llvm/llvm-project cd llvm-project git checkout llvmorg-14.0.6 - cmake -S llvm -B build -G "Unix Makefiles" \ + + NPROC=$(nproc --all) + echo $NPROC + + cmake -S llvm -B build-stage1 -G "Unix Makefiles" \ -DCMAKE_OSX_ARCHITECTURES='arm64' \ -DCMAKE_C_COMPILER=`which clang` \ -DCMAKE_CXX_COMPILER=`which clang++` \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$HOME/software/clang-14.0.6/arm64 \ + -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ -DLLVM_TARGETS_TO_BUILD="AArch64" \ -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ -DLLVM_ENABLE_PROJECTS='clang' - NPROC=$(nproc --all) - echo $NPROC + make -C build -j "$NPROC" install-distribution - ls -l $HOME/clang-14.0.6/arm64/bin/ + ls -l $PWD/stage1/clang-14.0.6/arm64 + + cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang \ + -DCMAKE_CXX_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang++ \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$PWD/stage2/clang-14.0.6/arm64 \ + -DLLVM_TARGETS_TO_BUILD="AArch64" \ + -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + -DLLVM_ENABLE_PROJECTS='clang' + + ls -l $PWD/stage2/clang-14.0.6/arm64 ''') // sh(''' // ls -l $HOME/clang-14.0.6/arm64/bin/ From 89508328a36c70b3d82782eb793bebac91310dfa Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 14:12:40 +0100 Subject: [PATCH 10/47] Fix --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0c60d0c..c56d721 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,7 +55,7 @@ pipeline { -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ -DLLVM_ENABLE_PROJECTS='clang' - make -C build -j "$NPROC" install-distribution + make -C build-stage1 -j "$NPROC" install-distribution ls -l $PWD/stage1/clang-14.0.6/arm64 cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ @@ -69,6 +69,7 @@ pipeline { -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ -DLLVM_ENABLE_PROJECTS='clang' + make -C build-stage2 -j "$NPROC" install-distribution ls -l $PWD/stage2/clang-14.0.6/arm64 ''') // sh(''' From 9578824ff740ea2ff89461bf1449b490c322d8a6 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 14:45:57 +0100 Subject: [PATCH 11/47] Fix --- Jenkinsfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c56d721..809cf6a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -53,10 +53,11 @@ pipeline { -DLLVM_TARGETS_TO_BUILD="AArch64" \ -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_ENABLE_PROJECTS='clang' + -DLLVM_ENABLE_PROJECTS='clang' \ + -DLLVM_DISTRIBUTION_COMPONENTS='clang' make -C build-stage1 -j "$NPROC" install-distribution - ls -l $PWD/stage1/clang-14.0.6/arm64 + ls -l $PWD/stage1/clang-14.0.6/arm64/bin cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ -DCMAKE_OSX_ARCHITECTURES='arm64' \ @@ -67,10 +68,11 @@ pipeline { -DLLVM_TARGETS_TO_BUILD="AArch64" \ -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_ENABLE_PROJECTS='clang' + -DLLVM_ENABLE_PROJECTS='clang' \ + -DLLVM_DISTRIBUTION_COMPONENTS='clang' make -C build-stage2 -j "$NPROC" install-distribution - ls -l $PWD/stage2/clang-14.0.6/arm64 + ls -l $PWD/stage1/clang-14.0.6/arm64/bin ''') // sh(''' // ls -l $HOME/clang-14.0.6/arm64/bin/ From d86eb128390ed441d1960007a1885ae00cd21d17 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 14:48:15 +0100 Subject: [PATCH 12/47] Fix --- Jenkinsfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 809cf6a..99291d1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,7 +36,9 @@ pipeline { node('macos-arm64') } steps { - sh(''' + sh(''' + ls -l + git clone https://github.com/llvm/llvm-project cd llvm-project git checkout llvmorg-14.0.6 @@ -72,7 +74,7 @@ pipeline { -DLLVM_DISTRIBUTION_COMPONENTS='clang' make -C build-stage2 -j "$NPROC" install-distribution - ls -l $PWD/stage1/clang-14.0.6/arm64/bin + ls -l $PWD/stage2/clang-14.0.6/arm64/bin ''') // sh(''' // ls -l $HOME/clang-14.0.6/arm64/bin/ From f0a2a9e4c0ecd23070a31cf0022a8ad1b3d9acb6 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 15:30:16 +0100 Subject: [PATCH 13/47] Test --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 99291d1..1f55e4f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,8 +55,8 @@ pipeline { -DLLVM_TARGETS_TO_BUILD="AArch64" \ -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_ENABLE_PROJECTS='clang' \ - -DLLVM_DISTRIBUTION_COMPONENTS='clang' + -DLLVM_ENABLE_PROJECTS='clang;libcxx;libcxxabi' \ + -DLLVM_DISTRIBUTION_COMPONENTS='clang;cxx;cxxabi;cxx-headers' make -C build-stage1 -j "$NPROC" install-distribution ls -l $PWD/stage1/clang-14.0.6/arm64/bin From a5a5671cc7a1beac4ec25305d4de4f5d0759cc81 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Wed, 15 Feb 2023 16:52:18 +0100 Subject: [PATCH 14/47] Test --- Jenkinsfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1f55e4f..7d7a33e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -59,7 +59,7 @@ pipeline { -DLLVM_DISTRIBUTION_COMPONENTS='clang;cxx;cxxabi;cxx-headers' make -C build-stage1 -j "$NPROC" install-distribution - ls -l $PWD/stage1/clang-14.0.6/arm64/bin + find $PWD/stage1/clang-14.0.6/arm64/ cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ -DCMAKE_OSX_ARCHITECTURES='arm64' \ @@ -71,10 +71,11 @@ pipeline { -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ -DLLVM_ENABLE_PROJECTS='clang' \ - -DLLVM_DISTRIBUTION_COMPONENTS='clang' + -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ + -DLLVM_ENABLE_LIBCXX=ON make -C build-stage2 -j "$NPROC" install-distribution - ls -l $PWD/stage2/clang-14.0.6/arm64/bin + find $PWD/stage2/clang-14.0.6/arm64/ ''') // sh(''' // ls -l $HOME/clang-14.0.6/arm64/bin/ From bef716dfebe305db941ab165bace25ea591da74e Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 11:54:29 +0100 Subject: [PATCH 15/47] Try apple stage 2 --- Jenkinsfile | 65 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 19 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7d7a33e..eebc9dc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -46,7 +46,9 @@ pipeline { NPROC=$(nproc --all) echo $NPROC - cmake -S llvm -B build-stage1 -G "Unix Makefiles" \ + cmake -S llvm -B build-stage1 \ + -G "Unix Makefiles" \ + -C clang/cmake/caches/Apple-stage1.cmake \ -DCMAKE_OSX_ARCHITECTURES='arm64' \ -DCMAKE_C_COMPILER=`which clang` \ -DCMAKE_CXX_COMPILER=`which clang++` \ @@ -55,28 +57,53 @@ pipeline { -DLLVM_TARGETS_TO_BUILD="AArch64" \ -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_ENABLE_PROJECTS='clang;libcxx;libcxxabi' \ - -DLLVM_DISTRIBUTION_COMPONENTS='clang;cxx;cxxabi;cxx-headers' + -DLLVM_ENABLE_PROJECTS='clang' \ + -DLLVM_DISTRIBUTION_COMPONENTS='clang' - make -C build-stage1 -j "$NPROC" install-distribution + make -C build-stage1 -j "$NPROC" stage2-install-distribution find $PWD/stage1/clang-14.0.6/arm64/ + ''') + // sh(''' + // ls -l - cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ - -DCMAKE_OSX_ARCHITECTURES='arm64' \ - -DCMAKE_C_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang \ - -DCMAKE_CXX_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang++ \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$PWD/stage2/clang-14.0.6/arm64 \ - -DLLVM_TARGETS_TO_BUILD="AArch64" \ - -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_ENABLE_PROJECTS='clang' \ - -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ - -DLLVM_ENABLE_LIBCXX=ON + // git clone https://github.com/llvm/llvm-project + // cd llvm-project + // git checkout llvmorg-14.0.6 - make -C build-stage2 -j "$NPROC" install-distribution - find $PWD/stage2/clang-14.0.6/arm64/ - ''') + // NPROC=$(nproc --all) + // echo $NPROC + + // cmake -S llvm -B build-stage1 -G "Unix Makefiles" \ + // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // -DCMAKE_C_COMPILER=`which clang` \ + // -DCMAKE_CXX_COMPILER=`which clang++` \ + // -DCMAKE_BUILD_TYPE=Release \ + // -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ + // -DLLVM_TARGETS_TO_BUILD="AArch64" \ + // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_ENABLE_PROJECTS='clang;libcxx;libcxxabi' \ + // -DLLVM_DISTRIBUTION_COMPONENTS='clang;cxx;cxxabi;cxx-headers' + + // make -C build-stage1 -j "$NPROC" install-distribution + // find $PWD/stage1/clang-14.0.6/arm64/ + + // cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ + // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // -DCMAKE_C_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang \ + // -DCMAKE_CXX_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang++ \ + // -DCMAKE_BUILD_TYPE=Release \ + // -DCMAKE_INSTALL_PREFIX=$PWD/stage2/clang-14.0.6/arm64 \ + // -DLLVM_TARGETS_TO_BUILD="AArch64" \ + // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_ENABLE_PROJECTS='clang' \ + // -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ + // -DLLVM_ENABLE_LIBCXX=ON + + // make -C build-stage2 -j "$NPROC" install-distribution + // find $PWD/stage2/clang-14.0.6/arm64/ + // ''') // sh(''' // ls -l $HOME/clang-14.0.6/arm64/bin/ // ''') From 037adb824274c3d18a49bb4b3c592a4e3c58ffec Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 14:06:34 +0100 Subject: [PATCH 16/47] Linux x86 --- Dockerfile.llvm | 13 +++ Jenkinsfile | 206 ++++++++++++++++++++++++++---------------------- 2 files changed, 124 insertions(+), 95 deletions(-) create mode 100644 Dockerfile.llvm diff --git a/Dockerfile.llvm b/Dockerfile.llvm new file mode 100644 index 0000000..d8f0e0f --- /dev/null +++ b/Dockerfile.llvm @@ -0,0 +1,13 @@ +FROM ubuntu:jammy + +RUN apt-get update +RUN apt-get install -y \ + build-essential \ + clang-14 \ + clang++-14 \ + cmake \ + libc6-dev-i386 \ + python3-pip \ + python3-distutils \ + vim \ + ninja-build diff --git a/Jenkinsfile b/Jenkinsfile index eebc9dc..db2f8ec 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,107 +31,92 @@ pipeline { stages { stage('Build') { parallel { - stage('llvm aarch64 darwin') { - agent { - node('macos-arm64') - } - steps { - sh(''' - ls -l - - git clone https://github.com/llvm/llvm-project - cd llvm-project - git checkout llvmorg-14.0.6 - - NPROC=$(nproc --all) - echo $NPROC - - cmake -S llvm -B build-stage1 \ - -G "Unix Makefiles" \ - -C clang/cmake/caches/Apple-stage1.cmake \ - -DCMAKE_OSX_ARCHITECTURES='arm64' \ - -DCMAKE_C_COMPILER=`which clang` \ - -DCMAKE_CXX_COMPILER=`which clang++` \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ - -DLLVM_TARGETS_TO_BUILD="AArch64" \ - -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - -DLLVM_ENABLE_PROJECTS='clang' \ - -DLLVM_DISTRIBUTION_COMPONENTS='clang' - - make -C build-stage1 -j "$NPROC" stage2-install-distribution - find $PWD/stage1/clang-14.0.6/arm64/ - ''') - // sh(''' - // ls -l - - // git clone https://github.com/llvm/llvm-project - // cd llvm-project - // git checkout llvmorg-14.0.6 - - // NPROC=$(nproc --all) - // echo $NPROC - - // cmake -S llvm -B build-stage1 -G "Unix Makefiles" \ - // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // -DCMAKE_C_COMPILER=`which clang` \ - // -DCMAKE_CXX_COMPILER=`which clang++` \ - // -DCMAKE_BUILD_TYPE=Release \ - // -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ - // -DLLVM_TARGETS_TO_BUILD="AArch64" \ - // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_ENABLE_PROJECTS='clang;libcxx;libcxxabi' \ - // -DLLVM_DISTRIBUTION_COMPONENTS='clang;cxx;cxxabi;cxx-headers' - - // make -C build-stage1 -j "$NPROC" install-distribution - // find $PWD/stage1/clang-14.0.6/arm64/ - - // cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ - // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // -DCMAKE_C_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang \ - // -DCMAKE_CXX_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang++ \ - // -DCMAKE_BUILD_TYPE=Release \ - // -DCMAKE_INSTALL_PREFIX=$PWD/stage2/clang-14.0.6/arm64 \ - // -DLLVM_TARGETS_TO_BUILD="AArch64" \ - // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_ENABLE_PROJECTS='clang' \ - // -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ - // -DLLVM_ENABLE_LIBCXX=ON - - // make -C build-stage2 -j "$NPROC" install-distribution - // find $PWD/stage2/clang-14.0.6/arm64/ - // ''') - // sh(''' - // ls -l $HOME/clang-14.0.6/arm64/bin/ - // ''') - } - // post { - // always { - // archiveArtifacts(artifacts: '', allowEmptyArchive: true) - // } - // } - } - // stage('llvm x86_64 darwin') { + // stage('llvm aarch64 darwin') { // agent { - // node('macos') + // node('macos-arm64') // } // steps { - // gitPrep() - // } - // post { - // always { - // archiveArtifacts(artifacts: '', allowEmptyArchive: true) - // } + // sh(''' + // ls -l + + // git clone https://github.com/llvm/llvm-project + // cd llvm-project + // git checkout llvmorg-14.0.6 + + // NPROC=$(nproc --all) + // echo $NPROC + + // cmake -S llvm -B build-stage1 \ + // -G "Unix Makefiles" \ + // -C clang/cmake/caches/Apple-stage1.cmake \ + // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // -DCMAKE_C_COMPILER=`which clang` \ + // -DCMAKE_CXX_COMPILER=`which clang++` \ + // -DCMAKE_BUILD_TYPE=Release \ + // -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ + // -DLLVM_TARGETS_TO_BUILD="AArch64" \ + // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + // -DLLVM_ENABLE_PROJECTS='clang' \ + // -DLLVM_DISTRIBUTION_COMPONENTS='clang' + + // make -C build-stage1 -j "$NPROC" stage2-install-distribution + // find $PWD/stage1/clang-14.0.6/arm64/ + // ''') + // // sh(''' + // // ls -l + + // // git clone https://github.com/llvm/llvm-project + // // cd llvm-project + // // git checkout llvmorg-14.0.6 + + // // NPROC=$(nproc --all) + // // echo $NPROC + + // // cmake -S llvm -B build-stage1 -G "Unix Makefiles" \ + // // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // // -DCMAKE_C_COMPILER=`which clang` \ + // // -DCMAKE_CXX_COMPILER=`which clang++` \ + // // -DCMAKE_BUILD_TYPE=Release \ + // // -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ + // // -DLLVM_TARGETS_TO_BUILD="AArch64" \ + // // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + // // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + // // -DLLVM_ENABLE_PROJECTS='clang;libcxx;libcxxabi' \ + // // -DLLVM_DISTRIBUTION_COMPONENTS='clang;cxx;cxxabi;cxx-headers' + + // // make -C build-stage1 -j "$NPROC" install-distribution + // // find $PWD/stage1/clang-14.0.6/arm64/ + + // // cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ + // // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // // -DCMAKE_C_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang \ + // // -DCMAKE_CXX_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang++ \ + // // -DCMAKE_BUILD_TYPE=Release \ + // // -DCMAKE_INSTALL_PREFIX=$PWD/stage2/clang-14.0.6/arm64 \ + // // -DLLVM_TARGETS_TO_BUILD="AArch64" \ + // // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ + // // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ + // // -DLLVM_ENABLE_PROJECTS='clang' \ + // // -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ + // // -DLLVM_ENABLE_LIBCXX=ON + + // // make -C build-stage2 -j "$NPROC" install-distribution + // // find $PWD/stage2/clang-14.0.6/arm64/ + // // ''') + // // sh(''' + // // ls -l $HOME/clang-14.0.6/arm64/bin/ + // // ''') // } + // // post { + // // always { + // // archiveArtifacts(artifacts: '', allowEmptyArchive: true) + // // } + // // } // } - // stage('llvm x86_64 linux') { + // stage('llvm x86_64 darwin') { // agent { - // docker { - // image '' - // } + // node('macos') // } // steps { // gitPrep() @@ -142,6 +127,37 @@ pipeline { // } // } // } + stage('llvm x86_64 linux') { + agent { + dockerfile { + filename "Dockerfile.llvm" + } + } + steps { + sh(''' + git clone https://github.com/llvm/llvm-project + cd llvm-project + git checkout llvmorg-14.0.6 + + mkdir build + cd build + + cmake -GNinja ../llvm \ + -DLLVM_ENABLE_PROJECTS="clang;lld" \ + -DLLVM_TARGETS_TO_BUILD="X86" \ + -DCMAKE_INSTALL_PREFIX=$PWD/out/clang-14.0.6/x86 \ + -C ../clang/cmake/caches/DistributionExample.cmake + ninja stage2-install-distribution + + find $PWD/out/clang-14.0.6/x86 + ''') + } + post { + always { + archiveArtifacts(artifacts: '', allowEmptyArchive: true) + } + } + } } } } From 47cff6187df09d1b192fbfc2efbc562e8b72deda Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 14:11:26 +0100 Subject: [PATCH 17/47] Fix --- Dockerfile.llvm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile.llvm b/Dockerfile.llvm index d8f0e0f..15c5b3c 100644 --- a/Dockerfile.llvm +++ b/Dockerfile.llvm @@ -10,4 +10,5 @@ RUN apt-get install -y \ python3-pip \ python3-distutils \ vim \ - ninja-build + ninja-build \ + git From a70c47808e2cc08bbdf17bec8729dddf85f39452 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 15:57:40 +0100 Subject: [PATCH 18/47] Test --- Jenkinsfile | 51 +++++++++++++++--------------- llvm/Distribution-x86-stage2.cmake | 30 ++++++++++++++++++ llvm/Distribution-x86.cmake | 50 +++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 26 deletions(-) create mode 100644 llvm/Distribution-x86-stage2.cmake create mode 100644 llvm/Distribution-x86.cmake diff --git a/Jenkinsfile b/Jenkinsfile index db2f8ec..9dce81f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -121,11 +121,6 @@ pipeline { // steps { // gitPrep() // } - // post { - // always { - // archiveArtifacts(artifacts: '', allowEmptyArchive: true) - // } - // } // } stage('llvm x86_64 linux') { agent { @@ -134,28 +129,32 @@ pipeline { } } steps { - sh(''' - git clone https://github.com/llvm/llvm-project - cd llvm-project - git checkout llvmorg-14.0.6 - - mkdir build - cd build - - cmake -GNinja ../llvm \ - -DLLVM_ENABLE_PROJECTS="clang;lld" \ - -DLLVM_TARGETS_TO_BUILD="X86" \ - -DCMAKE_INSTALL_PREFIX=$PWD/out/clang-14.0.6/x86 \ - -C ../clang/cmake/caches/DistributionExample.cmake - ninja stage2-install-distribution - - find $PWD/out/clang-14.0.6/x86 + // sh(''' + // gitPrep() + + // git clone https://github.com/llvm/llvm-project + // cd llvm-project + // git checkout llvmorg-14.0.6 + + // mkdir build + // cd build + + // cmake -GNinja ../llvm \ + // -DCMAKE_INSTALL_PREFIX=../out/ \ + // -C ../../llvm/Distribution-x86.cmake + // ninja stage2-install-distribution + // ''') + sh(''' + mkdir -p llvm-project/out/bin + echo "abc" > llvm-project/out/bin/llvm-bin ''') - } - post { - always { - archiveArtifacts(artifacts: '', allowEmptyArchive: true) - } + sh('find llvm-project/out/bin') + zip(zipFile: 'clang+llvm-14.0.6-x86_64-linux.zip', dir: 'llvm-project/out/bin', archive: false) + jenkins.context.archivePatterns( + patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], + path: "swift-toolchains/${jenkins.context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", + jenkins: true + ) } } } diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake new file mode 100644 index 0000000..af9b6e1 --- /dev/null +++ b/llvm/Distribution-x86-stage2.cmake @@ -0,0 +1,30 @@ +# This file sets up a CMakeCache for the second stage of a simple distribution +# bootstrap build. + +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") + +set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") + +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "") + +# setup toolchain +set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_TOOLS + llvm-ar + llvm-cov + llvm-dwp + llvm-nm + llvm-objcopy + llvm-objdump + llvm-profdata + llvm-strip + CACHE STRING "") + +set(LLVM_DISTRIBUTION_COMPONENTS + clang + lld + ${LLVM_TOOLCHAIN_TOOLS} + CACHE STRING "") diff --git a/llvm/Distribution-x86.cmake b/llvm/Distribution-x86.cmake new file mode 100644 index 0000000..634320b --- /dev/null +++ b/llvm/Distribution-x86.cmake @@ -0,0 +1,50 @@ +# This file sets up a CMakeCache for a simple distribution bootstrap build. + +#Enable LLVM projects and runtimes +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") + +# Only build the native target in stage1 since it is a throwaway build. +set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") + +# Optimize the stage1 compiler, but don't LTO it because that wastes time. +set(CMAKE_BUILD_TYPE Release CACHE STRING "") + +# Setup vendor-specific settings. +set(PACKAGE_VENDOR LLVM.org CACHE STRING "") + +# Setting up the stage2 LTO option needs to be done on the stage1 build so that +# the proper LTO library dependencies can be connected. +set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") + +if (NOT APPLE) + # Since LLVM_ENABLE_LTO is ON we need a LTO capable linker + set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") +endif() + +# Expose stage2 targets through the stage1 build configuration. +set(CLANG_BOOTSTRAP_TARGETS + check-all + check-llvm + check-clang + llvm-config + test-suite + test-depends + llvm-test-depends + clang-test-depends + distribution + install-distribution + clang CACHE STRING "") + +# Setup the bootstrap build. +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") + +if(STAGE2_CACHE_FILE) + set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${STAGE2_CACHE_FILE} + CACHE STRING "") +else() + set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/DistributionExample-x86-stage2.cmake + CACHE STRING "") +endif() From bd5375b5b3a64eca00c39290a4799d79cf184e8c Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:00:07 +0100 Subject: [PATCH 19/47] Test --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9dce81f..d2e0e3c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -150,11 +150,11 @@ pipeline { ''') sh('find llvm-project/out/bin') zip(zipFile: 'clang+llvm-14.0.6-x86_64-linux.zip', dir: 'llvm-project/out/bin', archive: false) - jenkins.context.archivePatterns( - patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], - path: "swift-toolchains/${jenkins.context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", - jenkins: true - ) + // jenkins.context.archivePatterns( + // patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], + // path: "swift-toolchains/${jenkins.context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", + // jenkins: true + // ) } } } From e31d9773c906353eb314ebd98bf3fa9e9c906417 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:03:27 +0100 Subject: [PATCH 20/47] Test --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d2e0e3c..0032ba0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -150,11 +150,11 @@ pipeline { ''') sh('find llvm-project/out/bin') zip(zipFile: 'clang+llvm-14.0.6-x86_64-linux.zip', dir: 'llvm-project/out/bin', archive: false) - // jenkins.context.archivePatterns( - // patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], - // path: "swift-toolchains/${jenkins.context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", - // jenkins: true - // ) + context.archivePatterns( + patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], + path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", + jenkins: true + ) } } } From 7e4ff9781233d3bc82332cb43307adeb3895a591 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:05:26 +0100 Subject: [PATCH 21/47] Test --- Jenkinsfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0032ba0..10d09d5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -150,11 +150,13 @@ pipeline { ''') sh('find llvm-project/out/bin') zip(zipFile: 'clang+llvm-14.0.6-x86_64-linux.zip', dir: 'llvm-project/out/bin', archive: false) - context.archivePatterns( - patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], - path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", - jenkins: true - ) + script{ + context.archivePatterns( + patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], + path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", + jenkins: true + ) + } } } } From c71160d519df0fcef1656997b498b69e643441e4 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:13:37 +0100 Subject: [PATCH 22/47] Test --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 10d09d5..2fdb533 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -149,11 +149,11 @@ pipeline { echo "abc" > llvm-project/out/bin/llvm-bin ''') sh('find llvm-project/out/bin') - zip(zipFile: 'clang+llvm-14.0.6-x86_64-linux.zip', dir: 'llvm-project/out/bin', archive: false) + tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'llvm-project/out/bin', archive: false) script{ context.archivePatterns( - patterns: ['clang+llvm-14.0.6-x86_64-linux.zip'], - path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.zip", + patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], + path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", jenkins: true ) } From c893601303b4c4b0a939ee89e14a7d3ca8764339 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:17:39 +0100 Subject: [PATCH 23/47] Build x86 --- Jenkinsfile | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2fdb533..7a92410 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -129,24 +129,20 @@ pipeline { } } steps { - // sh(''' - // gitPrep() + sh(''' + gitPrep() - // git clone https://github.com/llvm/llvm-project - // cd llvm-project - // git checkout llvmorg-14.0.6 + git clone https://github.com/llvm/llvm-project + cd llvm-project + git checkout llvmorg-14.0.6 - // mkdir build - // cd build + mkdir build + cd build - // cmake -GNinja ../llvm \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ - // -C ../../llvm/Distribution-x86.cmake - // ninja stage2-install-distribution - // ''') - sh(''' - mkdir -p llvm-project/out/bin - echo "abc" > llvm-project/out/bin/llvm-bin + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -C ../../llvm/Distribution-x86.cmake + ninja stage2-install-distribution ''') sh('find llvm-project/out/bin') tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'llvm-project/out/bin', archive: false) From 92b606b6f0b3608703c24433a3b9aa5d0263fdbb Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:21:57 +0100 Subject: [PATCH 24/47] Fix --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7a92410..2e19e7b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -129,9 +129,8 @@ pipeline { } } steps { + gitPrep() sh(''' - gitPrep() - git clone https://github.com/llvm/llvm-project cd llvm-project git checkout llvmorg-14.0.6 From 20a31299465b4575107024ae2acb61cf004b7e09 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:28:21 +0100 Subject: [PATCH 25/47] Fix --- Jenkinsfile | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2e19e7b..56a667d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -129,29 +129,30 @@ pipeline { } } steps { - gitPrep() - sh(''' - git clone https://github.com/llvm/llvm-project - cd llvm-project - git checkout llvmorg-14.0.6 - - mkdir build - cd build - - cmake -GNinja ../llvm \ - -DCMAKE_INSTALL_PREFIX=../out/ \ - -C ../../llvm/Distribution-x86.cmake - ninja stage2-install-distribution - ''') - sh('find llvm-project/out/bin') - tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'llvm-project/out/bin', archive: false) - script{ - context.archivePatterns( - patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], - path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", - jenkins: true - ) - } + // gitPrep() + sh('ls -l') + // sh(''' + // git clone https://github.com/llvm/llvm-project + // cd llvm-project + // git checkout llvmorg-14.0.6 + + // mkdir build + // cd build + + // cmake -GNinja ../llvm \ + // -DCMAKE_INSTALL_PREFIX=../out/ \ + // -C ../../llvm/Distribution-x86.cmake + // ninja stage2-install-distribution + // ''') + // sh('find llvm-project/out/bin') + // tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'llvm-project/out/bin', archive: false) + // script{ + // context.archivePatterns( + // patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], + // path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", + // jenkins: true + // ) + // } } } } From 18cae1b44838fab02853efeec4344644ecb6cbbb Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:31:22 +0100 Subject: [PATCH 26/47] Fix --- Jenkinsfile | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 56a667d..7fb529f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -129,30 +129,28 @@ pipeline { } } steps { - // gitPrep() - sh('ls -l') - // sh(''' - // git clone https://github.com/llvm/llvm-project - // cd llvm-project - // git checkout llvmorg-14.0.6 - - // mkdir build - // cd build - - // cmake -GNinja ../llvm \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ - // -C ../../llvm/Distribution-x86.cmake - // ninja stage2-install-distribution - // ''') - // sh('find llvm-project/out/bin') - // tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'llvm-project/out/bin', archive: false) - // script{ - // context.archivePatterns( - // patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], - // path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", - // jenkins: true - // ) - // } + sh(''' + git clone https://github.com/llvm/llvm-project + cd llvm-project + git checkout llvmorg-14.0.6 + + mkdir build + cd build + + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -C ../../llvm/Distribution-x86.cmake + ninja stage2-install-distribution + ''') + sh('find llvm-project/out/bin') + tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'llvm-project/out/bin', archive: false) + script{ + context.archivePatterns( + patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], + path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", + jenkins: true + ) + } } } } From a790251edad573404d6b4ac963cd18e42233a641 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 18:09:26 +0100 Subject: [PATCH 27/47] Try default --- llvm/Distribution-x86-stage2.cmake | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake index af9b6e1..4a185a4 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-x86-stage2.cmake @@ -13,18 +13,21 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRIN # setup toolchain set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") set(LLVM_TOOLCHAIN_TOOLS - llvm-ar + dsymutil llvm-cov - llvm-dwp - llvm-nm - llvm-objcopy - llvm-objdump + llvm-dwarfdump llvm-profdata - llvm-strip + llvm-objdump + llvm-nm + llvm-size CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS clang - lld + LTO + clang-format + clang-resource-headers + builtins + runtimes ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") From 7fafd7132bda8644c87a778c3180dcb5c2e1d7d2 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 18:50:00 +0100 Subject: [PATCH 28/47] Test --- llvm/Distribution-x86-stage2.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake index 4a185a4..d99f05e 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-x86-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for the second stage of a simple distribution # bootstrap build. -set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") From 1340f86c1881b6a547f840a316fb794c6490acfc Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 09:36:35 +0100 Subject: [PATCH 29/47] Test --- Jenkinsfile | 93 +----------------------------- llvm/Distribution-x86-stage2.cmake | 4 +- 2 files changed, 4 insertions(+), 93 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7fb529f..de3e4d3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,97 +31,6 @@ pipeline { stages { stage('Build') { parallel { - // stage('llvm aarch64 darwin') { - // agent { - // node('macos-arm64') - // } - // steps { - // sh(''' - // ls -l - - // git clone https://github.com/llvm/llvm-project - // cd llvm-project - // git checkout llvmorg-14.0.6 - - // NPROC=$(nproc --all) - // echo $NPROC - - // cmake -S llvm -B build-stage1 \ - // -G "Unix Makefiles" \ - // -C clang/cmake/caches/Apple-stage1.cmake \ - // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // -DCMAKE_C_COMPILER=`which clang` \ - // -DCMAKE_CXX_COMPILER=`which clang++` \ - // -DCMAKE_BUILD_TYPE=Release \ - // -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ - // -DLLVM_TARGETS_TO_BUILD="AArch64" \ - // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - // -DLLVM_ENABLE_PROJECTS='clang' \ - // -DLLVM_DISTRIBUTION_COMPONENTS='clang' - - // make -C build-stage1 -j "$NPROC" stage2-install-distribution - // find $PWD/stage1/clang-14.0.6/arm64/ - // ''') - // // sh(''' - // // ls -l - - // // git clone https://github.com/llvm/llvm-project - // // cd llvm-project - // // git checkout llvmorg-14.0.6 - - // // NPROC=$(nproc --all) - // // echo $NPROC - - // // cmake -S llvm -B build-stage1 -G "Unix Makefiles" \ - // // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // // -DCMAKE_C_COMPILER=`which clang` \ - // // -DCMAKE_CXX_COMPILER=`which clang++` \ - // // -DCMAKE_BUILD_TYPE=Release \ - // // -DCMAKE_INSTALL_PREFIX=$PWD/stage1/clang-14.0.6/arm64 \ - // // -DLLVM_TARGETS_TO_BUILD="AArch64" \ - // // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - // // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - // // -DLLVM_ENABLE_PROJECTS='clang;libcxx;libcxxabi' \ - // // -DLLVM_DISTRIBUTION_COMPONENTS='clang;cxx;cxxabi;cxx-headers' - - // // make -C build-stage1 -j "$NPROC" install-distribution - // // find $PWD/stage1/clang-14.0.6/arm64/ - - // // cmake -S llvm -B build-stage2 -G "Unix Makefiles" \ - // // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // // -DCMAKE_C_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang \ - // // -DCMAKE_CXX_COMPILER=$PWD/stage1/clang-14.0.6/arm64/bin/clang++ \ - // // -DCMAKE_BUILD_TYPE=Release \ - // // -DCMAKE_INSTALL_PREFIX=$PWD/stage2/clang-14.0.6/arm64 \ - // // -DLLVM_TARGETS_TO_BUILD="AArch64" \ - // // -DLLVM_HOST_TRIPLE='aarch64-apple-darwin' \ - // // -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ - // // -DLLVM_ENABLE_PROJECTS='clang' \ - // // -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ - // // -DLLVM_ENABLE_LIBCXX=ON - - // // make -C build-stage2 -j "$NPROC" install-distribution - // // find $PWD/stage2/clang-14.0.6/arm64/ - // // ''') - // // sh(''' - // // ls -l $HOME/clang-14.0.6/arm64/bin/ - // // ''') - // } - // // post { - // // always { - // // archiveArtifacts(artifacts: '', allowEmptyArchive: true) - // // } - // // } - // } - // stage('llvm x86_64 darwin') { - // agent { - // node('macos') - // } - // steps { - // gitPrep() - // } - // } stage('llvm x86_64 linux') { agent { dockerfile { @@ -138,6 +47,8 @@ pipeline { cd build cmake -GNinja ../llvm \ + -DLLVM_ENABLE_PROJECTS="clang;lld" \ + -DLLVM_TARGETS_TO_BUILD="X86" \ -DCMAKE_INSTALL_PREFIX=../out/ \ -C ../../llvm/Distribution-x86.cmake ninja stage2-install-distribution diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake index d99f05e..99d5dc0 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-x86-stage2.cmake @@ -1,10 +1,10 @@ # This file sets up a CMakeCache for the second stage of a simple distribution # bootstrap build. -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64 CACHE STRING "") set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "") From 92f7797a19eb1b1000d178f3ec997332c71224ac Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 09:45:50 +0100 Subject: [PATCH 30/47] Single branch --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index de3e4d3..f9d4378 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ pipeline { } steps { sh(''' - git clone https://github.com/llvm/llvm-project + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch cd llvm-project git checkout llvmorg-14.0.6 From 52f45ee534f039561a61f53126a09342bdbfc502 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 10:23:51 +0100 Subject: [PATCH 31/47] Fix --- llvm/Distribution-x86.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/Distribution-x86.cmake b/llvm/Distribution-x86.cmake index 634320b..5035530 100644 --- a/llvm/Distribution-x86.cmake +++ b/llvm/Distribution-x86.cmake @@ -45,6 +45,6 @@ if(STAGE2_CACHE_FILE) CACHE STRING "") else() set(CLANG_BOOTSTRAP_CMAKE_ARGS - -C ${CMAKE_CURRENT_LIST_DIR}/DistributionExample-x86-stage2.cmake + -C ${CMAKE_CURRENT_LIST_DIR}/Distribution-x86-stage2.cmake CACHE STRING "") endif() From 2073e782854895dbc461f5e11c527907575d635c Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 11:55:06 +0100 Subject: [PATCH 32/47] Build only necessary --- Jenkinsfile | 1 - llvm/Distribution-x86-stage2.cmake | 19 ++++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f9d4378..a13236a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,7 +48,6 @@ pipeline { cmake -GNinja ../llvm \ -DLLVM_ENABLE_PROJECTS="clang;lld" \ - -DLLVM_TARGETS_TO_BUILD="X86" \ -DCMAKE_INSTALL_PREFIX=../out/ \ -C ../../llvm/Distribution-x86.cmake ninja stage2-install-distribution diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake index 99d5dc0..af9b6e1 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-x86-stage2.cmake @@ -4,7 +4,7 @@ set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "") @@ -13,21 +13,18 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRIN # setup toolchain set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") set(LLVM_TOOLCHAIN_TOOLS - dsymutil + llvm-ar llvm-cov - llvm-dwarfdump - llvm-profdata - llvm-objdump + llvm-dwp llvm-nm - llvm-size + llvm-objcopy + llvm-objdump + llvm-profdata + llvm-strip CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS clang - LTO - clang-format - clang-resource-headers - builtins - runtimes + lld ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") From 0fe08090425ddca15f9878123bba45a7983e1e7a Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 13:42:15 +0100 Subject: [PATCH 33/47] Test tar --- Jenkinsfile | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a13236a..9611986 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,22 +38,49 @@ pipeline { } } steps { - sh(''' - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - cd llvm-project - git checkout llvmorg-14.0.6 + // sh(''' + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + // cd llvm-project + // git checkout llvmorg-14.0.6 - mkdir build - cd build + // mkdir build + // cd build - cmake -GNinja ../llvm \ - -DLLVM_ENABLE_PROJECTS="clang;lld" \ - -DCMAKE_INSTALL_PREFIX=../out/ \ - -C ../../llvm/Distribution-x86.cmake - ninja stage2-install-distribution + // cmake -GNinja ../llvm \ + // -DLLVM_ENABLE_PROJECTS="clang;lld" \ + // -DCMAKE_INSTALL_PREFIX=../out/ \ + // -C ../../llvm/Distribution-x86.cmake + // ninja stage2-install-distribution + // ''') + // sh('find llvm-project/out/bin') + sh(''' + mkdir -p llvm-project/out/bin + echo "ABC" > llvm-project/out/bin/llvm-ar + echo "ABC" > llvm-project/out/bin/llvm-cov + echo "ABC" > llvm-project/out/bin/llvm-dwp + echo "ABC" > llvm-project/out/bin/llvm-nm + echo "ABC" > llvm-project/out/bin/llvm-objcopy + echo "ABC" > llvm-project/out/bin/llvm-objdump + echo "ABC" > llvm-project/out/bin/llvm-profdata + echo "ABC" > llvm-project/out/bin/llvm-strip + echo "ABC" > llvm-project/out/bin/clang-cpp + echo "ABC" > llvm-project/out/bin/ld.lld + ''') + sh(''' + mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin + cp llvm-project/out/bin/llvm-ar \ + llvm-project/out/bin/llvm-cov \ + llvm-project/out/bin/llvm-dwp \ + llvm-project/out/bin/llvm-nm \ + llvm-project/out/bin/llvm-objcopy \ + llvm-project/out/bin/llvm-objdump \ + llvm-project/out/bin/llvm-profdata \ + llvm-project/out/bin/llvm-strip \ + llvm-project/out/bin/clang-cpp \ + llvm-project/out/bin/ld.lld \ + tar/clang+llvm-14.0.6-x86_64-linux/bin ''') - sh('find llvm-project/out/bin') - tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'llvm-project/out/bin', archive: false) + tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'tar', archive: false) script{ context.archivePatterns( patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], From 4b33fca03519fda16417aa00f68806de4057ad1f Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 14:09:55 +0100 Subject: [PATCH 34/47] Final tar --- Jenkinsfile | 37 ++++++++++-------------------- llvm/Distribution-x86-stage2.cmake | 3 +-- llvm/Distribution-x86.cmake | 3 +-- 3 files changed, 14 insertions(+), 29 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9611986..9f6b850 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,34 +38,21 @@ pipeline { } } steps { - // sh(''' - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project - // git checkout llvmorg-14.0.6 + sh(''' + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + cd llvm-project + git checkout llvmorg-14.0.6 - // mkdir build - // cd build + mkdir build + cd build - // cmake -GNinja ../llvm \ - // -DLLVM_ENABLE_PROJECTS="clang;lld" \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ - // -C ../../llvm/Distribution-x86.cmake - // ninja stage2-install-distribution - // ''') - // sh('find llvm-project/out/bin') - sh(''' - mkdir -p llvm-project/out/bin - echo "ABC" > llvm-project/out/bin/llvm-ar - echo "ABC" > llvm-project/out/bin/llvm-cov - echo "ABC" > llvm-project/out/bin/llvm-dwp - echo "ABC" > llvm-project/out/bin/llvm-nm - echo "ABC" > llvm-project/out/bin/llvm-objcopy - echo "ABC" > llvm-project/out/bin/llvm-objdump - echo "ABC" > llvm-project/out/bin/llvm-profdata - echo "ABC" > llvm-project/out/bin/llvm-strip - echo "ABC" > llvm-project/out/bin/clang-cpp - echo "ABC" > llvm-project/out/bin/ld.lld + cmake -GNinja ../llvm \ + -DLLVM_ENABLE_PROJECTS="clang;lld" \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -C ../../llvm/Distribution-x86.cmake + ninja stage2-install-distribution ''') + sh('find llvm-project/out/bin') sh(''' mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin cp llvm-project/out/bin/llvm-ar \ diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake index af9b6e1..96d54f1 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-x86-stage2.cmake @@ -1,8 +1,7 @@ # This file sets up a CMakeCache for the second stage of a simple distribution # bootstrap build. -set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") -set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") diff --git a/llvm/Distribution-x86.cmake b/llvm/Distribution-x86.cmake index 5035530..e2d3f16 100644 --- a/llvm/Distribution-x86.cmake +++ b/llvm/Distribution-x86.cmake @@ -1,8 +1,7 @@ # This file sets up a CMakeCache for a simple distribution bootstrap build. #Enable LLVM projects and runtimes -set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") -set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") # Only build the native target in stage1 since it is a throwaway build. set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") From 9a71657b72276f435c59e4b056ace88bf824f4ac Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 08:26:33 +0100 Subject: [PATCH 35/47] Try only lld --- Jenkinsfile | 46 +++++++++++++++--------------- llvm/Distribution-x86-stage2.cmake | 6 ++-- llvm/Distribution-x86.cmake | 2 +- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9f6b850..f59cf65 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,29 +52,29 @@ pipeline { -C ../../llvm/Distribution-x86.cmake ninja stage2-install-distribution ''') - sh('find llvm-project/out/bin') - sh(''' - mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin - cp llvm-project/out/bin/llvm-ar \ - llvm-project/out/bin/llvm-cov \ - llvm-project/out/bin/llvm-dwp \ - llvm-project/out/bin/llvm-nm \ - llvm-project/out/bin/llvm-objcopy \ - llvm-project/out/bin/llvm-objdump \ - llvm-project/out/bin/llvm-profdata \ - llvm-project/out/bin/llvm-strip \ - llvm-project/out/bin/clang-cpp \ - llvm-project/out/bin/ld.lld \ - tar/clang+llvm-14.0.6-x86_64-linux/bin - ''') - tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'tar', archive: false) - script{ - context.archivePatterns( - patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], - path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", - jenkins: true - ) - } + // sh('find llvm-project/out/bin') + // sh(''' + // mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin + // cp llvm-project/out/bin/llvm-ar \ + // llvm-project/out/bin/llvm-cov \ + // llvm-project/out/bin/llvm-dwp \ + // llvm-project/out/bin/llvm-nm \ + // llvm-project/out/bin/llvm-objcopy \ + // llvm-project/out/bin/llvm-objdump \ + // llvm-project/out/bin/llvm-profdata \ + // llvm-project/out/bin/llvm-strip \ + // llvm-project/out/bin/clang-cpp \ + // llvm-project/out/bin/ld.lld \ + // tar/clang+llvm-14.0.6-x86_64-linux/bin + // ''') + // tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'tar', archive: false) + // script{ + // context.archivePatterns( + // patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], + // path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", + // jenkins: true + // ) + // } } } } diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake index 96d54f1..a2a7fd9 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-x86-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for the second stage of a simple distribution # bootstrap build. -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") @@ -23,7 +23,7 @@ set(LLVM_TOOLCHAIN_TOOLS CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS - clang + # clang lld - ${LLVM_TOOLCHAIN_TOOLS} + # ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") diff --git a/llvm/Distribution-x86.cmake b/llvm/Distribution-x86.cmake index e2d3f16..6642342 100644 --- a/llvm/Distribution-x86.cmake +++ b/llvm/Distribution-x86.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for a simple distribution bootstrap build. #Enable LLVM projects and runtimes -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") # Only build the native target in stage1 since it is a throwaway build. set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") From e2849c1e2165c55c63c0f4564ee05ac5f721ae31 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 07:15:31 +0100 Subject: [PATCH 36/47] Revert "Try only lld" This reverts commit 9a71657b72276f435c59e4b056ace88bf824f4ac. --- Jenkinsfile | 46 +++++++++++++++--------------- llvm/Distribution-x86-stage2.cmake | 6 ++-- llvm/Distribution-x86.cmake | 2 +- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f59cf65..9f6b850 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,29 +52,29 @@ pipeline { -C ../../llvm/Distribution-x86.cmake ninja stage2-install-distribution ''') - // sh('find llvm-project/out/bin') - // sh(''' - // mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin - // cp llvm-project/out/bin/llvm-ar \ - // llvm-project/out/bin/llvm-cov \ - // llvm-project/out/bin/llvm-dwp \ - // llvm-project/out/bin/llvm-nm \ - // llvm-project/out/bin/llvm-objcopy \ - // llvm-project/out/bin/llvm-objdump \ - // llvm-project/out/bin/llvm-profdata \ - // llvm-project/out/bin/llvm-strip \ - // llvm-project/out/bin/clang-cpp \ - // llvm-project/out/bin/ld.lld \ - // tar/clang+llvm-14.0.6-x86_64-linux/bin - // ''') - // tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'tar', archive: false) - // script{ - // context.archivePatterns( - // patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], - // path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", - // jenkins: true - // ) - // } + sh('find llvm-project/out/bin') + sh(''' + mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin + cp llvm-project/out/bin/llvm-ar \ + llvm-project/out/bin/llvm-cov \ + llvm-project/out/bin/llvm-dwp \ + llvm-project/out/bin/llvm-nm \ + llvm-project/out/bin/llvm-objcopy \ + llvm-project/out/bin/llvm-objdump \ + llvm-project/out/bin/llvm-profdata \ + llvm-project/out/bin/llvm-strip \ + llvm-project/out/bin/clang-cpp \ + llvm-project/out/bin/ld.lld \ + tar/clang+llvm-14.0.6-x86_64-linux/bin + ''') + tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'tar', archive: false) + script{ + context.archivePatterns( + patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], + path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", + jenkins: true + ) + } } } } diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake index a2a7fd9..96d54f1 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-x86-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for the second stage of a simple distribution # bootstrap build. -set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") @@ -23,7 +23,7 @@ set(LLVM_TOOLCHAIN_TOOLS CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS - # clang + clang lld - # ${LLVM_TOOLCHAIN_TOOLS} + ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") diff --git a/llvm/Distribution-x86.cmake b/llvm/Distribution-x86.cmake index 6642342..e2d3f16 100644 --- a/llvm/Distribution-x86.cmake +++ b/llvm/Distribution-x86.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for a simple distribution bootstrap build. #Enable LLVM projects and runtimes -set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") # Only build the native target in stage1 since it is a throwaway build. set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") From f4c833de9c2026cb9af8084fe32106a593dfe049 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 12:01:20 +0100 Subject: [PATCH 37/47] Add m1 mac --- Jenkinsfile | 53 +++++++++++++++++-- ...stage2.cmake => Distribution-stage2.cmake} | 2 +- ...tribution-x86.cmake => Distribution.cmake} | 21 ++------ 3 files changed, 54 insertions(+), 22 deletions(-) rename llvm/{Distribution-x86-stage2.cmake => Distribution-stage2.cmake} (93%) rename llvm/{Distribution-x86.cmake => Distribution.cmake} (74%) diff --git a/Jenkinsfile b/Jenkinsfile index 9f6b850..302a416 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,15 +41,13 @@ pipeline { sh(''' git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch cd llvm-project - git checkout llvmorg-14.0.6 mkdir build cd build cmake -GNinja ../llvm \ - -DLLVM_ENABLE_PROJECTS="clang;lld" \ -DCMAKE_INSTALL_PREFIX=../out/ \ - -C ../../llvm/Distribution-x86.cmake + -C ../../llvm/Distribution.cmake ninja stage2-install-distribution ''') sh('find llvm-project/out/bin') @@ -72,7 +70,54 @@ pipeline { context.archivePatterns( patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", - jenkins: true + jenkins: false + ) + } + } + } + stage('llvm aarch64 darwin') { + agent { + node('macos-arm64') + } + steps { + sh(''' + export ARCHFLAGS="-arch arm64" + + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + cd llvm-project + + mkdir build + cd build + + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -C ../../llvm/Distribution.cmake + ninja stage2-install-distribution + ''') + sh(''' + mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin + cp llvm-project/out/bin/llvm-ar \ + llvm-project/out/bin/llvm-cov \ + llvm-project/out/bin/llvm-dwp \ + llvm-project/out/bin/llvm-nm \ + llvm-project/out/bin/llvm-objcopy \ + llvm-project/out/bin/llvm-objdump \ + llvm-project/out/bin/llvm-profdata \ + llvm-project/out/bin/llvm-strip \ + llvm-project/out/bin/clang-cpp \ + llvm-project/out/bin/ld.lld \ + tar/clang+llvm-14.0.6-x86_64-linux/bin + ''') + tar(file: 'clang+llvm-14.0.6-arm64-apple-darwin.tar.gz', dir: 'tar', archive: false) + script{ + context.archivePatterns( + patterns: ['clang+llvm-14.0.6-arm64-apple-darwin.tar.gz'], + path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-arm64-apple-darwin.tar.gz", + jenkins: false ) } } diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-stage2.cmake similarity index 93% rename from llvm/Distribution-x86-stage2.cmake rename to llvm/Distribution-stage2.cmake index 96d54f1..fc9fe4d 100644 --- a/llvm/Distribution-x86-stage2.cmake +++ b/llvm/Distribution-stage2.cmake @@ -3,7 +3,7 @@ set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "") diff --git a/llvm/Distribution-x86.cmake b/llvm/Distribution.cmake similarity index 74% rename from llvm/Distribution-x86.cmake rename to llvm/Distribution.cmake index e2d3f16..e5a6f6f 100644 --- a/llvm/Distribution-x86.cmake +++ b/llvm/Distribution.cmake @@ -23,14 +23,6 @@ endif() # Expose stage2 targets through the stage1 build configuration. set(CLANG_BOOTSTRAP_TARGETS - check-all - check-llvm - check-clang - llvm-config - test-suite - test-depends - llvm-test-depends - clang-test-depends distribution install-distribution clang CACHE STRING "") @@ -38,12 +30,7 @@ set(CLANG_BOOTSTRAP_TARGETS # Setup the bootstrap build. set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") -if(STAGE2_CACHE_FILE) - set(CLANG_BOOTSTRAP_CMAKE_ARGS - -C ${STAGE2_CACHE_FILE} - CACHE STRING "") -else() - set(CLANG_BOOTSTRAP_CMAKE_ARGS - -C ${CMAKE_CURRENT_LIST_DIR}/Distribution-x86-stage2.cmake - CACHE STRING "") -endif() +set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/Distribution-stage2.cmake + CACHE STRING "") + From fcc8e73f00544552d8e35ef952eeb227280b07df Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 13:57:32 +0100 Subject: [PATCH 38/47] Test release --- Jenkinsfile | 133 ++++++++++++++++++++++++++++------------------------ 1 file changed, 71 insertions(+), 62 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 302a416..50239de 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,19 +38,31 @@ pipeline { } } steps { - sh(''' - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - cd llvm-project + // sh(''' + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + // cd llvm-project - mkdir build - cd build + // mkdir build + // cd build - cmake -GNinja ../llvm \ - -DCMAKE_INSTALL_PREFIX=../out/ \ - -C ../../llvm/Distribution.cmake - ninja stage2-install-distribution + // cmake -GNinja ../llvm \ + // -DCMAKE_INSTALL_PREFIX=../out/ \ + // -C ../../llvm/Distribution.cmake + // ninja stage2-install-distribution + // ''') + sh(''' + mkdir -p llvm-project/out/bin + echo "ABC" > llvm-project/out/bin/llvm-ar + echo "ABC" > llvm-project/out/bin/llvm-cov + echo "ABC" > llvm-project/out/bin/llvm-dwp + echo "ABC" > llvm-project/out/bin/llvm-nm + echo "ABC" > llvm-project/out/bin/llvm-objcopy + echo "ABC" > llvm-project/out/bin/llvm-objdump + echo "ABC" > llvm-project/out/bin/llvm-profdata + echo "ABC" > llvm-project/out/bin/llvm-strip + echo "ABC" > llvm-project/out/bin/clang-cpp + echo "ABC" > llvm-project/out/bin/ld.lld ''') - sh('find llvm-project/out/bin') sh(''' mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin cp llvm-project/out/bin/llvm-ar \ @@ -65,64 +77,61 @@ pipeline { llvm-project/out/bin/ld.lld \ tar/clang+llvm-14.0.6-x86_64-linux/bin ''') - tar(file: 'clang+llvm-14.0.6-x86_64-linux.tar.gz', dir: 'tar', archive: false) - script{ - context.archivePatterns( - patterns: ['clang+llvm-14.0.6-x86_64-linux.tar.gz'], - path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-x86_64-linux.tar.gz", - jenkins: false - ) - } + uploadDistribution("clang+llvm-14.0.6-x86_64-linux") } } - stage('llvm aarch64 darwin') { - agent { - node('macos-arm64') - } - steps { - sh(''' - export ARCHFLAGS="-arch arm64" + // stage('llvm aarch64 darwin') { + // agent { + // node('macos-arm64') + // } + // steps { + // sh(''' + // export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - cd llvm-project + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + // cd llvm-project - mkdir build - cd build + // mkdir build + // cd build - cmake -GNinja ../llvm \ - -DCMAKE_INSTALL_PREFIX=../out/ \ - -DCMAKE_OSX_ARCHITECTURES='arm64' \ - -DCMAKE_C_COMPILER=`which clang` \ - -DCMAKE_CXX_COMPILER=`which clang++` \ - -DCMAKE_BUILD_TYPE=Release \ - -C ../../llvm/Distribution.cmake - ninja stage2-install-distribution - ''') - sh(''' - mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin - cp llvm-project/out/bin/llvm-ar \ - llvm-project/out/bin/llvm-cov \ - llvm-project/out/bin/llvm-dwp \ - llvm-project/out/bin/llvm-nm \ - llvm-project/out/bin/llvm-objcopy \ - llvm-project/out/bin/llvm-objdump \ - llvm-project/out/bin/llvm-profdata \ - llvm-project/out/bin/llvm-strip \ - llvm-project/out/bin/clang-cpp \ - llvm-project/out/bin/ld.lld \ - tar/clang+llvm-14.0.6-x86_64-linux/bin - ''') - tar(file: 'clang+llvm-14.0.6-arm64-apple-darwin.tar.gz', dir: 'tar', archive: false) - script{ - context.archivePatterns( - patterns: ['clang+llvm-14.0.6-arm64-apple-darwin.tar.gz'], - path: "swift-toolchains/${context.gitDescribe()}/clang+llvm-14.0.6-arm64-apple-darwin.tar.gz", - jenkins: false - ) - } - } - } + // cmake -GNinja ../llvm \ + // -DCMAKE_INSTALL_PREFIX=../out/ \ + // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // -DCMAKE_C_COMPILER=`which clang` \ + // -DCMAKE_CXX_COMPILER=`which clang++` \ + // -DCMAKE_BUILD_TYPE=Release \ + // -C ../../llvm/Distribution.cmake + // ninja stage2-install-distribution + // ''') + // uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin") + // } + // } } } } } + +def uploadDistribution(name) { + sh(''' + mkdir -p tar/${name}/bin + cp llvm-project/out/bin/llvm-ar \ + llvm-project/out/bin/llvm-cov \ + llvm-project/out/bin/llvm-dwp \ + llvm-project/out/bin/llvm-nm \ + llvm-project/out/bin/llvm-objcopy \ + llvm-project/out/bin/llvm-objdump \ + llvm-project/out/bin/llvm-profdata \ + llvm-project/out/bin/llvm-strip \ + llvm-project/out/bin/clang-cpp \ + llvm-project/out/bin/ld.lld \ + tar/${name}/bin + ''') + tar(file: '${name}.tar.gz', dir: 'tar', archive: false) + script{ + context.archivePatterns( + patterns: ['${name}.tar.gz'], + path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", + jenkins: false + ) + } +} From fbf7c7c3dd4e450c870b163b2c266c026b873273 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 14:03:46 +0100 Subject: [PATCH 39/47] Fix --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 50239de..38c33b2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -77,7 +77,7 @@ pipeline { llvm-project/out/bin/ld.lld \ tar/clang+llvm-14.0.6-x86_64-linux/bin ''') - uploadDistribution("clang+llvm-14.0.6-x86_64-linux") + uploadDistribution("clang+llvm-14.0.6-x86_64-linux", context) } } // stage('llvm aarch64 darwin') { @@ -103,7 +103,7 @@ pipeline { // -C ../../llvm/Distribution.cmake // ninja stage2-install-distribution // ''') - // uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin") + // uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin", context) // } // } } @@ -111,7 +111,7 @@ pipeline { } } -def uploadDistribution(name) { +def uploadDistribution(name, context) { sh(''' mkdir -p tar/${name}/bin cp llvm-project/out/bin/llvm-ar \ From 1e2d722e012a42e9263c7044d99ae8ff3a57206d Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 14:13:42 +0100 Subject: [PATCH 40/47] Fix --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 38c33b2..c779ee8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -124,12 +124,12 @@ def uploadDistribution(name, context) { llvm-project/out/bin/llvm-strip \ llvm-project/out/bin/clang-cpp \ llvm-project/out/bin/ld.lld \ - tar/${name}/bin + tar/$name/bin ''') - tar(file: '${name}.tar.gz', dir: 'tar', archive: false) + tar(file: "${name}.tar.gz", dir: 'tar', archive: false) script{ context.archivePatterns( - patterns: ['${name}.tar.gz'], + patterns: ["${name}.tar.gz"], path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", jenkins: false ) From c669b667508e284213f13e336168a8fb9bb94624 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 14:17:33 +0100 Subject: [PATCH 41/47] Fix --- Jenkinsfile | 97 +++++++++++++++++++---------------------------------- 1 file changed, 35 insertions(+), 62 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c779ee8..1f62c36 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,81 +38,54 @@ pipeline { } } steps { - // sh(''' - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project + sh(''' + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + cd llvm-project - // mkdir build - // cd build + mkdir build + cd build - // cmake -GNinja ../llvm \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ - // -C ../../llvm/Distribution.cmake - // ninja stage2-install-distribution - // ''') - sh(''' - mkdir -p llvm-project/out/bin - echo "ABC" > llvm-project/out/bin/llvm-ar - echo "ABC" > llvm-project/out/bin/llvm-cov - echo "ABC" > llvm-project/out/bin/llvm-dwp - echo "ABC" > llvm-project/out/bin/llvm-nm - echo "ABC" > llvm-project/out/bin/llvm-objcopy - echo "ABC" > llvm-project/out/bin/llvm-objdump - echo "ABC" > llvm-project/out/bin/llvm-profdata - echo "ABC" > llvm-project/out/bin/llvm-strip - echo "ABC" > llvm-project/out/bin/clang-cpp - echo "ABC" > llvm-project/out/bin/ld.lld - ''') - sh(''' - mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin - cp llvm-project/out/bin/llvm-ar \ - llvm-project/out/bin/llvm-cov \ - llvm-project/out/bin/llvm-dwp \ - llvm-project/out/bin/llvm-nm \ - llvm-project/out/bin/llvm-objcopy \ - llvm-project/out/bin/llvm-objdump \ - llvm-project/out/bin/llvm-profdata \ - llvm-project/out/bin/llvm-strip \ - llvm-project/out/bin/clang-cpp \ - llvm-project/out/bin/ld.lld \ - tar/clang+llvm-14.0.6-x86_64-linux/bin + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -C ../../llvm/Distribution.cmake + ninja stage2-install-distribution ''') uploadDistribution("clang+llvm-14.0.6-x86_64-linux", context) } } - // stage('llvm aarch64 darwin') { - // agent { - // node('macos-arm64') - // } - // steps { - // sh(''' - // export ARCHFLAGS="-arch arm64" + stage('llvm aarch64 darwin') { + agent { + node('macos-arm64') + } + steps { + sh(''' + export ARCHFLAGS="-arch arm64" - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + cd llvm-project - // mkdir build - // cd build + mkdir build + cd build - // cmake -GNinja ../llvm \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ - // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // -DCMAKE_C_COMPILER=`which clang` \ - // -DCMAKE_CXX_COMPILER=`which clang++` \ - // -DCMAKE_BUILD_TYPE=Release \ - // -C ../../llvm/Distribution.cmake - // ninja stage2-install-distribution - // ''') - // uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin", context) - // } - // } + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -C ../../llvm/Distribution.cmake + ninja stage2-install-distribution + ''') + uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin", context) + } + } } } } } def uploadDistribution(name, context) { - sh(''' + sh(""" mkdir -p tar/${name}/bin cp llvm-project/out/bin/llvm-ar \ llvm-project/out/bin/llvm-cov \ @@ -124,8 +97,8 @@ def uploadDistribution(name, context) { llvm-project/out/bin/llvm-strip \ llvm-project/out/bin/clang-cpp \ llvm-project/out/bin/ld.lld \ - tar/$name/bin - ''') + tar/${name}/bin + """) tar(file: "${name}.tar.gz", dir: 'tar', archive: false) script{ context.archivePatterns( From 1e0b0a8df1d8ebad9b3ae96d8e32c3b4248e2cf8 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 14:18:47 +0100 Subject: [PATCH 42/47] Test --- Jenkinsfile | 91 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 59 insertions(+), 32 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1f62c36..c8c3186 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,47 +38,74 @@ pipeline { } } steps { - sh(''' - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - cd llvm-project + // sh(''' + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + // cd llvm-project - mkdir build - cd build + // mkdir build + // cd build - cmake -GNinja ../llvm \ - -DCMAKE_INSTALL_PREFIX=../out/ \ - -C ../../llvm/Distribution.cmake - ninja stage2-install-distribution + // cmake -GNinja ../llvm \ + // -DCMAKE_INSTALL_PREFIX=../out/ \ + // -C ../../llvm/Distribution.cmake + // ninja stage2-install-distribution + // ''') + sh(''' + mkdir -p llvm-project/out/bin + echo "ABC" > llvm-project/out/bin/llvm-ar + echo "ABC" > llvm-project/out/bin/llvm-cov + echo "ABC" > llvm-project/out/bin/llvm-dwp + echo "ABC" > llvm-project/out/bin/llvm-nm + echo "ABC" > llvm-project/out/bin/llvm-objcopy + echo "ABC" > llvm-project/out/bin/llvm-objdump + echo "ABC" > llvm-project/out/bin/llvm-profdata + echo "ABC" > llvm-project/out/bin/llvm-strip + echo "ABC" > llvm-project/out/bin/clang-cpp + echo "ABC" > llvm-project/out/bin/ld.lld + ''') + sh(''' + mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin + cp llvm-project/out/bin/llvm-ar \ + llvm-project/out/bin/llvm-cov \ + llvm-project/out/bin/llvm-dwp \ + llvm-project/out/bin/llvm-nm \ + llvm-project/out/bin/llvm-objcopy \ + llvm-project/out/bin/llvm-objdump \ + llvm-project/out/bin/llvm-profdata \ + llvm-project/out/bin/llvm-strip \ + llvm-project/out/bin/clang-cpp \ + llvm-project/out/bin/ld.lld \ + tar/clang+llvm-14.0.6-x86_64-linux/bin ''') uploadDistribution("clang+llvm-14.0.6-x86_64-linux", context) } } - stage('llvm aarch64 darwin') { - agent { - node('macos-arm64') - } - steps { - sh(''' - export ARCHFLAGS="-arch arm64" + // stage('llvm aarch64 darwin') { + // agent { + // node('macos-arm64') + // } + // steps { + // sh(''' + // export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - cd llvm-project + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + // cd llvm-project - mkdir build - cd build + // mkdir build + // cd build - cmake -GNinja ../llvm \ - -DCMAKE_INSTALL_PREFIX=../out/ \ - -DCMAKE_OSX_ARCHITECTURES='arm64' \ - -DCMAKE_C_COMPILER=`which clang` \ - -DCMAKE_CXX_COMPILER=`which clang++` \ - -DCMAKE_BUILD_TYPE=Release \ - -C ../../llvm/Distribution.cmake - ninja stage2-install-distribution - ''') - uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin", context) - } - } + // cmake -GNinja ../llvm \ + // -DCMAKE_INSTALL_PREFIX=../out/ \ + // -DCMAKE_OSX_ARCHITECTURES='arm64' \ + // -DCMAKE_C_COMPILER=`which clang` \ + // -DCMAKE_CXX_COMPILER=`which clang++` \ + // -DCMAKE_BUILD_TYPE=Release \ + // -C ../../llvm/Distribution.cmake + // ninja stage2-install-distribution + // ''') + // uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin", context) + // } + // } } } } From 25ae18d1df24903c3db5c9279f732f9eada7d8e8 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 14:25:05 +0100 Subject: [PATCH 43/47] Add x86 mac --- Jenkinsfile | 114 +++++++++++++++++++++++++--------------------------- 1 file changed, 54 insertions(+), 60 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c8c3186..d6da2e8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,74 +38,68 @@ pipeline { } } steps { - // sh(''' - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project + sh(''' + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + cd llvm-project - // mkdir build - // cd build + mkdir build + cd build - // cmake -GNinja ../llvm \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ - // -C ../../llvm/Distribution.cmake - // ninja stage2-install-distribution - // ''') - sh(''' - mkdir -p llvm-project/out/bin - echo "ABC" > llvm-project/out/bin/llvm-ar - echo "ABC" > llvm-project/out/bin/llvm-cov - echo "ABC" > llvm-project/out/bin/llvm-dwp - echo "ABC" > llvm-project/out/bin/llvm-nm - echo "ABC" > llvm-project/out/bin/llvm-objcopy - echo "ABC" > llvm-project/out/bin/llvm-objdump - echo "ABC" > llvm-project/out/bin/llvm-profdata - echo "ABC" > llvm-project/out/bin/llvm-strip - echo "ABC" > llvm-project/out/bin/clang-cpp - echo "ABC" > llvm-project/out/bin/ld.lld - ''') - sh(''' - mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin - cp llvm-project/out/bin/llvm-ar \ - llvm-project/out/bin/llvm-cov \ - llvm-project/out/bin/llvm-dwp \ - llvm-project/out/bin/llvm-nm \ - llvm-project/out/bin/llvm-objcopy \ - llvm-project/out/bin/llvm-objdump \ - llvm-project/out/bin/llvm-profdata \ - llvm-project/out/bin/llvm-strip \ - llvm-project/out/bin/clang-cpp \ - llvm-project/out/bin/ld.lld \ - tar/clang+llvm-14.0.6-x86_64-linux/bin + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -C ../../llvm/Distribution.cmake + ninja stage2-install-distribution ''') uploadDistribution("clang+llvm-14.0.6-x86_64-linux", context) } } - // stage('llvm aarch64 darwin') { - // agent { - // node('macos-arm64') - // } - // steps { - // sh(''' - // export ARCHFLAGS="-arch arm64" - - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project + stage('llvm aarch64 darwin') { + agent { + node('macos-arm64') + } + steps { + sh(''' + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + cd llvm-project - // mkdir build - // cd build + mkdir build + cd build - // cmake -GNinja ../llvm \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ - // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // -DCMAKE_C_COMPILER=`which clang` \ - // -DCMAKE_CXX_COMPILER=`which clang++` \ - // -DCMAKE_BUILD_TYPE=Release \ - // -C ../../llvm/Distribution.cmake - // ninja stage2-install-distribution - // ''') - // uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin", context) - // } - // } + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -C ../../llvm/Distribution.cmake + ninja stage2-install-distribution + ''') + uploadDistribution("clang+llvm-14.0.6-arm64-apple-darwin", context) + } + } + stage('llvm x86_64 darwin') { + agent { + node('macos') + } + steps { + sh(''' + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + cd llvm-project + mkdir build + cd build + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_OSX_ARCHITECTURES='x86_64' \ + -DLLVM_ENABLE_RUNTIMES='compiler-rt;libcxx;libcxxabi' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -C ../../llvm/Distribution.cmake + ninja stage2-install-distribution + ''') + uploadDistribution("clang+llvm-14.0.6-x86_64-apple-darwin", context) + } + } } } } From 3ff6ed1bcd9aee8c58a3a57b74c510eb29be14ca Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 23 Feb 2023 09:07:12 +0100 Subject: [PATCH 44/47] Archive toolchains on jenkins --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d6da2e8..95642c6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -120,7 +120,7 @@ def uploadDistribution(name, context) { llvm-project/out/bin/ld.lld \ tar/${name}/bin """) - tar(file: "${name}.tar.gz", dir: 'tar', archive: false) + tar(file: "${name}.tar.gz", dir: 'tar', archive: true) script{ context.archivePatterns( patterns: ["${name}.tar.gz"], From d86f9f257de208c54aebc436275b109714d3f02e Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 24 Feb 2023 09:03:17 +0100 Subject: [PATCH 45/47] Enable more components --- llvm/Distribution-stage2.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/llvm/Distribution-stage2.cmake b/llvm/Distribution-stage2.cmake index fc9fe4d..cbf28eb 100644 --- a/llvm/Distribution-stage2.cmake +++ b/llvm/Distribution-stage2.cmake @@ -2,6 +2,9 @@ # bootstrap build. set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") + +set(COMPILER_RT_BUILD_BUILTINS ON CACHE BOOL "") set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") @@ -20,10 +23,15 @@ set(LLVM_TOOLCHAIN_TOOLS llvm-objdump llvm-profdata llvm-strip + llvm-symbolizer CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS clang lld + builtins + runtimes + clang-resource-headers + clang-tidy ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") From 6d2bc1a771357e531f1fad2d070c435e20a2cdda Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 24 Feb 2023 09:13:28 +0100 Subject: [PATCH 46/47] Fix --- Jenkinsfile | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 95642c6..a1ac56d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -107,18 +107,8 @@ pipeline { def uploadDistribution(name, context) { sh(""" - mkdir -p tar/${name}/bin - cp llvm-project/out/bin/llvm-ar \ - llvm-project/out/bin/llvm-cov \ - llvm-project/out/bin/llvm-dwp \ - llvm-project/out/bin/llvm-nm \ - llvm-project/out/bin/llvm-objcopy \ - llvm-project/out/bin/llvm-objdump \ - llvm-project/out/bin/llvm-profdata \ - llvm-project/out/bin/llvm-strip \ - llvm-project/out/bin/clang-cpp \ - llvm-project/out/bin/ld.lld \ - tar/${name}/bin + mkdir -p tar/${name}/ + cp -rH llvm-project/out/* tar/${name}/ """) tar(file: "${name}.tar.gz", dir: 'tar', archive: true) script{ From 7bddbc5cdf7798ad9b5db4c9af52b28c7180bbb1 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 24 Feb 2023 10:13:05 +0100 Subject: [PATCH 47/47] Fix: enable clang-tools-extra project --- llvm/Distribution-stage2.cmake | 2 +- llvm/Distribution.cmake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/Distribution-stage2.cmake b/llvm/Distribution-stage2.cmake index cbf28eb..f661665 100644 --- a/llvm/Distribution-stage2.cmake +++ b/llvm/Distribution-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for the second stage of a simple distribution # bootstrap build. -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") set(COMPILER_RT_BUILD_BUILTINS ON CACHE BOOL "") diff --git a/llvm/Distribution.cmake b/llvm/Distribution.cmake index e5a6f6f..fdc2f0c 100644 --- a/llvm/Distribution.cmake +++ b/llvm/Distribution.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for a simple distribution bootstrap build. #Enable LLVM projects and runtimes -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") # Only build the native target in stage1 since it is a throwaway build. set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "")