Skip to content

Commit 2fae4b7

Browse files
committed
🔧 Configure ARM64 cross-compilation for CI/CD
Fix OpenSSL dependency issues for ARM64 builds in GitHub Actions - Add ARM64 architecture support with dpkg --add-architecture arm64 - Install libssl-dev:arm64 for OpenSSL development headers - Configure PKG_CONFIG_ALLOW_CROSS=1 for cross-compilation - Set PKG_CONFIG_PATH to ARM64 library location - Add pkg-config package to toolchain dependencies Resolves build failures when cross-compiling to aarch64-unknown-linux-gnu target due to missing OpenSSL libraries and improper pkg-config setup.
1 parent 00235a3 commit 2fae4b7

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

.github/workflows/cicd.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,23 @@ jobs:
185185
if: matrix.target == 'aarch64-unknown-linux-gnu'
186186
run: |
187187
sudo apt-get update
188-
sudo apt-get install -y gcc-aarch64-linux-gnu
188+
# Enable arm64 packages and add ports.ubuntu.com sources (Azure mirror lacks arm64).
189+
sudo dpkg --add-architecture arm64
190+
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ubuntu-ports.list
191+
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ubuntu-ports.list
192+
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ubuntu-ports.list
193+
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ubuntu-ports.list
194+
195+
# Refresh package lists (retry up to 3 times)
196+
sudo apt-get -o Acquire::Retries=3 update
197+
198+
# Install cross-compiler, OpenSSL (ARM64) and pkg-config
199+
sudo apt-get install -y --no-install-recommends gcc-aarch64-linux-gnu libssl-dev:arm64 pkg-config
189200
echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
190201
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
202+
# Configure pkg-config for cross-compilation
203+
echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV
204+
echo "PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig" >> $GITHUB_ENV
191205
192206
- name: 📦 Rust cache
193207
uses: Swatinem/rust-cache@v2

0 commit comments

Comments
 (0)