From 3e86c733fd78cc05b9ae0634308cc1b8cda909fe Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 16:50:33 +0100 Subject: [PATCH 01/65] Test m1 mac --- Dockerfile.llvm | 14 +++ Jenkinsfile | 146 +++++++++++++++++++++++++++++ llvm/Apple-stage1.cmake | 60 ++++++++++++ llvm/Apple-stage2-ThinLTO.cmake | 6 ++ llvm/Apple-stage2.cmake | 73 +++++++++++++++ llvm/Distribution-x86-stage2.cmake | 30 ++++++ llvm/Distribution-x86.cmake | 50 ++++++++++ 7 files changed, 379 insertions(+) create mode 100644 Dockerfile.llvm create mode 100644 Jenkinsfile create mode 100644 llvm/Apple-stage1.cmake create mode 100644 llvm/Apple-stage2-ThinLTO.cmake create mode 100644 llvm/Apple-stage2.cmake create mode 100644 llvm/Distribution-x86-stage2.cmake create mode 100644 llvm/Distribution-x86.cmake diff --git a/Dockerfile.llvm b/Dockerfile.llvm new file mode 100644 index 00000000..15c5b3c4 --- /dev/null +++ b/Dockerfile.llvm @@ -0,0 +1,14 @@ +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 \ + git diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..74e941ba --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,146 @@ +#!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 { + 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/Apple-stage1.cmake + ninja stage2-install-distribution + ''') + sh('find llvm-project/out/bin') + // 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 { + // 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 \ + // -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 + // ) + // } + // } + // } + } + } + } +} diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake new file mode 100644 index 00000000..8a4fe6df --- /dev/null +++ b/llvm/Apple-stage1.cmake @@ -0,0 +1,60 @@ +# This file sets up a CMakeCache for Apple-style bootstrap builds. It can be +# used on any Darwin system to approximate Apple Clang builds. + +if($ENV{DT_TOOLCHAIN_DIR}) + set(CMAKE_INSTALL_PREFIX $ENV{DT_TOOLCHAIN_DIR}/usr/) +else() + set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) +endif() + +set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") +set(CLANG_VENDOR Apple CACHE STRING "") +set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +set(CLANG_SPAWN_CC1 ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_PASSTHROUGH + CMAKE_OSX_ARCHITECTURES + CACHE STRING "") + +# Disabling embedded darwin compiler-rt on stage1 builds is required because we +# don't build stage1 to support arm code generation. +set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") +set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") +set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") + +set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") + +set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") +set(LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS ON CACHE BOOL "") + +set(CLANG_BOOTSTRAP_TARGETS + generate-order-file + check-all + check-llvm + check-clang + llvm-config + test-suite + test-depends + llvm-test-depends + clang-test-depends + distribution + install-distribution + install-xcode-toolchain + install-distribution-toolchain + clang CACHE STRING "") + +#bootstrap +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake + CACHE STRING "") diff --git a/llvm/Apple-stage2-ThinLTO.cmake b/llvm/Apple-stage2-ThinLTO.cmake new file mode 100644 index 00000000..54e54e30 --- /dev/null +++ b/llvm/Apple-stage2-ThinLTO.cmake @@ -0,0 +1,6 @@ +# This file sets up a CMakeCache for Apple-style stage2 ThinLTO bootstrap. It is +# specified by the stage1 build. + + +set(LLVM_ENABLE_LTO THIN CACHE BOOL "") +include(${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake new file mode 100644 index 00000000..3ab7520a --- /dev/null +++ b/llvm/Apple-stage2.cmake @@ -0,0 +1,73 @@ +# This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is +# specified by the stage1 build. + +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(PACKAGE_VENDOR Apple CACHE STRING "") +set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") +set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(LLVM_ENABLE_MODULES ON CACHE BOOL "") +set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +set(CLANG_SPAWN_CC1 ON CACHE BOOL "") +set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") + +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") +set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") + +set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") + +# Make unit tests (if present) part of the ALL target +set(LLVM_BUILD_TESTS ON CACHE BOOL "") + +set(LLVM_ENABLE_LTO ON CACHE BOOL "") +set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +endif() +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") + +set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") +set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") +set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") +set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") +set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") + +# Generating Xcode toolchains is useful for developers wanting to build and use +# clang without installing over existing tools. +set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") + +# 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_BUILD_UTILS ON CACHE BOOL "") +set(LLVM_INSTALL_UTILS ON CACHE BOOL "") + +set(LLVM_DISTRIBUTION_COMPONENTS + clang + lld + ${LLVM_TOOLCHAIN_TOOLS} + CACHE STRING "") + +# test args + +set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake new file mode 100644 index 00000000..af9b6e18 --- /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 00000000..634320bf --- /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 f44abedef8133161b94ef0ab2cae8da84e540123 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 17:04:40 +0100 Subject: [PATCH 02/65] Fix --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 74e941ba..ceec1fed 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -37,6 +37,8 @@ pipeline { } steps { sh(''' + brew install ninja + git clone https://github.com/llvm/llvm-project cd llvm-project git checkout llvmorg-14.0.6 From 6a663875e4baf17fdc2d5be60cf09d26364705f9 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 17:24:08 +0100 Subject: [PATCH 03/65] Test --- llvm/Apple-stage2.cmake | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 3ab7520a..a2eb42ef 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD X86 ARM AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") @@ -49,23 +49,35 @@ set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") # 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 + llvm-cxxfilt + llvm-config CACHE STRING "") set(LLVM_BUILD_UTILS ON CACHE BOOL "") set(LLVM_INSTALL_UTILS ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_UTILITIES + FileCheck + yaml2obj + not + count + CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS clang - lld + LTO + clang-format + clang-resource-headers + cxx-headers + Remarks ${LLVM_TOOLCHAIN_TOOLS} + ${LLVM_TOOLCHAIN_UTILITIES} CACHE STRING "") # test args From e52c8f6a880bc0ebb1c5f54bf48a4c37fd6b59b8 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 17:42:17 +0100 Subject: [PATCH 04/65] Test --- Jenkinsfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ceec1fed..74e941ba 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -37,8 +37,6 @@ pipeline { } steps { sh(''' - brew install ninja - git clone https://github.com/llvm/llvm-project cd llvm-project git checkout llvmorg-14.0.6 From 0461e296372697993fd3a21f902a16609e9970b4 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 18:14:01 +0100 Subject: [PATCH 05/65] Try default --- Jenkinsfile | 91 ++--------------------------------------------------- 1 file changed, 2 insertions(+), 89 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 74e941ba..ef861e94 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -46,100 +46,13 @@ pipeline { cmake -GNinja ../llvm \ -DCMAKE_INSTALL_PREFIX=../out/ \ - -C ../../llvm/Apple-stage1.cmake + -C ../clang/cmake/caches/Apple-stage1.cmake + ninja help ninja stage2-install-distribution ''') sh('find llvm-project/out/bin') - // 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 { - // 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 \ - // -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 056c3725a39c0bbc4b12d671803d4142d5dc99c6 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 18:58:58 +0100 Subject: [PATCH 06/65] Test --- Jenkinsfile | 4 ++++ llvm/Apple-stage1.cmake | 2 +- llvm/Apple-stage2.cmake | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ef861e94..d065f804 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -46,6 +46,10 @@ pipeline { cmake -GNinja ../llvm \ -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_OSX_ARCHITECTURES=arm64 \ + -DLLVM_HOST_TRIPLE=aarch64-apple-darwin \ + -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-apple-darwin \ + -DLLVM_DISTRIBUTION_COMPONENTS=clang \ -C ../clang/cmake/caches/Apple-stage1.cmake ninja help ninja stage2-install-distribution diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index 8a4fe6df..ab1dcbe9 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,7 +7,7 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() -set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index a2eb42ef..68030e7b 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_TARGETS_TO_BUILD X86 ARM AArch64 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") From ced2c007226a6e00f1b1b7ef458dd6db53a904c2 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 18:59:26 +0100 Subject: [PATCH 07/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d065f804..8c732b82 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -50,7 +50,7 @@ pipeline { -DLLVM_HOST_TRIPLE=aarch64-apple-darwin \ -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-apple-darwin \ -DLLVM_DISTRIBUTION_COMPONENTS=clang \ - -C ../clang/cmake/caches/Apple-stage1.cmake + -C ../../Apple-stage1.cmake ninja help ninja stage2-install-distribution ''') From 9e788824f2637ff45d96ef69c973873461277e33 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 16 Feb 2023 19:18:04 +0100 Subject: [PATCH 08/65] Try fix --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 8c732b82..8c9f2f0f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -37,6 +37,8 @@ pipeline { } steps { sh(''' + export ARCHFLAGS="-arch arm64" + git clone https://github.com/llvm/llvm-project cd llvm-project git checkout llvmorg-14.0.6 From 52ff6407ee98778df7f081c2ed95de5ede6af5fd Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 09:41:03 +0100 Subject: [PATCH 09/65] Test --- Jenkinsfile | 14 ++++++++++---- llvm/Apple-stage1.cmake | 2 +- llvm/Apple-stage2.cmake | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8c9f2f0f..9fca67b3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,10 +48,16 @@ pipeline { cmake -GNinja ../llvm \ -DCMAKE_INSTALL_PREFIX=../out/ \ - -DCMAKE_OSX_ARCHITECTURES=arm64 \ - -DLLVM_HOST_TRIPLE=aarch64-apple-darwin \ - -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-apple-darwin \ - -DLLVM_DISTRIBUTION_COMPONENTS=clang \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=../out \ + -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' \ -C ../../Apple-stage1.cmake ninja help ninja stage2-install-distribution diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index ab1dcbe9..8a4fe6df 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,7 +7,7 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() -set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 68030e7b..a2eb42ef 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD X86 ARM AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") From 706c0d526b891ec4a21f7d011f4ab631aae2c30b Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 09:45:31 +0100 Subject: [PATCH 10/65] Single branch --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9fca67b3..178b666d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - 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 f720a7bb4463b575625ff9838f1e713dab1742b1 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 09:57:00 +0100 Subject: [PATCH 11/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 178b666d..980b2682 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -58,7 +58,7 @@ pipeline { -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ -DLLVM_ENABLE_PROJECTS='clang' \ -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ - -C ../../Apple-stage1.cmake + -C ../clang/cmake/caches/Apple-stage1.cmake ninja help ninja stage2-install-distribution ''') From b19f937c9c90b19fa9dcd16e8911a3ac8b0bd676 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 10:13:13 +0100 Subject: [PATCH 12/65] Fix --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 980b2682..af8d9bfe 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,6 @@ pipeline { 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 @@ -58,7 +57,7 @@ pipeline { -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin' \ -DLLVM_ENABLE_PROJECTS='clang' \ -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ - -C ../clang/cmake/caches/Apple-stage1.cmake + -C ../../llvm/Apple-stage1.cmake ninja help ninja stage2-install-distribution ''') From 69118c00814d7afefa2fd5b1973c2f430f53f1c5 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 10:52:25 +0100 Subject: [PATCH 13/65] Test --- Jenkinsfile | 7 ++----- llvm/Apple-stage1.cmake | 2 +- llvm/Apple-stage2.cmake | 16 ++++++++-------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index af8d9bfe..0662e185 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,16 +52,13 @@ pipeline { -DCMAKE_CXX_COMPILER=`which clang++` \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=../out \ - -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' \ -C ../../llvm/Apple-stage1.cmake ninja help - ninja stage2-install-distribution + ninja stage2-install-distribution || true ''') - sh('find llvm-project/out/bin') + sh('find llvm-project/out/') } } } diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index 8a4fe6df..ab1dcbe9 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,7 +7,7 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() -set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index a2eb42ef..62c4b773 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_TARGETS_TO_BUILD X86 ARM AArch64 CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") @@ -71,13 +71,13 @@ set(LLVM_TOOLCHAIN_UTILITIES set(LLVM_DISTRIBUTION_COMPONENTS clang - LTO - clang-format - clang-resource-headers - cxx-headers - Remarks - ${LLVM_TOOLCHAIN_TOOLS} - ${LLVM_TOOLCHAIN_UTILITIES} + # LTO + # clang-format + # clang-resource-headers + # cxx-headers + # Remarks + # ${LLVM_TOOLCHAIN_TOOLS} + # ${LLVM_TOOLCHAIN_UTILITIES} CACHE STRING "") # test args From 9cfc6b00c247863d9bb1454b2b7f2717b6438706 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 11:15:14 +0100 Subject: [PATCH 14/65] Test --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 0662e185..f3a84f93 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -57,6 +57,7 @@ pipeline { -C ../../llvm/Apple-stage1.cmake ninja help ninja stage2-install-distribution || true + find . ''') sh('find llvm-project/out/') } From 56c9941dde3ea78dcc0c5cd5cdd6d385decc1919 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 11:30:08 +0100 Subject: [PATCH 15/65] Test --- llvm/Apple-stage2.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 62c4b773..12a6a888 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -22,7 +22,7 @@ set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") -set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") +# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") # Make unit tests (if present) part of the ALL target set(LLVM_BUILD_TESTS ON CACHE BOOL "") @@ -44,7 +44,7 @@ set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") # Generating Xcode toolchains is useful for developers wanting to build and use # clang without installing over existing tools. -set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") +# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") # setup toolchain set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") From a40c20f1ce56ac748ed6eeb5fe64c54efb574b09 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 13:03:40 +0100 Subject: [PATCH 16/65] Try 15.0.0 --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index f3a84f93..64916ec6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project mkdir build From 97e4ccdd0a07d995b36f0d88aaf1a04d4a830f5d Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 13:57:13 +0100 Subject: [PATCH 17/65] Build all needed components --- llvm/Apple-stage2.cmake | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 12a6a888..461ac22a 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,6 +1,8 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") + set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") @@ -49,35 +51,20 @@ set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") # 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-cxxfilt - llvm-config - CACHE STRING "") - -set(LLVM_BUILD_UTILS ON CACHE BOOL "") -set(LLVM_INSTALL_UTILS ON CACHE BOOL "") -set(LLVM_TOOLCHAIN_UTILITIES - FileCheck - yaml2obj - not - count + llvm-objcopy + llvm-objdump + llvm-profdata + llvm-strip CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS clang - # LTO - # clang-format - # clang-resource-headers - # cxx-headers - # Remarks - # ${LLVM_TOOLCHAIN_TOOLS} - # ${LLVM_TOOLCHAIN_UTILITIES} + lld + ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") # test args From 1435d952b2e0f4f24d014323273b23dac467f85d Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 14:20:28 +0100 Subject: [PATCH 18/65] Disable lld --- llvm/Apple-stage2.cmake | 3 --- 1 file changed, 3 deletions(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 461ac22a..ede37ca1 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,8 +1,6 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") - set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") @@ -63,7 +61,6 @@ set(LLVM_TOOLCHAIN_TOOLS set(LLVM_DISTRIBUTION_COMPONENTS clang - lld ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") From 9168f9236ecd259fd368187f78f25d3673caaa5d Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 15:46:55 +0100 Subject: [PATCH 19/65] Try enable lld --- llvm/Apple-stage1.cmake | 2 ++ llvm/Apple-stage2.cmake | 3 +++ 2 files changed, 5 insertions(+) diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index ab1dcbe9..6af2ef34 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,6 +7,8 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") + set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index ede37ca1..47b19e5d 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,6 +1,8 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") + set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") @@ -61,6 +63,7 @@ set(LLVM_TOOLCHAIN_TOOLS set(LLVM_DISTRIBUTION_COMPONENTS clang + lld ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") From 22fcbb9516893e5c66dcc19fdf7fce4230ac6236 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 17:30:57 +0100 Subject: [PATCH 20/65] Build only lld --- Jenkinsfile | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 64916ec6..4512c5f3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,6 +36,29 @@ pipeline { node('macos-arm64') } steps { + // sh(''' + // export ARCHFLAGS="-arch arm64" + + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --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 \ + // -DCMAKE_INSTALL_PREFIX=../out \ + // -DLLVM_ENABLE_PROJECTS='clang' \ + // -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ + // -C ../../llvm/Apple-stage1.cmake + // ninja help + // ninja stage2-install-distribution || true + // find . + // ''') sh(''' export ARCHFLAGS="-arch arm64" @@ -45,18 +68,16 @@ pipeline { mkdir build cd build - cmake -GNinja ../llvm \ - -DCMAKE_INSTALL_PREFIX=../out/ \ + cmake -G Ninja ../llvm \ + -DLLVM_ENABLE_PROJECTS="lld" \ + -DLLVM_DISTRIBUTION_COMPONENTS="lld" \ + -DLLVM_TARGETS_TO_BUILD="AArch64" \ -DCMAKE_OSX_ARCHITECTURES='arm64' \ - -DCMAKE_C_COMPILER=`which clang` \ - -DCMAKE_CXX_COMPILER=`which clang++` \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=../out \ - -DLLVM_ENABLE_PROJECTS='clang' \ - -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ - -C ../../llvm/Apple-stage1.cmake + -DCMAKE_INSTALL_PREFIX=../out + ninja help - ninja stage2-install-distribution || true + ninja lld find . ''') sh('find llvm-project/out/') From 8205a31f1e711aed0b8dfcd05609f973bc067075 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 18:14:17 +0100 Subject: [PATCH 21/65] Build only stage2 lld --- Jenkinsfile | 56 +++++++++++----------- llvm/Apple-stage1.cmake | 2 +- llvm/Apple-stage2.cmake | 101 ++++++++++++++++++++-------------------- 3 files changed, 78 insertions(+), 81 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4512c5f3..44ecab83 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,6 +36,25 @@ pipeline { node('macos-arm64') } steps { + sh(''' + export ARCHFLAGS="-arch arm64" + + git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch + cd llvm-project + + mkdir build + cd build + + cmake -GNinja ../llvm \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -C ../../llvm/Apple-stage1.cmake + ninja help + ninja stage2-distribution || true + find . + ''') // sh(''' // export ARCHFLAGS="-arch arm64" @@ -45,41 +64,18 @@ pipeline { // mkdir build // cd build - // cmake -GNinja ../llvm \ - // -DCMAKE_INSTALL_PREFIX=../out/ \ + // cmake -G Ninja ../llvm \ + // -DLLVM_ENABLE_PROJECTS="lld" \ + // -DLLVM_DISTRIBUTION_COMPONENTS="lld" \ + // -DLLVM_TARGETS_TO_BUILD="AArch64" \ // -DCMAKE_OSX_ARCHITECTURES='arm64' \ - // -DCMAKE_C_COMPILER=`which clang` \ - // -DCMAKE_CXX_COMPILER=`which clang++` \ // -DCMAKE_BUILD_TYPE=Release \ - // -DCMAKE_INSTALL_PREFIX=../out \ - // -DLLVM_ENABLE_PROJECTS='clang' \ - // -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ - // -C ../../llvm/Apple-stage1.cmake + // -DCMAKE_INSTALL_PREFIX=../out + // ninja help - // ninja stage2-install-distribution || true + // ninja lld // find . // ''') - sh(''' - export ARCHFLAGS="-arch arm64" - - git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch - cd llvm-project - - mkdir build - cd build - - cmake -G Ninja ../llvm \ - -DLLVM_ENABLE_PROJECTS="lld" \ - -DLLVM_DISTRIBUTION_COMPONENTS="lld" \ - -DLLVM_TARGETS_TO_BUILD="AArch64" \ - -DCMAKE_OSX_ARCHITECTURES='arm64' \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=../out - - ninja help - ninja lld - find . - ''') sh('find llvm-project/out/') } } diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index 6af2ef34..0824b106 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,7 +7,7 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 47b19e5d..66b2d024 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,72 +1,73 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") -set(PACKAGE_VENDOR Apple CACHE STRING "") -set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") -set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") -set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") -set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") -set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") -set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") -set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") -set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") -set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") -set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") -set(LLVM_ENABLE_MODULES ON CACHE BOOL "") -set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") -set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") -set(CLANG_SPAWN_CC1 ON CACHE BOOL "") -set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(CMAKE_OSX_ARCHITECTURES arm64 CACHE STRING "") +# set(PACKAGE_VENDOR Apple CACHE STRING "") +# set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") +# set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +# set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +# set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") +# set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") +# set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") +# set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") +# set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +# set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") +# set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +# set(LLVM_ENABLE_MODULES ON CACHE BOOL "") +# set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") +# set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +# set(CLANG_SPAWN_CC1 ON CACHE BOOL "") +# set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") -set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") -set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") +# set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") +# set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") -# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") +# # set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") -# Make unit tests (if present) part of the ALL target -set(LLVM_BUILD_TESTS ON CACHE BOOL "") +# # Make unit tests (if present) part of the ALL target +# set(LLVM_BUILD_TESTS ON CACHE BOOL "") -set(LLVM_ENABLE_LTO ON CACHE BOOL "") -set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") -endif() -set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") +# set(LLVM_ENABLE_LTO ON CACHE BOOL "") +# set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +# set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +# if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") +# set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +# set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +# endif() +set(CMAKE_BUILD_TYPE Release CACHE STRING "") -set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") -set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") -set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") -set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") -set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") +# set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") +# set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") +# set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") +# set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") +# set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") # Generating Xcode toolchains is useful for developers wanting to build and use # clang without installing over existing tools. # set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") # 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_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 + # clang lld - ${LLVM_TOOLCHAIN_TOOLS} + # ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") # test args -set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") +# set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") From 96676d3fa2b4ff310e21cb4e81ae48a8413d7d29 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 18:26:45 +0100 Subject: [PATCH 22/65] Try with clang --- llvm/Apple-stage2.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 66b2d024..b856c10c 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,7 +1,7 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CMAKE_OSX_ARCHITECTURES arm64 CACHE STRING "") From 19724685037d6f9155644d5b536577edb80b28ce Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Fri, 17 Feb 2023 18:27:15 +0100 Subject: [PATCH 23/65] Fix --- llvm/Apple-stage2.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index b856c10c..f548512b 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -63,7 +63,7 @@ set(CMAKE_BUILD_TYPE Release CACHE STRING "") # CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS - # clang + clang lld # ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") From ea977d8433306e6a2e58194eb9875a7a448c71c8 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 08:20:09 +0100 Subject: [PATCH 24/65] Try 15 --- Jenkinsfile | 2 + llvm/Apple-stage1.cmake | 4 +- llvm/Apple-stage2.cmake | 114 ++++++++++++++++++++++------------------ 3 files changed, 67 insertions(+), 53 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 44ecab83..a2dab87f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,6 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project + git checkout 61ace8f78b1c52fd63fc8c2d800f08d7ddd87b0d mkdir build cd build @@ -50,6 +51,7 @@ pipeline { -DCMAKE_C_COMPILER=`which clang` \ -DCMAKE_CXX_COMPILER=`which clang++` \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ -C ../../llvm/Apple-stage1.cmake ninja help ninja stage2-distribution || true diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index 0824b106..f47b4538 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,8 +7,6 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() -set(LLVM_ENABLE_PROJECTS "lld" CACHE STRING "") - set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") @@ -59,4 +57,4 @@ set(CLANG_BOOTSTRAP_TARGETS set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") set(CLANG_BOOTSTRAP_CMAKE_ARGS -C ${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake - CACHE STRING "") + CACHE STRING "") \ No newline at end of file diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index f548512b..855c735d 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,73 +1,87 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") -set(CMAKE_OSX_ARCHITECTURES arm64 CACHE STRING "") -# set(PACKAGE_VENDOR Apple CACHE STRING "") -# set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") -# set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") -# set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") -# set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") -# set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") -# set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") -# set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") -# set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") -# set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") -# set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") -# set(LLVM_ENABLE_MODULES ON CACHE BOOL "") -# set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") -# set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") -# set(CLANG_SPAWN_CC1 ON CACHE BOOL "") -# set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(PACKAGE_VENDOR Apple CACHE STRING "") +set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") +set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(LLVM_ENABLE_MODULES ON CACHE BOOL "") +set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +set(CLANG_SPAWN_CC1 ON CACHE BOOL "") +set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") -# set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") -# set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") +set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") -# # set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") +# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") -# # Make unit tests (if present) part of the ALL target -# set(LLVM_BUILD_TESTS ON CACHE BOOL "") +# Make unit tests (if present) part of the ALL target +set(LLVM_BUILD_TESTS ON CACHE BOOL "") -# set(LLVM_ENABLE_LTO ON CACHE BOOL "") -# set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -# set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -# if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") -# set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") -# set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") -# endif() -set(CMAKE_BUILD_TYPE Release CACHE STRING "") +set(LLVM_ENABLE_LTO ON CACHE BOOL "") +set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +endif() +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") -# set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") -# set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") -# set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") -# set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") -# set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") +set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") +set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") +set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") +set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") +set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") # Generating Xcode toolchains is useful for developers wanting to build and use # clang without installing over existing tools. # set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") # 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_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_TOOLS + dsymutil + llvm-cov + llvm-dwarfdump + llvm-profdata + llvm-objdump + llvm-nm + llvm-size + llvm-cxxfilt + llvm-config + CACHE STRING "") + +set(LLVM_BUILD_UTILS ON CACHE BOOL "") +set(LLVM_INSTALL_UTILS ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_UTILITIES + FileCheck + yaml2obj + not + count + CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS clang - lld + # LTO + # clang-format + # clang-resource-headers + # cxx-headers + # Remarks # ${LLVM_TOOLCHAIN_TOOLS} + # ${LLVM_TOOLCHAIN_UTILITIES} CACHE STRING "") # test args -# set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") +set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") \ No newline at end of file From 0b24986674c3294b43a6e453add4877a75397813 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 09:15:19 +0100 Subject: [PATCH 25/65] Fix --- Jenkinsfile | 5 ++++- llvm/Apple-stage2.cmake | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a2dab87f..45d8686a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,10 +48,13 @@ pipeline { 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 \ - -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_INSTALL_PREFIX=../out \ + -DLLVM_ENABLE_PROJECTS='clang' \ + -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ -C ../../llvm/Apple-stage1.cmake ninja help ninja stage2-distribution || true diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 855c735d..7709e747 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,8 +1,6 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. -set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") - set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") From 1fd80c2d0f689671f495052b2ef5f1639ee73190 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 09:40:10 +0100 Subject: [PATCH 26/65] Try older --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 45d8686a..0b81c633 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 61ace8f78b1c52fd63fc8c2d800f08d7ddd87b0d + git checkout 349fee08d53734ea6530a56b931afdf026b5528c mkdir build cd build From 274b02dd569df534d47a7e54f0d1d8aae5c39faa Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 10:14:06 +0100 Subject: [PATCH 27/65] Try older --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0b81c633..2911de29 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 349fee08d53734ea6530a56b931afdf026b5528c + git checkout 93d1a623cecb6f732db7900baf230a13e6ac6c6a mkdir build cd build From ca4ac5d31a5208bb9f13772f549461c5a4c4b106 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 10:42:24 +0100 Subject: [PATCH 28/65] Try 14.0.0-rc1 --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2911de29..b5f3f0bd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,9 +39,8 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.0-rc1 --single-branch cd llvm-project - git checkout 93d1a623cecb6f732db7900baf230a13e6ac6c6a mkdir build cd build From 3b942c2be038f9b565f410693ddfafbbe6209665 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 11:22:18 +0100 Subject: [PATCH 29/65] Try merge base --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b5f3f0bd..4484dc1a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,8 +39,9 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.0-rc1 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project + git checkout db01b123d012df2f0e6acf7e90bf4ba63382587c mkdir build cd build From 0fa9c0eee7827c04428e1fe41de42d87467113c7 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 11:52:10 +0100 Subject: [PATCH 30/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4484dc1a..d2f5783a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout db01b123d012df2f0e6acf7e90bf4ba63382587c + git checkout 2724c153f92909523e225d9231ad90818795f7a2 mkdir build cd build From 0c9250239de61a3910f50e03b91706e971100380 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 12:22:43 +0100 Subject: [PATCH 31/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d2f5783a..8b948be3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 2724c153f92909523e225d9231ad90818795f7a2 + git checkout 13b58f9710564b7abff1b62dc87e48de70df7f7c mkdir build cd build From 208c98d81e3e9f3de00cc0b3d5d8f8c1b924505b Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 12:51:40 +0100 Subject: [PATCH 32/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8b948be3..c1974eb2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 13b58f9710564b7abff1b62dc87e48de70df7f7c + git checkout d97a4dfea6c2781494f6fe54ce265128f5c08dc2 mkdir build cd build From b4b3297cd87e10f51970b929a1328aac6c58694c Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 13:16:50 +0100 Subject: [PATCH 33/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index c1974eb2..38b76bf4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout d97a4dfea6c2781494f6fe54ce265128f5c08dc2 + git checkout 38abdddf6f660c6d71d1c018ee1f2a1b46808f68 mkdir build cd build From 22e0b84c271f778ce44aaf7fa3a95955c8ee7048 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 13:51:37 +0100 Subject: [PATCH 34/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 38b76bf4..808856d2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 38abdddf6f660c6d71d1c018ee1f2a1b46808f68 + git checkout b82a3a8ef3843a8b98807219db87bc12f38ed704 mkdir build cd build From 8cbf9316a75e043fe3810ec176e2dd88de94dd55 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 14:18:52 +0100 Subject: [PATCH 35/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 808856d2..773bf157 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout b82a3a8ef3843a8b98807219db87bc12f38ed704 + git checkout 245e25f9c3b4273ee77f5d066ef8b8526f881b69 mkdir build cd build From 1bdd4794f36429f1b917d0e9cd229f9da322a292 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 14:44:56 +0100 Subject: [PATCH 36/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 773bf157..e77d76ff 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 245e25f9c3b4273ee77f5d066ef8b8526f881b69 + git checkout 158a7346632208522b9193d5269d53181bc8a9fa mkdir build cd build From 2b751cdcc20d27643ffab7385c39748787baa204 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 15:15:25 +0100 Subject: [PATCH 37/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index e77d76ff..d476a474 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 158a7346632208522b9193d5269d53181bc8a9fa + git checkout 675a557316ef80f57b96c13a77201d63681d81d2 mkdir build cd build From 027dd4e7a7bf3f7650e12be8977273d6741d97a0 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 15:36:53 +0100 Subject: [PATCH 38/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d476a474..4684f836 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 675a557316ef80f57b96c13a77201d63681d81d2 + git checkout 9772dbba74375da8dd16349dbe92e91a67c155e0 mkdir build cd build From a91978644a3a07108576853ae0155795b7ee0e45 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 15:57:59 +0100 Subject: [PATCH 39/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4684f836..1fa429c5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout 9772dbba74375da8dd16349dbe92e91a67c155e0 + git checkout ab9a571a942a9d6fbf4270f115959cc357de2007 mkdir build cd build From 0961d13c20e4ce180dedcf2c83edcb4c6cf97feb Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 16:58:19 +0100 Subject: [PATCH 40/65] Test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1fa429c5..db6ac171 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project - git checkout ab9a571a942a9d6fbf4270f115959cc357de2007 + git checkout 4904e853130825d1c6fa93faf289e1ccf2f01c68 mkdir build cd build From 2b01068b595f7e3d041c3551fda93f5e60eab956 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 18:05:37 +0100 Subject: [PATCH 41/65] Try patch --- Jenkinsfile | 4 ++-- ...clude-diagnosed-by-the-modules-build.patch | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch diff --git a/Jenkinsfile b/Jenkinsfile index db6ac171..6a9d6c3b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,9 +39,9 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch cd llvm-project - git checkout 4904e853130825d1c6fa93faf289e1ccf2f01c68 + git am < ../../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch mkdir build cd build diff --git a/patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch b/patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch new file mode 100644 index 00000000..4dba31b4 --- /dev/null +++ b/patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch @@ -0,0 +1,24 @@ +From 4904e853130825d1c6fa93faf289e1ccf2f01c68 Mon Sep 17 00:00:00 2001 +From: Adrian Prantl +Date: Wed, 2 Feb 2022 09:08:11 -0800 +Subject: [PATCH] Add missing include diagnosed by the modules build. + +--- + llvm/include/llvm/Transforms/InstCombine/InstCombine.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/llvm/include/llvm/Transforms/InstCombine/InstCombine.h b/llvm/include/llvm/Transforms/InstCombine/InstCombine.h +index 6dee38c83b36..35a3a8c3218b 100644 +--- a/llvm/include/llvm/Transforms/InstCombine/InstCombine.h ++++ b/llvm/include/llvm/Transforms/InstCombine/InstCombine.h +@@ -18,6 +18,7 @@ + + #include "llvm/IR/Function.h" + #include "llvm/IR/PassManager.h" ++#include "llvm/Pass.h" + + #define DEBUG_TYPE "instcombine" + #include "llvm/Transforms/Utils/InstructionWorklist.h" +-- +2.34.1 + From ed2b52599c8c5eb01e14f31fdc89fca10ad3f0d8 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 18:16:28 +0100 Subject: [PATCH 42/65] Fix --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6a9d6c3b..680b23e9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,7 @@ pipeline { git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch cd llvm-project - git am < ../../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch + git am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch mkdir build cd build From c881964cea37f62a1b8d241314199049e92d8e18 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 18:42:10 +0100 Subject: [PATCH 43/65] Build all components --- Jenkinsfile | 3 --- llvm/Apple-stage1.cmake | 2 ++ llvm/Apple-stage2.cmake | 33 ++++++++++----------------------- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 680b23e9..ed2e0829 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,9 +52,6 @@ pipeline { -DCMAKE_C_COMPILER=`which clang` \ -DCMAKE_CXX_COMPILER=`which clang++` \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=../out \ - -DLLVM_ENABLE_PROJECTS='clang' \ - -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ -C ../../llvm/Apple-stage1.cmake ninja help ninja stage2-distribution || true diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index f47b4538..bfff83b6 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,6 +7,8 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") + set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 7709e747..cca9c4ed 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,6 +1,8 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. +set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") + set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") @@ -49,35 +51,20 @@ set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") # 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-cxxfilt - llvm-config - CACHE STRING "") - -set(LLVM_BUILD_UTILS ON CACHE BOOL "") -set(LLVM_INSTALL_UTILS ON CACHE BOOL "") -set(LLVM_TOOLCHAIN_UTILITIES - FileCheck - yaml2obj - not - count + llvm-objcopy + llvm-objdump + llvm-profdata + llvm-strip CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS clang - # LTO - # clang-format - # clang-resource-headers - # cxx-headers - # Remarks - # ${LLVM_TOOLCHAIN_TOOLS} - # ${LLVM_TOOLCHAIN_UTILITIES} + lld + ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") # test args From d2187421fd4e2b83da979c10a4be9b9f49725d6f Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 19:21:29 +0100 Subject: [PATCH 44/65] Test tar --- Jenkinsfile | 74 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ed2e0829..2648892d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,49 +36,63 @@ pipeline { 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 am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch - - 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/Apple-stage1.cmake - ninja help - ninja stage2-distribution || true - find . - ''') + String releaseName = "clang+llvm-14.0.6-arm64-apple-darwin.tar.gz" // sh(''' // export ARCHFLAGS="-arch arm64" - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch // cd llvm-project + // git am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch // mkdir build // cd build - // cmake -G Ninja ../llvm \ - // -DLLVM_ENABLE_PROJECTS="lld" \ - // -DLLVM_DISTRIBUTION_COMPONENTS="lld" \ - // -DLLVM_TARGETS_TO_BUILD="AArch64" \ + // 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 \ - // -DCMAKE_INSTALL_PREFIX=../out - + // -C ../../llvm/Apple-stage1.cmake // ninja help - // ninja lld + // ninja stage2-distribution || true // find . // ''') - sh('find llvm-project/out/') + 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 + ''') + tar(file: releaseName, dir: 'tar', archive: false) + script{ + context.archivePatterns( + patterns: [releaseName], + path: "swift-toolchains/${context.gitDescribe()}/${releaseName}", + jenkins: true + ) + } } } } From 7253a51f97483ff40061db25a6fc246410457b2e Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 20 Feb 2023 19:24:28 +0100 Subject: [PATCH 45/65] Fix --- Jenkinsfile | 96 ++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2648892d..a521b703 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,57 +36,57 @@ pipeline { node('macos-arm64') } steps { - String releaseName = "clang+llvm-14.0.6-arm64-apple-darwin.tar.gz" - // sh(''' - // export ARCHFLAGS="-arch arm64" + script{ + String releaseName = "clang+llvm-14.0.6-arm64-apple-darwin.tar.gz" + // sh(''' + // export ARCHFLAGS="-arch arm64" - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project - // git am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + // cd llvm-project + // git am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch - // 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/Apple-stage1.cmake - // ninja help - // ninja stage2-distribution || true - // find . - // ''') - 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 - ''') - tar(file: releaseName, dir: 'tar', archive: false) - script{ + // 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/Apple-stage1.cmake + // ninja help + // ninja stage2-distribution || true + // find . + // ''') + 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 + ''') + tar(file: releaseName, dir: 'tar', archive: false) context.archivePatterns( patterns: [releaseName], path: "swift-toolchains/${context.gitDescribe()}/${releaseName}", From 2b24def13a022cafe4a33888ad84a5b16f76515e Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 07:21:38 +0100 Subject: [PATCH 46/65] Fix --- Jenkinsfile | 100 ++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a521b703..f3ef2677 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,60 +36,60 @@ pipeline { node('macos-arm64') } steps { - script{ - String releaseName = "clang+llvm-14.0.6-arm64-apple-darwin.tar.gz" - // sh(''' - // export ARCHFLAGS="-arch arm64" + String releaseName = "clang+llvm-14.0.6-arm64-apple-darwin.tar.gz" + // sh(''' + // export ARCHFLAGS="-arch arm64" - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project - // git am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch + // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + // cd llvm-project + // git am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch - // 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/Apple-stage1.cmake - // ninja help - // ninja stage2-distribution || true - // find . - // ''') - 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 - ''') - tar(file: releaseName, dir: 'tar', archive: 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/Apple-stage1.cmake + // ninja help + // ninja stage2-distribution || true + // find . + // ''') + 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 + ''') + tar(file: 'clang+llvm-14.0.6-arm64-apple-darwin.tar.gz', dir: 'tar', archive: false) + script{ context.archivePatterns( - patterns: [releaseName], - path: "swift-toolchains/${context.gitDescribe()}/${releaseName}", + 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: true ) } From e4712013e96542fd2d402dfc490a9bc1515a6f0c Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 07:27:22 +0100 Subject: [PATCH 47/65] Fix --- Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index f3ef2677..4990651b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,7 +36,6 @@ pipeline { node('macos-arm64') } steps { - String releaseName = "clang+llvm-14.0.6-arm64-apple-darwin.tar.gz" // sh(''' // export ARCHFLAGS="-arch arm64" From dd4b3913ff809eee0dfc469b41cfd50f54b07002 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 08:15:15 +0100 Subject: [PATCH 48/65] Try shortert stage2 --- Jenkinsfile | 48 +++++++++++++------------------------ llvm/Apple-stage2.cmake | 53 ++++------------------------------------- 2 files changed, 22 insertions(+), 79 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4990651b..e64183c6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,39 +36,25 @@ pipeline { node('macos-arm64') } steps { - // sh(''' - // export ARCHFLAGS="-arch arm64" + sh(''' + export ARCHFLAGS="-arch arm64" - // git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch - // cd llvm-project - // git am < ../patches/0003-Add-missing-include-diagnosed-by-the-modules-build.patch + 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/Apple-stage1.cmake - // ninja help - // ninja stage2-distribution || true - // find . - // ''') - 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 \ + -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_OSX_ARCHITECTURES='arm64' \ + -DCMAKE_C_COMPILER=`which clang` \ + -DCMAKE_CXX_COMPILER=`which clang++` \ + -DCMAKE_BUILD_TYPE=Release \ + -C ../../llvm/Apple-stage1.cmake + ninja help + ninja stage2-distribution || true + find . ''') sh(''' mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin @@ -89,7 +75,7 @@ pipeline { 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: true + jenkins: false ) } } diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index cca9c4ed..96d54f15 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,52 +1,13 @@ -# This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is -# specified by the stage1 build. +# 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_TARGETS_TO_BUILD AArch64 CACHE STRING "") -set(PACKAGE_VENDOR Apple CACHE STRING "") -set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") -set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") -set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") -set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") -set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") -set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") -set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") -set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") -set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") -set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") -set(LLVM_ENABLE_MODULES ON CACHE BOOL "") -set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") -set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") -set(CLANG_SPAWN_CC1 ON CACHE BOOL "") -set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") -set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") -set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") - -# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") - -# Make unit tests (if present) part of the ALL target -set(LLVM_BUILD_TESTS ON CACHE BOOL "") - -set(LLVM_ENABLE_LTO ON CACHE BOOL "") -set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") -endif() set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") - -set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") -set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") -set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") -set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") -set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") - -# Generating Xcode toolchains is useful for developers wanting to build and use -# clang without installing over existing tools. -# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") +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 "") @@ -66,7 +27,3 @@ set(LLVM_DISTRIBUTION_COMPONENTS lld ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") - -# test args - -set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") \ No newline at end of file From b6e73b624a2904da2a1257f8b1e8c3c7ca1dd4d1 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 09:37:02 +0100 Subject: [PATCH 49/65] Try shorter stage1 --- llvm/Apple-stage1.cmake | 69 +++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 41 deletions(-) diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index bfff83b6..d1f1bc4b 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -1,46 +1,28 @@ -# This file sets up a CMakeCache for Apple-style bootstrap builds. It can be -# used on any Darwin system to approximate Apple Clang builds. - -if($ENV{DT_TOOLCHAIN_DIR}) - set(CMAKE_INSTALL_PREFIX $ENV{DT_TOOLCHAIN_DIR}/usr/) -else() - set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) -endif() +# 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_TARGETS_TO_BUILD AArch64 CACHE STRING "") -set(CLANG_VENDOR Apple CACHE STRING "") -set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") -set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") -set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "") -set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") -set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") -set(COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "") -set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") -set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") -set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") -set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") -set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") -set(CLANG_SPAWN_CC1 ON CACHE BOOL "") -set(CLANG_BOOTSTRAP_PASSTHROUGH - CMAKE_OSX_ARCHITECTURES - CACHE STRING "") - -# Disabling embedded darwin compiler-rt on stage1 builds is required because we -# don't build stage1 to support arm code generation. -set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") -set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") -set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") +# 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 "") -set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") -set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") -set(LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS 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 - generate-order-file check-all check-llvm check-clang @@ -51,12 +33,17 @@ set(CLANG_BOOTSTRAP_TARGETS clang-test-depends distribution install-distribution - install-xcode-toolchain - install-distribution-toolchain clang CACHE STRING "") -#bootstrap +# Setup the bootstrap build. set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") -set(CLANG_BOOTSTRAP_CMAKE_ARGS - -C ${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake - CACHE STRING "") \ No newline at end of file + +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}/Apple-stage2.cmake + CACHE STRING "") +endif() From cf9ebcfd0d19468d435cd7d697b4cf26adc1ddeb Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 21 Feb 2023 10:40:43 +0100 Subject: [PATCH 50/65] Fix --- Jenkinsfile | 3 +-- llvm/Apple-stage1.cmake | 8 -------- llvm/Apple-stage2.cmake | 6 ++---- 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e64183c6..e2f4de0c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -53,8 +53,7 @@ pipeline { -DCMAKE_BUILD_TYPE=Release \ -C ../../llvm/Apple-stage1.cmake ninja help - ninja stage2-distribution || true - find . + ninja stage2-install-distribution ''') sh(''' mkdir -p tar/clang+llvm-14.0.6-x86_64-linux/bin diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index d1f1bc4b..a0b734ca 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.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 "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 96d54f15..fb8e1c16 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -3,11 +3,9 @@ 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 "") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "") +set(CMAKE_BUILD_TYPE Release CACHE STRING "") # setup toolchain set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") From 11a4df947eacc59ef36e823afde95838c9c18b21 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 2 Mar 2023 10:12:36 +0100 Subject: [PATCH 51/65] Build 15.0.0 without lld --- Jenkinsfile | 43 ++++++++--------- llvm/Apple-stage1.cmake | 77 +++++++++++++++++++----------- llvm/Apple-stage2.cmake | 54 ++++++++++++++++++--- llvm/Distribution-x86-stage2.cmake | 30 ------------ llvm/Distribution-x86.cmake | 50 ------------------- 5 files changed, 116 insertions(+), 138 deletions(-) delete mode 100644 llvm/Distribution-x86-stage2.cmake delete mode 100644 llvm/Distribution-x86.cmake diff --git a/Jenkinsfile b/Jenkinsfile index e2f4de0c..91b9dca3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch cd llvm-project mkdir build @@ -51,35 +51,32 @@ pipeline { -DCMAKE_C_COMPILER=`which clang` \ -DCMAKE_CXX_COMPILER=`which clang++` \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=../out \ + -DLLVM_ENABLE_PROJECTS='clang' \ + -DLLVM_DISTRIBUTION_COMPONENTS='clang' \ -C ../../llvm/Apple-stage1.cmake ninja help 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 - ) - } + uploadDistribution("clang+llvm-14.0.6-arm64-apple-darwin", context) } } } } } } + +def uploadDistribution(name, context) { + sh(""" + mkdir -p tar/${name}/ + cp -rH llvm-project/out/* tar/${name}/ + """) + tar(file: "${name}.tar.gz", dir: 'tar', archive: true) + script{ + context.archivePatterns( + patterns: ["${name}.tar.gz"], + path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", + jenkins: false + ) + } +} \ No newline at end of file diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index a0b734ca..f47b4538 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -1,41 +1,60 @@ -# This file sets up a CMakeCache for a simple distribution bootstrap build. +# This file sets up a CMakeCache for Apple-style bootstrap builds. It can be +# used on any Darwin system to approximate Apple Clang builds. -#Enable LLVM projects and runtimes -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 "") - -# Optimize the stage1 compiler, but don't LTO it because that wastes time. -set(CMAKE_BUILD_TYPE Release CACHE STRING "") +if($ENV{DT_TOOLCHAIN_DIR}) + set(CMAKE_INSTALL_PREFIX $ENV{DT_TOOLCHAIN_DIR}/usr/) +else() + set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) +endif() -# Setup vendor-specific settings. -set(PACKAGE_VENDOR LLVM.org CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(CLANG_VENDOR Apple CACHE STRING "") +set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +set(CLANG_SPAWN_CC1 ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_PASSTHROUGH + CMAKE_OSX_ARCHITECTURES + CACHE STRING "") + +# Disabling embedded darwin compiler-rt on stage1 builds is required because we +# don't build stage1 to support arm code generation. +set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") +set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") +set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") -# 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 "") +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") -if (NOT APPLE) - # Since LLVM_ENABLE_LTO is ON we need a LTO capable linker - set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") -endif() +set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") +set(LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS ON CACHE BOOL "") -# Expose stage2 targets through the stage1 build configuration. set(CLANG_BOOTSTRAP_TARGETS + generate-order-file + check-all + check-llvm + check-clang + llvm-config + test-suite + test-depends + llvm-test-depends + clang-test-depends distribution install-distribution + install-xcode-toolchain + install-distribution-toolchain clang CACHE STRING "") -# Setup the bootstrap build. +#bootstrap 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}/Apple-stage2.cmake - CACHE STRING "") -endif() +set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake + CACHE STRING "") \ No newline at end of file diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index fb8e1c16..c837d37c 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,11 +1,50 @@ -# This file sets up a CMakeCache for the second stage of a simple distribution -# bootstrap build. +# This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is +# specified by the stage1 build. -set(LLVM_ENABLE_PROJECTS "clang;lld" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") +set(PACKAGE_VENDOR Apple CACHE STRING "") +set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") +set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(LLVM_ENABLE_MODULES ON CACHE BOOL "") +set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +set(CLANG_SPAWN_CC1 ON CACHE BOOL "") +set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") +set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") -set(CMAKE_BUILD_TYPE Release CACHE STRING "") +# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") + +# Make unit tests (if present) part of the ALL target +set(LLVM_BUILD_TESTS ON CACHE BOOL "") + +set(LLVM_ENABLE_LTO ON CACHE BOOL "") +set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +endif() +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") + +set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") +set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") +set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") +set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") +set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") + +# Generating Xcode toolchains is useful for developers wanting to build and use +# clang without installing over existing tools. +# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "") # setup toolchain set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") @@ -22,6 +61,9 @@ set(LLVM_TOOLCHAIN_TOOLS set(LLVM_DISTRIBUTION_COMPONENTS clang - lld ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") + +# test args + +set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") \ No newline at end of file diff --git a/llvm/Distribution-x86-stage2.cmake b/llvm/Distribution-x86-stage2.cmake deleted file mode 100644 index af9b6e18..00000000 --- a/llvm/Distribution-x86-stage2.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# 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 deleted file mode 100644 index 634320bf..00000000 --- a/llvm/Distribution-x86.cmake +++ /dev/null @@ -1,50 +0,0 @@ -# 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 8295e7046bbd747c3efd4131f421483a51765980 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 2 Mar 2023 11:10:03 +0100 Subject: [PATCH 52/65] build 14.0.0 --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 91b9dca3..074c66a7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-15.0.0-rc1 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.0 --single-branch cd llvm-project mkdir build @@ -58,7 +58,7 @@ pipeline { ninja help ninja stage2-install-distribution ''') - uploadDistribution("clang+llvm-14.0.6-arm64-apple-darwin", context) + uploadDistribution("clang+llvm-14.0.0-arm64-apple-darwin", context) } } } From bd273a61444e5890f4f82a441c599b4da3f3436c Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 2 Mar 2023 11:37:58 +0100 Subject: [PATCH 53/65] Make 2 stage shorter --- llvm/Apple-stage2.cmake | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index c837d37c..c586ca2c 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -3,44 +3,10 @@ set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") -set(CLANG_VENDOR_UTI com.apple.clang CACHE STRING "") -set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") -set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") -set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") -set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") -set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") -set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") -set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") -set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") -set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") -set(LLVM_ENABLE_MODULES ON CACHE BOOL "") -set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") -set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") -set(CLANG_SPAWN_CC1 ON CACHE BOOL "") -set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") -set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") -set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") - -# set(LLVM_CREATE_XCODE_TOOLCHAIN ON CACHE BOOL "Generate targets to create and install an Xcode compatible toolchain") - -# Make unit tests (if present) part of the ALL target -set(LLVM_BUILD_TESTS ON CACHE BOOL "") - -set(LLVM_ENABLE_LTO ON CACHE BOOL "") -set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") -endif() set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") - -set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") -set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") -set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") -set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") -set(LLVM_LTO_VERSION_OFFSET 3000 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 "") # Generating Xcode toolchains is useful for developers wanting to build and use # clang without installing over existing tools. From e65dce1545743a5adb2c7d2e51cdeffbabefb222 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 2 Mar 2023 12:53:19 +0100 Subject: [PATCH 54/65] Enable more components --- Jenkinsfile | 14 +++++++------- llvm/Apple-stage1.cmake | 2 ++ llvm/Apple-stage2.cmake | 17 +++++++++++++---- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 074c66a7..c7fbfd8e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -72,11 +72,11 @@ def uploadDistribution(name, context) { cp -rH llvm-project/out/* tar/${name}/ """) tar(file: "${name}.tar.gz", dir: 'tar', archive: true) - script{ - context.archivePatterns( - patterns: ["${name}.tar.gz"], - path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", - jenkins: false - ) - } + // script{ + // context.archivePatterns( + // patterns: ["${name}.tar.gz"], + // path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", + // jenkins: false + // ) + // } } \ No newline at end of file diff --git a/llvm/Apple-stage1.cmake b/llvm/Apple-stage1.cmake index f47b4538..5e55231d 100644 --- a/llvm/Apple-stage1.cmake +++ b/llvm/Apple-stage1.cmake @@ -7,6 +7,8 @@ else() set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) endif() +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra" CACHE STRING "") + set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(CLANG_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index c586ca2c..edfc5da7 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -1,9 +1,13 @@ # This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is # specified by the stage1 build. +set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra" CACHE STRING "") + set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") + 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 "") @@ -23,12 +27,17 @@ set(LLVM_TOOLCHAIN_TOOLS llvm-objdump llvm-profdata llvm-strip + llvm-symbolizer CACHE STRING "") -set(LLVM_DISTRIBUTION_COMPONENTS - clang - ${LLVM_TOOLCHAIN_TOOLS} - CACHE STRING "") + set(LLVM_DISTRIBUTION_COMPONENTS + clang + builtins + runtimes + clang-resource-headers + clang-tidy + ${LLVM_TOOLCHAIN_TOOLS} + CACHE STRING "") # test args From 3cc16eda082bdd84414d115973535b05bdf0a7e2 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 2 Mar 2023 12:57:11 +0100 Subject: [PATCH 55/65] Enable runtimes --- llvm/Apple-stage2.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index edfc5da7..d7d06a5d 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -2,6 +2,7 @@ # specified by the stage1 build. set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD AArch64 CACHE STRING "") set(PACKAGE_VENDOR Apple CACHE STRING "") From 583a7938147284c5f22d9a82e66c662d9468b170 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Thu, 2 Mar 2023 13:17:22 +0100 Subject: [PATCH 56/65] Disable clang-tidy --- llvm/Apple-stage2.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index d7d06a5d..0fba8723 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -36,7 +36,7 @@ set(LLVM_TOOLCHAIN_TOOLS builtins runtimes clang-resource-headers - clang-tidy + # clang-tidy ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") From 95d33f2bfb398e00d253c8d304d16154e8b60535 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Thu, 6 Apr 2023 13:56:26 -0600 Subject: [PATCH 57/65] get bug fixes --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c7fbfd8e..202c5e6b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ pipeline { sh(''' export ARCHFLAGS="-arch arm64" - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.0 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch cd llvm-project mkdir build @@ -79,4 +79,4 @@ def uploadDistribution(name, context) { // jenkins: false // ) // } -} \ No newline at end of file +} From ca45c0530f4916a310f65bea941f5e864e8bc710 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Thu, 6 Apr 2023 18:41:29 -0600 Subject: [PATCH 58/65] try disabling arch flag --- Jenkinsfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 202c5e6b..94d3bfeb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -37,9 +37,7 @@ pipeline { } steps { sh(''' - export ARCHFLAGS="-arch arm64" - - git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.6 --single-branch + git clone https://github.com/llvm/llvm-project --branch=llvmorg-14.0.0 --single-branch cd llvm-project mkdir build From 7b6c8df00e2ceb2e16120522d4ab26d1234306e3 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 13:22:25 -0600 Subject: [PATCH 59/65] upload build to s3 --- Jenkinsfile | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 94d3bfeb..4da1700e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -59,6 +59,11 @@ pipeline { uploadDistribution("clang+llvm-14.0.0-arm64-apple-darwin", context) } } + post { + always { + cleanWs + } + } } } } @@ -69,12 +74,12 @@ def uploadDistribution(name, context) { mkdir -p tar/${name}/ cp -rH llvm-project/out/* tar/${name}/ """) - tar(file: "${name}.tar.gz", dir: 'tar', archive: true) - // script{ - // context.archivePatterns( - // patterns: ["${name}.tar.gz"], - // path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", - // jenkins: false - // ) - // } + tar(file: "${name}.tar.gz", dir: 'tar') + script{ + context.archivePatterns( + patterns: ["${name}.tar.gz"], + path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", + jenkins: false + ) + } } From 4a11a017a32f702a4ef841608181f35244674f0a Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 13:29:11 -0600 Subject: [PATCH 60/65] fix --- Jenkinsfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4da1700e..ac174b71 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -58,10 +58,10 @@ pipeline { ''') uploadDistribution("clang+llvm-14.0.0-arm64-apple-darwin", context) } - } - post { - always { - cleanWs + post { + always { + cleanWs + } } } } From 5c19499cba23d8968cb6394ceb605716af5f9bb6 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 13:44:41 -0600 Subject: [PATCH 61/65] try again --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ac174b71..2901db39 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -59,7 +59,7 @@ pipeline { uploadDistribution("clang+llvm-14.0.0-arm64-apple-darwin", context) } post { - always { + cleanup { cleanWs } } From c371266e92d5544d1aa0738db5f45b0001b76c70 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 13:45:35 -0600 Subject: [PATCH 62/65] one more time --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2901db39..22adbd03 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -60,7 +60,7 @@ pipeline { } post { cleanup { - cleanWs + cleanWs() } } } From b4b0f2a4783c24c388f470afe7872512d9378d30 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 13:48:13 -0600 Subject: [PATCH 63/65] add another clean --- Jenkinsfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 22adbd03..50feae73 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -67,6 +67,11 @@ pipeline { } } } + post { + always { + cleanWs() + } + } } def uploadDistribution(name, context) { From 55b1d72afb062f46bd031bfe848f1cd830da0dfa Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 17:48:39 -0600 Subject: [PATCH 64/65] try to build clang tools --- Jenkinsfile | 11 +++-------- llvm/Apple-stage2.cmake | 4 +++- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 50feae73..014c1f4a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,6 +45,8 @@ pipeline { cmake -GNinja ../llvm \ -DCMAKE_INSTALL_PREFIX=../out/ \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ -DCMAKE_OSX_ARCHITECTURES='arm64' \ -DCMAKE_C_COMPILER=`which clang` \ -DCMAKE_CXX_COMPILER=`which clang++` \ @@ -79,12 +81,5 @@ def uploadDistribution(name, context) { mkdir -p tar/${name}/ cp -rH llvm-project/out/* tar/${name}/ """) - tar(file: "${name}.tar.gz", dir: 'tar') - script{ - context.archivePatterns( - patterns: ["${name}.tar.gz"], - path: "swift-toolchains/${context.gitDescribe()}/${name}.tar.gz", - jenkins: false - ) - } + tar(file: "${name}.tar.gz", dir: 'tar', archive: true) } diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 0fba8723..41cf7708 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -33,6 +33,8 @@ set(LLVM_TOOLCHAIN_TOOLS set(LLVM_DISTRIBUTION_COMPONENTS clang + clang-format + clang-tidy builtins runtimes clang-resource-headers @@ -42,4 +44,4 @@ set(LLVM_TOOLCHAIN_TOOLS # test args -set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") \ No newline at end of file +set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") From 2aaa36230a4d6bdad86e80b16c35890b11e932f0 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 18:53:45 -0600 Subject: [PATCH 65/65] skip clang tidy --- llvm/Apple-stage2.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/llvm/Apple-stage2.cmake b/llvm/Apple-stage2.cmake index 41cf7708..0ca1fd4b 100644 --- a/llvm/Apple-stage2.cmake +++ b/llvm/Apple-stage2.cmake @@ -34,7 +34,6 @@ set(LLVM_TOOLCHAIN_TOOLS set(LLVM_DISTRIBUTION_COMPONENTS clang clang-format - clang-tidy builtins runtimes clang-resource-headers