mirror of
https://github.com/aya-rs/aya.git
synced 2025-12-12 20:35:55 +01:00
ci: Enable llvm-link-static feature for bpf-linker
Rust CI does not provide dynamic libLLVM tarballs for macOS—only static
ones. Since recent versions of bpf-linker require explicit linkage
configuration for libLLVM, enable the `llvm-link-static` feature to
ensure correct static linking.
Make sure bpf-linker's build.rs sees the downloaded LLVM by adding it
to PATH. On macOS, set the `{CXXSTDLIB,ZLIB}_PATH` variables to point
to the brew prefixes with static libraries it needs.
Given that now we link statically all libLLVM's dependencies and macOS
provides only dynamic zlib, we need to install static zlib from brew.
This commit is contained in:
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
@@ -279,6 +279,10 @@ jobs:
|
||||
brew bundle
|
||||
echo $(brew --prefix curl)/bin >> $GITHUB_PATH
|
||||
echo $(brew --prefix llvm)/bin >> $GITHUB_PATH
|
||||
# Point bpf-linker's build.rs to the brew prefixes with static
|
||||
# libraries it needs.
|
||||
echo "CXXSTDLIB_PATH=$(brew --prefix llvm)/lib/c++" >> $GITHUB_ENV
|
||||
echo "ZLIB_PATH=$(brew --prefix zlib)/lib" >> $GITHUB_ENV
|
||||
|
||||
# https://github.com/actions/setup-python/issues/577
|
||||
find /usr/local/bin -type l -exec sh -c 'readlink -f "$1" \
|
||||
@@ -328,6 +332,7 @@ jobs:
|
||||
;;
|
||||
macOS)
|
||||
target=${arch}-apple-darwin
|
||||
echo "LLVM_LINK_FEATURE=llvm-link-static" >> $GITHUB_ENV
|
||||
;;
|
||||
*)
|
||||
echo "::error::Unsupported runner OS: ${{ runner.os }}"
|
||||
@@ -341,8 +346,13 @@ jobs:
|
||||
# NB: rustc doesn't ship libLLVM.so on macOS, so disable proxying (default feature). We also
|
||||
# --force so that bpf-linker gets always relinked against the latest LLVM downloaded above.
|
||||
#
|
||||
# Add the downloaded LLVM to PATH for this build step.
|
||||
#
|
||||
# Do this on all system (not just macOS) to avoid relying on rustc-provided libLLVM.so.
|
||||
- run: cargo install --git https://github.com/aya-rs/bpf-linker.git bpf-linker --no-default-features --features llvm-21 --force
|
||||
- run: |
|
||||
cargo install \
|
||||
--git https://github.com/aya-rs/bpf-linker.git bpf-linker \
|
||||
--no-default-features --features "llvm-21,${LLVM_LINK_FEATURE}" --force
|
||||
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
|
||||
3
Brewfile
3
Brewfile
@@ -12,6 +12,9 @@ brew "lynx"
|
||||
brew "pkg-config"
|
||||
brew "qemu"
|
||||
|
||||
# macOS provides only dynamic zlib. Install the static one.
|
||||
brew "zlib"
|
||||
|
||||
# We need a musl C toolchain to compile our `test-distro` since some of our
|
||||
# dependencies have build scripts that compile C code (i.e xz2).
|
||||
tap "filosottile/musl-cross"
|
||||
|
||||
Reference in New Issue
Block a user