build_library: deal with both virtual/rust and dev-lang/rust

Toolchain utils have installed only `dev-lang/rust`. It could result
in version mismatch between `virtual/rust` and `dev-lang/rust`, because
`dev-lang/rust` does not automatically pull in `virtual/rust`.

So install `virtual/rust` instead of `dev-lang/rust`.
This commit is contained in:
Dongsu Park 2020-06-10 17:44:50 +02:00
parent 8047522874
commit b13976285e
2 changed files with 3 additions and 3 deletions

View File

@ -39,7 +39,7 @@ build_target_toolchain() {
export clst_myemergeopts="$( echo "$clst_myemergeopts" | sed -e 's/--newuse//' )"
PORTAGE_CONFIGROOT="$ROOT" \
run_merge --root="$ROOT" --sysroot="$ROOT" dev-lang/rust
run_merge --root="$ROOT" --sysroot="$ROOT" virtual/rust
}
configure_crossdev_overlay / /tmp/crossdev

View File

@ -335,9 +335,9 @@ install_cross_toolchain() {
# because the standard Rust packages don't include the arm64 cross target.
FILTERED="$(echo $PORTAGE_BINHOST | tr ' ' '\n' | grep toolchain | sed 's#toolchain/#toolchain-arm64/#g' | xargs echo)"
# If no aarch64 folder exists, try to remove any existing Rust packages.
[ ! -d /usr/lib/rust-*/rustlib/aarch64-unknown-linux-gnu ] && ($sudo emerge -C dev-lang/rust || true)
[ ! -d /usr/lib/rust-*/rustlib/aarch64-unknown-linux-gnu ] && ($sudo emerge -C virtual/rust dev-lang/rust || true)
# Building from source is also ok because the cross-compiler got installed.
$sudo PORTAGE_BINHOST="$FILTERED" emerge "${emerge_flags[@]}" dev-lang/rust
$sudo PORTAGE_BINHOST="$FILTERED" emerge "${emerge_flags[@]}" virtual/rust
fi
fi