From 79a2645c17904bc7c11265fbfb46e7b9b1b10cf8 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Thu, 19 Dec 2024 18:28:43 -0600 Subject: [PATCH] Correctly configure USE/env vars for Rust Although `LLVM_TARGETS` is USE-forced for _llvm-core/llvm_, it is NOT forced for _dev-lang/rust_. The latter needs the target architecture set in order to build the cross-compiled Rust standard library. --- crossdev.sh | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/crossdev.sh b/crossdev.sh index d1c53d2..24f884e 100755 --- a/crossdev.sh +++ b/crossdev.sh @@ -26,15 +26,6 @@ crossdev --stable -t "$1" ln -s /var/db/repos/gentoo/sys-devel/rust-std /var/db/repos/crossdev/cross-${target}/ -mkdir -p - /etc/portage/env/dev-lang \ - /etc/portage/package.accept_keywords \ - /etc/portage/package.use \ - && : -printf 'cross-%s/rust-std **\n' "${target}" \ - > /etc/portage/package.accept-keywords/rust-cross -echo 'dev-lang/rust rust-src' \ - > /etc/portage/package.use/rust-src case ${target%%-*} in aarch64) llvm_target=AArch64 @@ -47,9 +38,20 @@ arm*) exit 1 ;; esac -printf '( %s:%s:%s )\n' \ + +mkdir -p \ + /etc/portage/env/dev-lang \ + /etc/portage/package.accept_keywords \ + /etc/portage/package.use \ + && : +printf 'cross-%s/rust-std **\n' "${target}" \ + > /etc/portage/package.accept_keywords/rust-cross +printf 'dev-lang/rust rust-src LLVM_TARGETS: %s\n' \ + "${llvm_target}" \ + > /etc/portage/package.use/rust-src +printf 'RUST_CROSS_TARGETS=( %s:%s:%s )\n' \ "${llvm_target}" \ "${target}" \ "${target}" \ >> /etc/portage/env/dev-lang/rust -emerge -vbknuUj cross-${target}/rust-std +emerge -vbknj cross-${target}/rust-std