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.cross/main
parent
48fd2abbda
commit
79a2645c17
24
crossdev.sh
24
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}/
|
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
|
case ${target%%-*} in
|
||||||
aarch64)
|
aarch64)
|
||||||
llvm_target=AArch64
|
llvm_target=AArch64
|
||||||
|
@ -47,9 +38,20 @@ arm*)
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
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}" \
|
"${llvm_target}" \
|
||||||
"${target}" \
|
"${target}" \
|
||||||
"${target}" \
|
"${target}" \
|
||||||
>> /etc/portage/env/dev-lang/rust
|
>> /etc/portage/env/dev-lang/rust
|
||||||
emerge -vbknuUj cross-${target}/rust-std
|
emerge -vbknj cross-${target}/rust-std
|
||||||
|
|
Reference in New Issue