Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 15 additions & 23 deletions .github/workflows/llvm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ env:
LLVM_TARGETS: ${{ inputs.target }}
LLVM_BINS: ${{ inputs.target }}
LLVM_LIBS: ''
ZIG_VERSION: '0.16.0'
jobs:
create-release:
runs-on: ubuntu-latest
Expand All @@ -42,15 +41,15 @@ jobs:
STATIC_LIB_SUFFIX: 'a'
LLVM_TARGETS_TO_BUILD: 'AArch64'
- os: linux-amd64
runner: ubuntu-22.04
toolchain: clang-lld-linux-amd64
runner: ubuntu-24.04
Comment thread
npaun marked this conversation as resolved.
toolchain: clang-lld-linux
BIN_SUFFIX: ''
SO_SUFFIX: 'so.${{ inputs.version }}'
STATIC_LIB_SUFFIX: 'a'
LLVM_TARGETS_TO_BUILD: 'X86'
- os: linux-arm64
runner: ubuntu-22.04
toolchain: zig-linux-arm64
runner: ubuntu-24.04-arm
toolchain: clang-lld-linux
BIN_SUFFIX: ''
SO_SUFFIX: 'so.${{ inputs.version }}'
STATIC_LIB_SUFFIX: 'a'
Expand All @@ -64,33 +63,23 @@ jobs:
SO_SUFFIX: 'dll'
STATIC_LIB_SUFFIX: 'lib'
LLVM_TARGETS_TO_BUILD: 'X86'
# Disable thinLTO on Windows since MSVC does not support it
EXTRA_CMAKE_ARGS: '-DLLVM_ENABLE_LTO=OFF'
runs-on: ${{ matrix.platform.runner }}
name: ${{ matrix.platform.os }}
steps:
- uses: actions/checkout@v7
- name: Setup for macOS
if: runner.os == 'macOS'
run: |
brew install cmake ninja
- name: Setup for Linux
# The runner image already installs clang and lld, but fails to provide non-versioned
# symlinks for lld/llvm-ar/llvm-ranlib – install the generic packages so cmake can find
# them.
if: runner.os == 'Linux'
run: |
sudo apt-get install -y cmake ninja-build
sudo apt-get install -y lld llvm
- name: Setup for Windows
if: runner.os == 'Windows'
run: |
choco install cmake ninja curl
- name: Get zig toolchain
if: startsWith(matrix.platform.toolchain, 'zig')
shell: bash
run: |
echo "zig is $ZIG_VERSION"
curl -L https://ziglang.org/download/${ZIG_VERSION}/zig-x86_64-linux-${ZIG_VERSION}.tar.xz -o zig.tar.xz

mkdir zig
tar -C zig --strip-components=1 -xJf zig.tar.xz
cd zig
pwd >> $GITHUB_PATH
choco install curl
- name: Get llvm
shell: bash
run: |
Expand All @@ -99,12 +88,15 @@ jobs:
tar -C llvm --strip-components=1 ${{ matrix.platform.TAR_ARGS }} -xJf llvm.tar.xz
- name: Generate build files
shell: bash
# The windows build uses MinGW, which needs to be first in path based on https://github.com/actions/runner-images/issues/11102
run: |
[[ "${{ runner.os }}" != 'Windows' ]] || export PATH="/c/mingw64/bin:$PATH"
cd llvm
cmake -B build llvm -GNinja -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/build/llvm/${{ matrix.platform.toolchain }}.cmake $(cat $GITHUB_WORKSPACE/build/llvm/common.args) -DLLVM_TARGETS_TO_BUILD=${{ matrix.platform.LLVM_TARGETS_TO_BUILD }}
cmake -B build llvm -GNinja -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/build/llvm/${{ matrix.platform.toolchain }}.cmake $(cat $GITHUB_WORKSPACE/build/llvm/common.args) -DLLVM_TARGETS_TO_BUILD=${{ matrix.platform.LLVM_TARGETS_TO_BUILD }} ${{ matrix.platform.EXTRA_CMAKE_ARGS }}
- name: Build targets
shell: bash
run: |
[[ "${{ runner.os }}" != 'Windows' ]] || export PATH="/c/mingw64/bin:$PATH"
cd llvm/build
ninja $LLVM_TARGETS # Ninja automatically builds in parallel
- name: Upload products
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Toolchain file to build LLVM using clang and link using lld
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_LINKER_TYPE LLD)

# Tell LLVM's build system to link with lld instead of the default linker
set(LLVM_USE_LINKER lld CACHE STRING "" FORCE)

# Use LLVM versions of ar and ranlib to avoid warnings about thinLTO object files
set(CMAKE_AR llvm-ar)
set(CMAKE_RANLIB llvm-ranlib)
1 change: 0 additions & 1 deletion build/llvm/common.args
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
-DLLVM_INCLUDE_UTILS=OFF
-DLLVM_ENABLE_IDE=ON
-DLLVM_ENABLE_PLUGINS=ON
-DCLANG_ENABLE_ARCMT=OFF
-DCLANG_ENABLE_STATIC_ANALYZER=OFF
-DCLANG_PLUGIN_SUPPORT=ON
-DCMAKE_CXX_FLAGS=-g0
Expand Down
14 changes: 0 additions & 14 deletions build/llvm/zig-linux-arm64.cmake

This file was deleted.

1 change: 0 additions & 1 deletion build/zig-toolchain/ar

This file was deleted.

1 change: 0 additions & 1 deletion build/zig-toolchain/c++

This file was deleted.

1 change: 0 additions & 1 deletion build/zig-toolchain/cc

This file was deleted.

1 change: 0 additions & 1 deletion build/zig-toolchain/ranlib

This file was deleted.

3 changes: 0 additions & 3 deletions build/zig-toolchain/zig-tool.sh

This file was deleted.