From d9c5a4141133f0064f63367a42d32805347fa4f7 Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 10:37:48 +0200 Subject: [PATCH 01/11] fix: go back to bootstrapped build for platforms other than Windows --- .github/workflows/build.yml | 39 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 51df367..eba994f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -94,29 +94,34 @@ jobs: -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ `# https://boxbase.org/entries/2018/jun/11/minimal-llvm-build/`\ -DLLVM_TARGETS_TO_BUILD='AArch64;WebAssembly;X86'\ - -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON\ + -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DLIBCXX_USE_COMPILER_RT=ON\ + -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON -DCOMPILER_RT_BUILD_SANITIZERS=OFF\ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ ${{ matrix.more-opts }} + if [[ "${{ matrix.os }}" =~ "windows*" ]]; then + # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, + # build as a separate project using msys LLVM as before + cmake llvm-project/runtimes -G Ninja -B build/runtimes -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ + -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ + -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ + `# https://libcxx.llvm.org/BuildingLibcxx.html`\ + -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON\ + `# hide libc++ symbols in libleanshared`\ + -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON\ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ + -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ + `# https://github.com/llvm/llvm-project/pull/84750`\ + -DLLVM_ENABLE_PIC=ON\ + ${{ matrix.more-opts }} + cmake --build build/runtimes -j$(nproc) + cmake --install build/runtimes + else + cmake -B build/llvm -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" + fi cmake --build build/llvm -j$(nproc) cmake --install build/llvm - # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, - # build as a separate project using msys LLVM as before - cmake llvm-project/runtimes -G Ninja -B build/runtimes -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ - -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ - -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ - `# https://libcxx.llvm.org/BuildingLibcxx.html`\ - -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON\ - `# hide libc++ symbols in libleanshared`\ - -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON\ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ - -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ - `# https://github.com/llvm/llvm-project/pull/84750`\ - -DLLVM_ENABLE_PIC=ON\ - ${{ matrix.more-opts }} - cmake --build build/runtimes -j$(nproc) - cmake --install build/runtimes tar cf lean-llvm-${{ matrix.name }}.tar.zst --use-compress-program="zstd -19" lean-llvm/ - name: Sanity test run: lean-llvm/bin/clang -v From a4abdc2f5bd4fa745a209c60afce3f6e8c57f232 Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 10:40:49 +0200 Subject: [PATCH 02/11] chore: update cache action --- .github/workflows/build.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eba994f..75187ac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,8 +78,9 @@ jobs: with: msystem: clang64 install: mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-ccache git mingw-w64-clang-x86_64-cmake make tar zstd - - name: Cache - uses: actions/cache@v2 + - name: Restore Cache + id: restore-cache + uses: actions/cache/restore@v4 with: path: .ccache key: ${{ matrix.name }}-build-${{ github.sha }} @@ -127,6 +128,12 @@ jobs: run: lean-llvm/bin/clang -v - name: CCache stats run: ccache -s + - name: Save Cache + if: always() && steps.restore-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@v4 + with: + path: .ccache + key: ${{ matrix.name }}-build-${{ github.sha }} - uses: actions/upload-artifact@v4 with: name: lean-llvm-${{ matrix.name }} From 42823cb781f06fe45250bb2790dd360b05000f3d Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 10:50:20 +0200 Subject: [PATCH 03/11] fix --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 75187ac..71f273a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,7 +96,7 @@ jobs: `# https://boxbase.org/entries/2018/jun/11/minimal-llvm-build/`\ -DLLVM_TARGETS_TO_BUILD='AArch64;WebAssembly;X86'\ -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DLIBCXX_USE_COMPILER_RT=ON\ - -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON + -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON\ -DCOMPILER_RT_BUILD_SANITIZERS=OFF\ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ From b8e8d10035bcbcf727271e1beffd97e06a382e51 Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 11:23:55 +0200 Subject: [PATCH 04/11] fix --- .github/workflows/build.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71f273a..42a692d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -89,6 +89,7 @@ jobs: ${{ matrix.name }}-build - name: Build run: | + set -euxo pipefail git clone -q --depth 1 -b llvmorg-19.1.2 --recursive https://github.com/llvm/llvm-project cmake llvm-project/llvm -G Ninja -B build/llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ -DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt" -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ @@ -102,6 +103,8 @@ jobs: -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ ${{ matrix.more-opts }} if [[ "${{ matrix.os }}" =~ "windows*" ]]; then + cmake --build build/llvm -j$(nproc) + cmake --install build/llvm # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, # build as a separate project using msys LLVM as before cmake llvm-project/runtimes -G Ninja -B build/runtimes -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ @@ -119,10 +122,10 @@ jobs: cmake --build build/runtimes -j$(nproc) cmake --install build/runtimes else - cmake -B build/llvm -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" + cmake build/llvm -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" + cmake --build build/llvm -j$(nproc) + cmake --install build/llvm fi - cmake --build build/llvm -j$(nproc) - cmake --install build/llvm tar cf lean-llvm-${{ matrix.name }}.tar.zst --use-compress-program="zstd -19" lean-llvm/ - name: Sanity test run: lean-llvm/bin/clang -v From b189e3c9bd2f1f53a03425ab4e9092360bf5289a Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 13:36:00 +0200 Subject: [PATCH 05/11] fix? --- .github/workflows/build.yml | 41 +++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42a692d..b99fac7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: more-opts: | -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib -DLLVM_HOST_TRIPLE=x86_64-w64-windows-gnu -DLLD_DEFAULT_LD_LLD_IS_MINGW=ON \ -DLIBCXX_HAS_WIN32_THREAD_API=ON -DLIBCXXABI_HAS_WIN32_THREAD_API=ON -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXXABI_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \ - -G "Unix Makefiles" -DCMAKE_INSTALL_LIBDIR=lib -DLIBUNWIND_ENABLE_SHARED=OFF + -G "Unix Makefiles" -DCMAKE_INSTALL_LIBDIR=lib # complete all jobs fail-fast: false env: @@ -91,38 +91,35 @@ jobs: run: | set -euxo pipefail git clone -q --depth 1 -b llvmorg-19.1.2 --recursive https://github.com/llvm/llvm-project - cmake llvm-project/llvm -G Ninja -B build/llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ - -DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt" -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ - -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ - `# https://boxbase.org/entries/2018/jun/11/minimal-llvm-build/`\ + COMMON_ARGS=-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ + -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ -DLLVM_TARGETS_TO_BUILD='AArch64;WebAssembly;X86'\ - -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DLIBCXX_USE_COMPILER_RT=ON\ - -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON\ - -DCOMPILER_RT_BUILD_SANITIZERS=OFF\ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ ${{ matrix.more-opts }} + LLVM_ARGS=-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt"\ + -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ + -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON\ + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + RUNTIME_ARGS=-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx"\ + `# https://libcxx.llvm.org/BuildingLibcxx.html`\ + -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON\ + `# hide libc++ symbols in libleanshared`\ + -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON\ + `# https://github.com/llvm/llvm-project/pull/84750`\ + -DLLVM_ENABLE_PIC=ON\ + -DLIBUNWIND_ENABLE_SHARED=OFF + cmake llvm-project/llvm -B build/llvm $COMMON_ARGS $LLVM_ARGS if [[ "${{ matrix.os }}" =~ "windows*" ]]; then cmake --build build/llvm -j$(nproc) cmake --install build/llvm # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, # build as a separate project using msys LLVM as before - cmake llvm-project/runtimes -G Ninja -B build/runtimes -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ - -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ - -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ - `# https://libcxx.llvm.org/BuildingLibcxx.html`\ - -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON\ - `# hide libc++ symbols in libleanshared`\ - -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON\ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ - -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ - `# https://github.com/llvm/llvm-project/pull/84750`\ - -DLLVM_ENABLE_PIC=ON\ - ${{ matrix.more-opts }} + cmake llvm-project/runtimes -G Ninja -B build/runtimes $COMMON_ARGS $RUNTIME_ARGS cmake --build build/runtimes -j$(nproc) cmake --install build/runtimes else - cmake build/llvm -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" + cmake build/llvm $RUNTIME_ARGS cmake --build build/llvm -j$(nproc) cmake --install build/llvm fi From 64d0acfc143c52592b1998cffaa38763fec6fe05 Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 13:43:22 +0200 Subject: [PATCH 06/11] fix --- .github/workflows/build.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b99fac7..2ef4668 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: more-opts: | -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib -DLLVM_HOST_TRIPLE=x86_64-w64-windows-gnu -DLLD_DEFAULT_LD_LLD_IS_MINGW=ON \ -DLIBCXX_HAS_WIN32_THREAD_API=ON -DLIBCXXABI_HAS_WIN32_THREAD_API=ON -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXXABI_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \ - -G "Unix Makefiles" -DCMAKE_INSTALL_LIBDIR=lib + -G 'Unix Makefiles' -DCMAKE_INSTALL_LIBDIR=lib # complete all jobs fail-fast: false env: @@ -91,24 +91,24 @@ jobs: run: | set -euxo pipefail git clone -q --depth 1 -b llvmorg-19.1.2 --recursive https://github.com/llvm/llvm-project - COMMON_ARGS=-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ + COMMON_ARGS="-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ -DLLVM_TARGETS_TO_BUILD='AArch64;WebAssembly;X86'\ -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ - ${{ matrix.more-opts }} - LLVM_ARGS=-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt"\ + ${{ matrix.more-opts }}" + LLVM_ARGS="-DLLVM_ENABLE_PROJECTS='llvm;clang;lld;compiler-rt;bolt'\ -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON\ - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - RUNTIME_ARGS=-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx"\ + -DCOMPILER_RT_BUILD_SANITIZERS=OFF" + RUNTIME_ARGS="-DLLVM_ENABLE_RUNTIMES='libunwind;libcxxabi;pstl;libcxx'\ `# https://libcxx.llvm.org/BuildingLibcxx.html`\ -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON\ `# hide libc++ symbols in libleanshared`\ -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON\ `# https://github.com/llvm/llvm-project/pull/84750`\ -DLLVM_ENABLE_PIC=ON\ - -DLIBUNWIND_ENABLE_SHARED=OFF + -DLIBUNWIND_ENABLE_SHARED=OFF" cmake llvm-project/llvm -B build/llvm $COMMON_ARGS $LLVM_ARGS if [[ "${{ matrix.os }}" =~ "windows*" ]]; then cmake --build build/llvm -j$(nproc) From 99cc408e696156b70f587a075eefb69af6a83e68 Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 13:54:22 +0200 Subject: [PATCH 07/11] fix --- .github/workflows/build.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ef4668..686dbd6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,18 +23,18 @@ jobs: - name: x86_64-linux-gnu os: ubuntu-20.04 # for old glibc # LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON normally set by llvm/CMakeLists.txt but doesn't propagate to our separate runtimes build - more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH='$ORIGIN/../lib' -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON + more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - name: aarch64-linux-gnu os: nscloud-ubuntu-20.04-arm64-4x8 # for old glibc - more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH='$ORIGIN/../lib' -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON + more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - name: x86_64-apple-darwin os: macos-13 # still x64 # ld64.lld: warning: Option `-reexported_symbols_list' is not yet implemented. Stay tuned... - more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH='@loader_path/../lib' -DCMAKE_INSTALL_NAME_DIR='@rpath' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false + more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH="@loader_path/../lib" -DCMAKE_INSTALL_NAME_DIR="@rpath" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false - name: aarch64-apple-darwin os: macos-latest # ld64.lld: warning: Option `-reexported_symbols_list' is not yet implemented. Stay tuned... - more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH='@loader_path/../lib' -DCMAKE_INSTALL_NAME_DIR='@rpath' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false + more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH="@loader_path/../lib" -DCMAKE_INSTALL_NAME_DIR="@rpath" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false - name: x86_64-w64-windows-gnu os: windows-latest shell: msys2 {0} @@ -44,7 +44,7 @@ jobs: more-opts: | -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib -DLLVM_HOST_TRIPLE=x86_64-w64-windows-gnu -DLLD_DEFAULT_LD_LLD_IS_MINGW=ON \ -DLIBCXX_HAS_WIN32_THREAD_API=ON -DLIBCXXABI_HAS_WIN32_THREAD_API=ON -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXXABI_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \ - -G 'Unix Makefiles' -DCMAKE_INSTALL_LIBDIR=lib + -G "Unix Makefiles" -DCMAKE_INSTALL_LIBDIR=lib # complete all jobs fail-fast: false env: @@ -91,35 +91,35 @@ jobs: run: | set -euxo pipefail git clone -q --depth 1 -b llvmorg-19.1.2 --recursive https://github.com/llvm/llvm-project - COMMON_ARGS="-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ + COMMON_ARGS='-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ - -DLLVM_TARGETS_TO_BUILD='AArch64;WebAssembly;X86'\ + -DLLVM_TARGETS_TO_BUILD="AArch64;WebAssembly;X86"\ -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ - ${{ matrix.more-opts }}" - LLVM_ARGS="-DLLVM_ENABLE_PROJECTS='llvm;clang;lld;compiler-rt;bolt'\ + ${{ matrix.more-opts }}' + LLVM_ARGS='-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt"\ -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON\ - -DCOMPILER_RT_BUILD_SANITIZERS=OFF" - RUNTIME_ARGS="-DLLVM_ENABLE_RUNTIMES='libunwind;libcxxabi;pstl;libcxx'\ + -DCOMPILER_RT_BUILD_SANITIZERS=OFF' + RUNTIME_ARGS='-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx"\ `# https://libcxx.llvm.org/BuildingLibcxx.html`\ -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON\ `# hide libc++ symbols in libleanshared`\ -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON\ `# https://github.com/llvm/llvm-project/pull/84750`\ -DLLVM_ENABLE_PIC=ON\ - -DLIBUNWIND_ENABLE_SHARED=OFF" - cmake llvm-project/llvm -B build/llvm $COMMON_ARGS $LLVM_ARGS + -DLIBUNWIND_ENABLE_SHARED=OFF' + eval cmake llvm-project/llvm -B build/llvm $COMMON_ARGS $LLVM_ARGS if [[ "${{ matrix.os }}" =~ "windows*" ]]; then cmake --build build/llvm -j$(nproc) cmake --install build/llvm # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, # build as a separate project using msys LLVM as before - cmake llvm-project/runtimes -G Ninja -B build/runtimes $COMMON_ARGS $RUNTIME_ARGS + eval cmake llvm-project/runtimes -B build/runtimes $COMMON_ARGS $RUNTIME_ARGS cmake --build build/runtimes -j$(nproc) cmake --install build/runtimes else - cmake build/llvm $RUNTIME_ARGS + eval cmake build/llvm $RUNTIME_ARGS cmake --build build/llvm -j$(nproc) cmake --install build/llvm fi From 19cf0f55169006a5c58b7cbc895ff86a45c88d0c Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Fri, 11 Apr 2025 14:31:40 +0200 Subject: [PATCH 08/11] fix --- .github/workflows/build.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 686dbd6..eabdd55 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -91,23 +91,23 @@ jobs: run: | set -euxo pipefail git clone -q --depth 1 -b llvmorg-19.1.2 --recursive https://github.com/llvm/llvm-project - COMMON_ARGS='-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++\ - -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON\ - -DLLVM_TARGETS_TO_BUILD="AArch64;WebAssembly;X86"\ - -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF\ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON\ + COMMON_ARGS='-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ + -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON \ + -DLLVM_TARGETS_TO_BUILD="AArch64;WebAssembly;X86" \ + -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ ${{ matrix.more-opts }}' - LLVM_ARGS='-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt"\ - -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF\ - -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON\ + LLVM_ARGS='-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt" \ + -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF \ + -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ -DCOMPILER_RT_BUILD_SANITIZERS=OFF' - RUNTIME_ARGS='-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx"\ - `# https://libcxx.llvm.org/BuildingLibcxx.html`\ - -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON\ - `# hide libc++ symbols in libleanshared`\ - -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON\ - `# https://github.com/llvm/llvm-project/pull/84750`\ - -DLLVM_ENABLE_PIC=ON\ + RUNTIME_ARGS='-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" \ + `# https://libcxx.llvm.org/BuildingLibcxx.html` \ + -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON \ + `# hide libc++ symbols in libleanshared` \ + -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON \ + `# https://github.com/llvm/llvm-project/pull/84750` \ + -DLLVM_ENABLE_PIC=ON \ -DLIBUNWIND_ENABLE_SHARED=OFF' eval cmake llvm-project/llvm -B build/llvm $COMMON_ARGS $LLVM_ARGS if [[ "${{ matrix.os }}" =~ "windows*" ]]; then From 62ce2c39cff8a812a392d908bca83ed69173bdfa Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Sun, 13 Apr 2025 15:42:04 +0200 Subject: [PATCH 09/11] fix --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eabdd55..4122764 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,10 +23,10 @@ jobs: - name: x86_64-linux-gnu os: ubuntu-20.04 # for old glibc # LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON normally set by llvm/CMakeLists.txt but doesn't propagate to our separate runtimes build - more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON + more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - name: aarch64-linux-gnu os: nscloud-ubuntu-20.04-arm64-4x8 # for old glibc - more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON + more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - name: x86_64-apple-darwin os: macos-13 # still x64 # ld64.lld: warning: Option `-reexported_symbols_list' is not yet implemented. Stay tuned... @@ -110,7 +110,7 @@ jobs: -DLLVM_ENABLE_PIC=ON \ -DLIBUNWIND_ENABLE_SHARED=OFF' eval cmake llvm-project/llvm -B build/llvm $COMMON_ARGS $LLVM_ARGS - if [[ "${{ matrix.os }}" =~ "windows*" ]]; then + if [[ "${{ matrix.os }}" =~ windows* ]]; then cmake --build build/llvm -j$(nproc) cmake --install build/llvm # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, From b36d31ffbb0a6c55761b2765f3a5788e570d645d Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Sun, 13 Apr 2025 22:28:52 +0200 Subject: [PATCH 10/11] fix --- .github/workflows/build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4122764..185cb57 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -91,35 +91,35 @@ jobs: run: | set -euxo pipefail git clone -q --depth 1 -b llvmorg-19.1.2 --recursive https://github.com/llvm/llvm-project - COMMON_ARGS='-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ + COMMON_ARGS=(-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/lean-llvm -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON \ -DLLVM_TARGETS_TO_BUILD="AArch64;WebAssembly;X86" \ -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ - ${{ matrix.more-opts }}' - LLVM_ARGS='-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt" \ + ${{ matrix.more-opts }}) + LLVM_ARGS=(-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt" \ -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ - -DCOMPILER_RT_BUILD_SANITIZERS=OFF' - RUNTIME_ARGS='-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" \ + -DCOMPILER_RT_BUILD_SANITIZERS=OFF) + RUNTIME_ARGS=(-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;pstl;libcxx" \ `# https://libcxx.llvm.org/BuildingLibcxx.html` \ -DLIBCXX_USE_COMPILER_RT=ON -DLIBCXXABI_USE_COMPILER_RT=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_USE_COMPILER_RT=ON \ `# hide libc++ symbols in libleanshared` \ -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON \ `# https://github.com/llvm/llvm-project/pull/84750` \ -DLLVM_ENABLE_PIC=ON \ - -DLIBUNWIND_ENABLE_SHARED=OFF' - eval cmake llvm-project/llvm -B build/llvm $COMMON_ARGS $LLVM_ARGS + -DLIBUNWIND_ENABLE_SHARED=OFF) + cmake llvm-project/llvm -B build/llvm ${COMMON_ARGS[@]} ${LLVM_ARGS[@]} if [[ "${{ matrix.os }}" =~ windows* ]]; then cmake --build build/llvm -j$(nproc) cmake --install build/llvm # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, # build as a separate project using msys LLVM as before - eval cmake llvm-project/runtimes -B build/runtimes $COMMON_ARGS $RUNTIME_ARGS + cmake llvm-project/runtimes -B build/runtimes ${COMMON_ARGS[@]} ${RUNTIME_ARGS[@]} cmake --build build/runtimes -j$(nproc) cmake --install build/runtimes else - eval cmake build/llvm $RUNTIME_ARGS + cmake build/llvm ${RUNTIME_ARGS[@]} cmake --build build/llvm -j$(nproc) cmake --install build/llvm fi From 28e83e93b3004a89e757b7cafeef10b84a7aebdf Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Mon, 14 Apr 2025 10:01:18 +0200 Subject: [PATCH 11/11] fix --- .github/workflows/build.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 185cb57..966df58 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,18 +23,18 @@ jobs: - name: x86_64-linux-gnu os: ubuntu-20.04 # for old glibc # LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON normally set by llvm/CMakeLists.txt but doesn't propagate to our separate runtimes build - more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON + more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH='$ORIGIN/../lib' -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - name: aarch64-linux-gnu os: nscloud-ubuntu-20.04-arm64-4x8 # for old glibc - more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON + more-opts: -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_INSTALL_RPATH='$ORIGIN/../lib' -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - name: x86_64-apple-darwin os: macos-13 # still x64 # ld64.lld: warning: Option `-reexported_symbols_list' is not yet implemented. Stay tuned... - more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH="@loader_path/../lib" -DCMAKE_INSTALL_NAME_DIR="@rpath" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false + more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH='@loader_path/../lib' -DCMAKE_INSTALL_NAME_DIR='@rpath' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false - name: aarch64-apple-darwin os: macos-latest # ld64.lld: warning: Option `-reexported_symbols_list' is not yet implemented. Stay tuned... - more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH="@loader_path/../lib" -DCMAKE_INSTALL_NAME_DIR="@rpath" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false + more-opts: -DLLVM_USE_LINKER=ld -DCMAKE_INSTALL_RPATH='@loader_path/../lib' -DCMAKE_INSTALL_NAME_DIR='@rpath' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.19 -DCOMPILER_RT_ENABLE_IOS=false - name: x86_64-w64-windows-gnu os: windows-latest shell: msys2 {0} @@ -95,8 +95,7 @@ jobs: -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_CCACHE_BUILD=ON \ -DLLVM_TARGETS_TO_BUILD="AArch64;WebAssembly;X86" \ -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ - ${{ matrix.more-opts }}) + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON) LLVM_ARGS=(-DLLVM_ENABLE_PROJECTS="llvm;clang;lld;compiler-rt;bolt" \ -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZSTD=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_FFI=OFF \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_DEFAULT_LINKER=lld -DCLANG_DEFAULT_RTLIB=compiler-rt -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ @@ -109,8 +108,8 @@ jobs: `# https://github.com/llvm/llvm-project/pull/84750` \ -DLLVM_ENABLE_PIC=ON \ -DLIBUNWIND_ENABLE_SHARED=OFF) - cmake llvm-project/llvm -B build/llvm ${COMMON_ARGS[@]} ${LLVM_ARGS[@]} if [[ "${{ matrix.os }}" =~ windows* ]]; then + cmake llvm-project/llvm -B build/llvm ${COMMON_ARGS[@]} ${LLVM_ARGS[@]} ${{ matrix.more-opts }} cmake --build build/llvm -j$(nproc) cmake --install build/llvm # LLVM wants to build the runtimes using the bootstrapped compiler via LLVM_ENABLE_RUNTIMES but that breaks horribly on Windows, @@ -119,7 +118,7 @@ jobs: cmake --build build/runtimes -j$(nproc) cmake --install build/runtimes else - cmake build/llvm ${RUNTIME_ARGS[@]} + cmake llvm-project/llvm -B build/llvm ${COMMON_ARGS[@]} ${LLVM_ARGS[@]} ${RUNTIME_ARGS[@]} ${{ matrix.more-opts }} cmake --build build/llvm -j$(nproc) cmake --install build/llvm fi