diff --git a/lib/crossdev.sh b/lib/crossdev.sh index e848882..eefa441 100755 --- a/lib/crossdev.sh +++ b/lib/crossdev.sh @@ -2,6 +2,8 @@ set -e +target=$1 + mkdir -p /var/db/repos/crossdev/profiles /var/db/repos/crossdev/metadata echo crossdev > /var/db/repos/crossdev/profiles/repo_name echo 'masters = gentoo' > /var/db/repos/crossdev/metadata/layout.conf @@ -18,3 +20,33 @@ EOF emerge -kvnuUDj --rebuilt-binaries=y --color=y sys-devel/crossdev 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 + ;; +arm*) + llvm_target=ARM + ;; +*) + printf 'Unknown LLVM target: %s' "${target%%-*}" + exit 1 + ;; +esac +printf '( %s:%s:%s )\n' \ + "${llvm_target}" \ + "${target}" \ + "${target}" \ + >> /etc/portage/env/dev-lang/rust +emerge -vbknuUj cross-${target}/rust-std