From 1d1b46f9eaff3d516f50fa48c148c59ecb6c92b5 Mon Sep 17 00:00:00 2001 From: A Farzat Date: Mon, 9 Mar 2026 22:03:06 +0300 Subject: Add appropriate toolchains and ENV to GitLab CI Toolchains are needed to link the targets. ENV variables ensure the correct tools are used. --- .gitlab-ci.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to '.gitlab-ci.yml') diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 69ef54b..028b869 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,6 +50,20 @@ release: - rustup target add x86_64-unknown-linux-musl - rustup target add aarch64-unknown-linux-gnu - rustup target add aarch64-unknown-linux-musl + # aarch64-musl cross toolchain (musl.cc). + - curl -fsSL https://musl.cc/aarch64-linux-musl-cross.tgz | tar xz -C /opt + - export PATH="/opt/aarch64-linux-musl-cross/bin:$PATH" + # Set per-target environment variables to prevent wrong tools being used. + # x86_64-unknown-linux-musl. + - export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=x86_64-linux-musl-gcc + # aarch64-unknown-linux-gnu. + - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc + - export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc + - export AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar + # aarch64-unknown-linux-musl. + - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc + - export CC_aarch64_unknown_linux_musl=aarch64-linux-musl-gcc + - export AR_aarch64_unknown_linux_musl=aarch64-linux-musl-ar # Build all four variants. - cargo build --release # x86_64-gnu. - cargo build --release --target x86_64-unknown-linux-musl -- cgit v1.2.3-70-g09d2