diff --git a/dev-lang/rust-host/Manifest b/dev-lang/rust-host/Manifest
new file mode 100644
index 0000000..611542e
--- /dev/null
+++ b/dev-lang/rust-host/Manifest
@@ -0,0 +1 @@
+DIST rustc-1.58.1-src.tar.gz 183834489 BLAKE2B ecc926726ac323cfadd72551ec6df7e435d1d4d6e57f4612d0959f3125182fcf98a4cd70fd25d09781bac22b9857a3a6629a97c7f902d71c345fc9c38dbaa21a SHA512 556de73500bb66796e1d6ec063f26d60e7fe03d496e0783b3b92b54d1aea8354999a6eff325a68eabdaa61cf2b356168768686bfc2ccb48766308490f9c4d945
diff --git a/dev-lang/rust-host/OWNERS b/dev-lang/rust-host/OWNERS
new file mode 100644
index 0000000..31243ec
--- /dev/null
+++ b/dev-lang/rust-host/OWNERS
@@ -0,0 +1 @@
+include chromiumos/third_party/toolchain-utils:/OWNERS.toolchain
diff --git a/dev-lang/rust-host/files b/dev-lang/rust-host/files
new file mode 120000
index 0000000..9c6e852
--- /dev/null
+++ b/dev-lang/rust-host/files
@@ -0,0 +1 @@
+../rust/files/
\ No newline at end of file
diff --git a/dev-lang/rust-host/rust-host-1.58.1-r1.ebuild b/dev-lang/rust-host/rust-host-1.58.1-r1.ebuild
new file mode 120000
index 0000000..1c6c659
--- /dev/null
+++ b/dev-lang/rust-host/rust-host-1.58.1-r1.ebuild
@@ -0,0 +1 @@
+rust-host-1.58.1.ebuild
\ No newline at end of file
diff --git a/dev-lang/rust-host/rust-host-1.58.1.ebuild b/dev-lang/rust-host/rust-host-1.58.1.ebuild
new file mode 100644
index 0000000..5f510e9
--- /dev/null
+++ b/dev-lang/rust-host/rust-host-1.58.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+RUSTC_TARGET_TRIPLES=(
+	x86_64-pc-linux-gnu
+)
+RUSTC_BARE_TARGET_TRIPLES=()
+
+inherit cros-rustc
+
+DESCRIPTION="The parts of our Rust toolchain necessary to build host binaries"
+
+KEYWORDS="*"
+
+# dev-lang/rust-1.58.1-r1 introduced the split between dev-lang/rust and
+# dev-lang/rust-host; note that here to work around file collisions.
+RDEPEND="!<dev-lang/rust-1.58.1-r1"
+
+src_install() {
+	local obj="${CROS_RUSTC_BUILD_DIR}/x86_64-unknown-linux-gnu/stage2"
+	local tools="${obj}-tools/x86_64-unknown-linux-gnu/release/"
+	dobin "${obj}/bin/rustc" "${obj}/bin/rustdoc"
+	dobin "${tools}/cargo"
+	dobin "${tools}/rustfmt" "${tools}/cargo-fmt"
+	dobin "${tools}/clippy-driver" "${tools}/cargo-clippy"
+	dobin src/etc/rust-gdb src/etc/rust-lldb
+	insinto "/usr/$(get_libdir)"
+	doins -r "${obj}/lib/"*
+	doins -r "${obj}/lib64/"*
+
+	# Install miscellaneous LLVM tools.
+	#
+	# These tools are already provided in the SDK, but they're built with
+	# the version of LLVM built by sys-devel/llvm. Rust uses an independent
+	# version of LLVM, so the use of these tools is sometimes necessary to
+	# produce artifacts that work with `rustc` and such.
+	#
+	# Our long-term plan is to have Rust using the same version of LLVM as
+	# sys-devel/llvm. When that happens, all of the below will be removed, with
+	# the expectation that users will migrate to the LLVM tools on `$PATH`.
+	local llvm_tools="${CROS_RUSTC_BUILD_DIR}/x86_64-unknown-linux-gnu/llvm/bin"
+	exeinto "/usr/libexec/rust"
+	doexe "${llvm_tools}/llvm-profdata"
+}
diff --git a/dev-lang/rust/rust-1.58.1-r1.ebuild b/dev-lang/rust/rust-1.58.1-r1.ebuild
new file mode 120000
index 0000000..8a2616e
--- /dev/null
+++ b/dev-lang/rust/rust-1.58.1-r1.ebuild
@@ -0,0 +1 @@
+rust-1.58.1.ebuild
\ No newline at end of file
diff --git a/dev-lang/rust/rust-1.58.1.ebuild b/dev-lang/rust/rust-1.58.1.ebuild
index 509b5a3..3ea6daf 100644
--- a/dev-lang/rust/rust-1.58.1.ebuild
+++ b/dev-lang/rust/rust-1.58.1.ebuild
@@ -3,216 +3,72 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6..9} )
-inherit python-any-r1 toolchain-funcs
-
-if [[ ${PV} = *beta* ]]; then
-	betaver=${PV//*beta}
-	BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
-	MY_P="rustc-beta"
-	SLOT="beta/${PV}"
-	SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.gz"
-	KEYWORDS=""
-else
-	ABI_VER="$(ver_cut 1-2)"
-	SLOT="stable/${ABI_VER}"
-	MY_P="rustc-${PV}"
-	SRC="${MY_P}-src.tar.gz"
-	KEYWORDS="*"
-fi
-
-
-BOOTSTRAP_VERSION="1.57.0"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="http://www.rust-lang.org/"
-
-SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.gz"
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
-
-RESTRICT="binchecks strip"
-REQUIRED_USE="amd64"
-
-DEPEND="${PYTHON_DEPS}
-	>=dev-libs/libxml2-2.9.6
-	>=dev-lang/perl-5.0
-"
-
-BDEPEND="dev-lang/rust-bootstrap:${BOOTSTRAP_VERSION}"
-RDEPEND="!dev-util/cargo"
-
-PATCHES=(
-	"${FILESDIR}/${P}-add-cros-targets.patch"
-	"${FILESDIR}/${P}-fix-rpath.patch"
-	"${FILESDIR}/${P}-Revert-CMake-Unconditionally-add-.h-and-.td-files-to.patch"
-	"${FILESDIR}/${P}-no-test-on-build.patch"
-	"${FILESDIR}/${P}-sanitizer-supported.patch"
-	"${FILESDIR}/${P}-cc.patch"
-	"${FILESDIR}/${P}-revert-libunwind-build.patch"
-	"${FILESDIR}/${P}-ld-argv0.patch"
-	"${FILESDIR}/${P}-Handle-sparse-git-repo-without-erroring.patch"
-	"${FILESDIR}/${P}-disable-mutable-noalias.patch"
-	"${FILESDIR}/${P}-add-armv7a-sanitizers.patch"
-	"${FILESDIR}/${P}-fix-libunwind-backtrace-visibility.patch"
-)
-
-S="${WORKDIR}/${MY_P}-src"
-
 # This is the list of target triples as they appear in the cros_sdk. If this
 # list gets changed, ensure that each of these values has a corresponding
 # compiler/rustc_target/src/spec file created below and a line referring to it
 # in 0001-add-cros-targets.patch.
 RUSTC_TARGET_TRIPLES=(
-	x86_64-pc-linux-gnu
 	x86_64-cros-linux-gnu
 	armv7a-cros-linux-gnueabihf
 	aarch64-cros-linux-gnu
 )
 
-# In this context BARE means the OS part of the triple is none and gcc is used for C/C++ and
-# linking.
+# In this context BARE means the OS part of the triple is none and gcc is used
+# for C/C++ and linking.
 RUSTC_BARE_TARGET_TRIPLES=(
 	thumbv6m-none-eabi # Cortex-M0, M0+, M1
 	thumbv7m-none-eabi # Cortex-M3
 	thumbv7em-none-eabihf # Cortex-M4F, M7F, FPU, hardfloat
 )
 
-pkg_setup() {
-	python-any-r1_pkg_setup
-	# Skips the toolchain check if we are installing a binpkg.
-	if [[ "${MERGE_TYPE}" != "binary" ]]; then
-		local tt
-		for tt in "${RUSTC_TARGET_TRIPLES[@]}" ; do
-			which "${tt}-clang" >/dev/null || die "missing toolchain ${tt}"
-		done
-		which "arm-none-eabi-gcc" >/dev/null || die "missing toolchain arm-none-eabi"
+inherit cros-rustc
+
+DESCRIPTION="Libraries needed to cross-compile Rust for cros/baremetal targets"
+
+# Use PVR to require simultaneous uprevs of both rust-host and rust, since
+# they're logically talking about the same sources.
+BDEPEND="~dev-lang/rust-host-${PV}"
+RDEPEND="~dev-lang/rust-host-${PV}"
+KEYWORDS="*"
+
+# NOTE: since CROS_RUSTC_BUILD_DIR is a local cache, the cases below can't
+# always presume that it exists.
+
+src_unpack() {
+	if cros-rustc_has_existing_checkout; then
+		einfo "Skipping unpack; checkout already exists"
+	else
+		ewarn "No existing cros-rustc checkout found. Did you" \
+			"remember to emerge dev-lang/rust-host?"
+		cros-rustc_src_unpack
 	fi
 }
 
 src_prepare() {
-	# Copy "unknown" vendor targets to create cros_sdk target triple
-	# variants as referred to in 0001-add-cros-targets.patch and RUSTC_TARGET_TRIPLES.
-	# armv7a is treated specially because the cros toolchain differs in
-	# more than just the vendor part of the target triple. The arch is
-	# armv7a in cros versus armv7.
-	pushd compiler/rustc_target/src/spec || die
-	sed -e 's:"unknown":"pc":g' x86_64_unknown_linux_gnu.rs >x86_64_pc_linux_gnu.rs || die
-	sed -e 's:"unknown":"cros":g' x86_64_unknown_linux_gnu.rs >x86_64_cros_linux_gnu.rs || die
-	sed -e 's:"unknown":"cros":g' armv7_unknown_linux_gnueabihf.rs >armv7a_cros_linux_gnueabihf.rs || die
-	sed -e 's:"unknown":"cros":g' aarch64_unknown_linux_gnu.rs >aarch64_cros_linux_gnu.rs || die
-	popd || die
-
-	# The miri tool is built because of 'extended = true' in cros-config.toml,
-	# but the build is busted. See the upstream issue: [https://github.com/rust-
-	# lang/rust/issues/56576]. Because miri isn't installed or needed, this sed
-	# script eradicates the command that builds it during the bootstrap script.
-	pushd src/bootstrap || die
-	sed -i 's@tool::Miri,@@g' builder.rs
-	popd || die
-
-	# Tsk. Tsk. The rust makefile for LLVM's compiler-rt uses -ffreestanding
-	# but one of the files includes <stdlib.h> causing occasional problems
-	# with MB_LEN_MAX. See crbug.com/730845 for the thrilling details. This
-	# line patches over the problematic include.
-	sed -e 's:#include <stdlib.h>:void abort(void);:g' \
-		-i "${ECONF_SOURCE:-.}"/src/llvm-project/compiler-rt/lib/builtins/int_util.c || die
-
-	# For the rustc_llvm module, the build will link with -nodefaultlibs and manually choose the
-	# std C++ library. For x86_64 Linux, the build script always chooses libstdc++ which will not
-	# work if LLVM was built with USE="default-libcxx". This snippet changes that choice to libc++
-	# in the case that clang++ defaults to libc++.
-	if "${CXX}" -### -x c++ - < /dev/null 2>&1 | grep -q -e '-lc++'; then
-		sed -i 's:"stdc++":"c++":g' compiler/rustc_llvm/build.rs || die
+	if cros-rustc_has_existing_checkout; then
+		einfo "Skipping src_prepare; checkout already exists"
+		# `src_prepare` requires this to be called before exiting. The
+		# actual use of user patches with this ebuild is not supported.
+		eapply_user
+	else
+		cros-rustc_src_prepare
 	fi
-
-	default
-}
-
-src_configure() {
-	local targets=""
-	local tt
-	for tt in "${RUSTC_TARGET_TRIPLES[@]}" "${RUSTC_BARE_TARGET_TRIPLES[@]}" ; do
-		targets+="\"${tt}\", "
-	done
-
-	local config=cros-config.toml
-	cat > "${config}" <<EOF
-[build]
-target = [${targets}]
-cargo = "/opt/rust-bootstrap-${BOOTSTRAP_VERSION}/bin/cargo"
-rustc = "/opt/rust-bootstrap-${BOOTSTRAP_VERSION}/bin/rustc"
-docs = false
-submodules = false
-python = "${EPYTHON}"
-vendor = true
-extended = true
-tools = ["cargo", "rustfmt", "clippy", "cargofmt"]
-sanitizers = true
-profiler = true
-
-[llvm]
-ninja = true
-targets = "AArch64;ARM;X86"
-
-[install]
-prefix = "${ED}usr"
-libdir = "$(get_libdir)"
-mandir = "share/man"
-
-[rust]
-default-linker = "${CBUILD}-clang"
-description = "${PF}"
-channel = "nightly"
-codegen-units = 0
-llvm-libunwind = 'in-tree'
-codegen-tests = false
-new-symbol-mangling = true
-
-EOF
-	for tt in "${RUSTC_TARGET_TRIPLES[@]}" ; do
-		cat >> cros-config.toml <<EOF
-[target."${tt}"]
-cc = "${tt}-clang"
-cxx = "${tt}-clang++"
-linker = "${tt}-clang++"
-
-EOF
-	done
 }
 
 src_compile() {
-	${EPYTHON} x.py build --stage 2 --config cros-config.toml || die
-
-	# Remove the src/rust symlink which will be dangling after sources are
-	# removed, and the containing src directory.
-	rm "${S}/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/src/rust" || die
-	rmdir "${S}/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/src" || die
+	local keep_stages=()
+	if cros-rustc_has_existing_stage1_build; then
+		einfo "Stage1 build exists; instructing x.py to use it"
+		keep_stages=("--keep-stage=0" "--keep-stage=1")
+	fi
+	cros-rustc_src_compile "${keep_stages[@]}" library/std
 }
 
 src_install() {
-	local obj="build/x86_64-unknown-linux-gnu/stage2"
-	local tools="${obj}-tools/x86_64-unknown-linux-gnu/release/"
-	dobin "${obj}/bin/rustc" "${obj}/bin/rustdoc"
-	dobin "${tools}/cargo"
-	dobin "${tools}/rustfmt" "${tools}/cargo-fmt"
-	dobin "${tools}/clippy-driver" "${tools}/cargo-clippy"
-	dobin src/etc/rust-gdb src/etc/rust-lldb
-	insinto "/usr/$(get_libdir)"
-	doins -r "${obj}/lib/"*
-	doins -r "${obj}/lib64/"*
-
-	# Install miscellaneous LLVM tools.
-	#
-	# These tools are already provided in the SDK, but they're built with
-	# the version of LLVM built by sys-devel/llvm. Rust uses an independent
-	# version of LLVM, so the use of these tools is sometimes necessary to
-	# produce artifacts that work with `rustc` and such.
-	#
-	# Our long-term plan is to have Rust using the same version of LLVM as
-	# sys-devel/llvm. When that happens, all of the below will be removed, with
-	# the expectation that users will migrate to the LLVM tools on `$PATH`.
-	local llvm_tools="build/x86_64-unknown-linux-gnu/llvm/bin"
-	exeinto "/usr/libexec/rust"
-	doexe "${llvm_tools}/llvm-profdata"
+	local obj="${CROS_RUSTC_BUILD_DIR}/x86_64-unknown-linux-gnu/stage2"
+	local triple
+	for triple in "${RUSTC_TARGET_TRIPLES[@]}" "${RUSTC_BARE_TARGET_TRIPLES[@]}"; do
+		insinto "/usr/$(get_libdir)/rustlib/${triple}"
+		doins -r "${obj}/lib64/rustlib/${triple}/"*
+	done
 }
diff --git a/eclass/cros-rustc.eclass b/eclass/cros-rustc.eclass
new file mode 100644
index 0000000..9708372
--- /dev/null
+++ b/eclass/cros-rustc.eclass
@@ -0,0 +1,260 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: cros-rustc.eclass
+# @MAINTAINER:
+# The Chromium OS Toolchain Team <chromeos-toolchain@google.com>
+# @BUGREPORTS:
+# Please report bugs via
+# https://issuetracker.google.com/issues/new?component=1038090&template=1576440
+# @VCSURL: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/HEAD/eclass/@ECLASS@
+# @BLURB: Eclass for building CrOS' Rust toolchain.
+# @DESCRIPTION:
+# This eclass is used to build both dev-lang/rust-host and dev-lang/rust.
+#
+# dev-lang/rust-host is an ebuild that provides all artifacts necessary for
+# building Rust for the host. dev-lang/rust supplements this with libraries for
+# cross-compiling. We maintain this split because we need to build Rust
+# binaries for the host prior to cross-* libraries being available.
+#
+# An important concept when building dev-lang/rust-host and dev-lang/rust is
+# continuity: these packages are expected to be built from _identical_ Rust
+# sources. This assumption:
+# - doesn't restrict us in any meaningful way,
+# - keeps us more consistent with upstream flows for building `rustc`, and
+# - allows us to significantly cut down on the build time of dev-lang/rust,
+#   since dev-lang/rust can skip unpacking sources, configuring them, and
+#   rebuilding LLVM + stage0 + stage1.
+#
+# Moreover, if you want to make meaningful changes to Rust, you'll need to
+# always reemerge _both_ dev-lang/rust-host and dev-lang/rust. dev-lang/rust
+# assumes that the sources unpacked by dev-lang/rust-host, if present, are
+# identical to the ones it will build. dev-lang/rust-host always starts with a
+# clean slate.
+
+if [[ -z ${_ECLASS_CROS_RUSTC} ]]; then
+_ECLASS_CROS_RUSTC="1"
+
+# Check for EAPI 7+.
+case "${EAPI:-0}" in
+[0123456]) die "unsupported EAPI (${EAPI}) in eclass (${ECLASS})" ;;
+esac
+
+EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile
+
+PYTHON_COMPAT=( python3_{6..9} )
+inherit python-any-r1 toolchain-funcs
+
+# @ECLASS-VARIABLE: RUSTC_TARGET_TRIPLES
+# @DEFAULT_UNSET
+# @REQUIRED
+# @DESCRIPTION:
+# This is the list of target triples for rustc as they appear in the cros_sdk.
+# cros-rust_src_configure instructs cros-rust_src_compile to use
+# "${triple}-clang" when building each one of these.
+
+# @ECLASS-VARIABLE: RUSTC_BARE_TARGET_TRIPLES
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# These are the triples we use GCC with. `*-cros-*` triples should not be
+# included here.
+
+# There's a fair amount of direct commonality between dev-lang/rust and
+# dev-lang/rust-host. Capture that here.
+ABI_VER="$(ver_cut 1-2)"
+SLOT="stable/${ABI_VER}"
+MY_P="rustc-${PV}"
+SRC="${MY_P}-src.tar.gz"
+
+# The version of rust-bootstrap that we're using to build our current Rust
+# toolchain. This is generally the version released prior to the current one,
+# since Rust uses the beta compiler to build the nightly compiler.
+BOOTSTRAP_VERSION="1.57.0"
+
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.gz"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+
+RESTRICT="binchecks strip"
+
+DEPEND="${PYTHON_DEPS}
+	>=dev-libs/libxml2-2.9.6
+	>=dev-lang/perl-5.0
+"
+
+BDEPEND="dev-lang/rust-bootstrap:${BOOTSTRAP_VERSION}"
+
+PATCHES=(
+	"${FILESDIR}/rust-${PV}-add-cros-targets.patch"
+	"${FILESDIR}/rust-${PV}-fix-rpath.patch"
+	"${FILESDIR}/rust-${PV}-Revert-CMake-Unconditionally-add-.h-and-.td-files-to.patch"
+	"${FILESDIR}/rust-${PV}-no-test-on-build.patch"
+	"${FILESDIR}/rust-${PV}-sanitizer-supported.patch"
+	"${FILESDIR}/rust-${PV}-cc.patch"
+	"${FILESDIR}/rust-${PV}-revert-libunwind-build.patch"
+	"${FILESDIR}/rust-${PV}-ld-argv0.patch"
+	"${FILESDIR}/rust-${PV}-Handle-sparse-git-repo-without-erroring.patch"
+	"${FILESDIR}/rust-${PV}-disable-mutable-noalias.patch"
+	"${FILESDIR}/rust-${PV}-add-armv7a-sanitizers.patch"
+	"${FILESDIR}/rust-${PV}-fix-libunwind-backtrace-visibility.patch"
+)
+
+# Locations where we cache our build/src dirs.
+CROS_RUSTC_DIR="${SYSROOT}/var/cache/portage/${CATEGORY}/rust-artifacts"
+CROS_RUSTC_BUILD_DIR="${CROS_RUSTC_DIR}/build"
+CROS_RUSTC_SRC_DIR="${CROS_RUSTC_DIR}/src"
+
+S="${CROS_RUSTC_SRC_DIR}/${MY_P}-src"
+
+_CROS_RUSTC_PREPARED_STAMP="${CROS_RUSTC_SRC_DIR}/cros-rust-prepared"
+_CROS_RUSTC_STAGE1_EXISTS_STAMP="${CROS_RUSTC_BUILD_DIR}/cros-rust-has-stage1-build"
+
+# @FUNCTION: cros-rustc_has_existing_checkout
+# @DESCRIPTION:
+# Tests whether we have a properly src_prepare'd checkout in ${CROS_RUSTC_DIR}.
+cros-rustc_has_existing_checkout() {
+	[[ -e "${_CROS_RUSTC_PREPARED_STAMP}" ]]
+}
+
+# @FUNCTION: cros-rustc_has_existing_stage1_build
+# @DESCRIPTION:
+# Tests whether ${CROS_RUSTC_BUILD_DIR} has a valid stage1 toolchain available.
+cros-rustc_has_existing_stage1_build() {
+	[[ -e "${_CROS_RUSTC_STAGE1_EXISTS_STAMP}" ]]
+}
+
+cros-rustc_pkg_setup() {
+	python-any-r1_pkg_setup
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		addwrite "${CROS_RUSTC_DIR}"
+		mkdir -p -m 755 "${CROS_RUSTC_DIR}"
+		chown "${PORTAGE_USERNAME}:${PORTAGE_GRPNAME}" "${CROS_RUSTC_DIR}"
+	fi
+}
+
+cros-rustc_src_unpack() {
+	local dirs=( "${CROS_RUSTC_BUILD_DIR}" "${CROS_RUSTC_SRC_DIR}" )
+	if [[ -e "${CROS_RUSTC_SRC_DIR}" || -e "${CROS_RUSTC_BUILD_DIR}" ]]; then
+		einfo "Removing old source/build directories..."
+		rm -rf "${dirs[@]}"
+	fi
+
+	mkdir -p -m 755 "${dirs[@]}"
+	(cd "${CROS_RUSTC_SRC_DIR}" && default)
+}
+
+cros-rustc_src_prepare() {
+	# Copy "unknown" vendor targets to create cros_sdk target triple
+	# variants as referred to in 0001-add-cros-targets.patch and
+	# RUSTC_TARGET_TRIPLES. armv7a is treated specially because the cros
+	# toolchain differs in more than just the vendor part of the target
+	# triple. The arch is armv7a in cros versus armv7.
+	pushd compiler/rustc_target/src/spec || die
+	sed -e 's:"unknown":"pc":g' x86_64_unknown_linux_gnu.rs >x86_64_pc_linux_gnu.rs || die
+	sed -e 's:"unknown":"cros":g' x86_64_unknown_linux_gnu.rs >x86_64_cros_linux_gnu.rs || die
+	sed -e 's:"unknown":"cros":g' armv7_unknown_linux_gnueabihf.rs >armv7a_cros_linux_gnueabihf.rs || die
+	sed -e 's:"unknown":"cros":g' aarch64_unknown_linux_gnu.rs >aarch64_cros_linux_gnu.rs || die
+	popd || die
+
+	# The miri tool is built because of 'extended = true' in
+	# cros-config.toml, but the build is busted. See the upstream issue:
+	# [https://github.com/rust- lang/rust/issues/56576]. Because miri isn't
+	# installed or needed, this sed script eradicates the command that
+	# builds it during the bootstrap script.
+	pushd src/bootstrap || die
+	sed -i 's@tool::Miri,@@g' builder.rs
+	popd || die
+
+	# Tsk. Tsk. The rust makefile for LLVM's compiler-rt uses -ffreestanding
+	# but one of the files includes <stdlib.h> causing occasional problems
+	# with MB_LEN_MAX. See crbug.com/730845 for the thrilling details. This
+	# line patches over the problematic include.
+	sed -e 's:#include <stdlib.h>:void abort(void);:g' \
+		-i "${ECONF_SOURCE:-.}"/src/llvm-project/compiler-rt/lib/builtins/int_util.c || die
+
+	# For the rustc_llvm module, the build will link with -nodefaultlibs and
+	# manually choose the std C++ library. For x86_64 Linux, the build
+	# script always chooses libstdc++ which will not work if LLVM was built
+	# with USE="default-libcxx". This snippet changes that choice to libc++
+	# in the case that clang++ defaults to libc++.
+	if "${CXX}" -### -x c++ - < /dev/null 2>&1 | grep -q -e '-lc++'; then
+		sed -i 's:"stdc++":"c++":g' compiler/rustc_llvm/build.rs || die
+	fi
+
+	default
+
+	touch "${_CROS_RUSTC_PREPARED_STAMP}"
+}
+
+cros-rustc_src_configure() {
+	tc-export PKG_CONFIG
+
+	local targets=""
+	local tt
+	for tt in "${RUSTC_TARGET_TRIPLES[@]}" "${RUSTC_BARE_TARGET_TRIPLES[@]}" ; do
+		targets+="\"${tt}\", "
+	done
+
+	local config=cros-config.toml
+	cat > "${config}" <<EOF
+[build]
+target = [${targets}]
+cargo = "/opt/rust-bootstrap-${BOOTSTRAP_VERSION}/bin/cargo"
+rustc = "/opt/rust-bootstrap-${BOOTSTRAP_VERSION}/bin/rustc"
+docs = false
+submodules = false
+python = "${EPYTHON}"
+vendor = true
+extended = true
+tools = ["cargo", "rustfmt", "clippy", "cargofmt"]
+sanitizers = true
+profiler = true
+build-dir = "${CROS_RUSTC_BUILD_DIR}"
+
+[llvm]
+ninja = true
+targets = "AArch64;ARM;X86"
+
+[install]
+prefix = "${ED}usr"
+libdir = "$(get_libdir)"
+mandir = "share/man"
+
+[rust]
+default-linker = "${CBUILD}-clang"
+description = "${PF}"
+channel = "nightly"
+codegen-units = 0
+llvm-libunwind = 'in-tree'
+codegen-tests = false
+new-symbol-mangling = true
+
+EOF
+
+	for tt in "${RUSTC_TARGET_TRIPLES[@]}" ; do
+		cat >> "${config}" <<EOF
+[target."${tt}"]
+cc = "${tt}-clang"
+cxx = "${tt}-clang++"
+linker = "${tt}-clang++"
+
+EOF
+	done
+}
+
+cros-rustc_src_compile() {
+	${EPYTHON} x.py build --stage 2 --config cros-config.toml "$@" || die
+
+	# Remove the src/rust symlink which will be dangling after sources are
+	# removed, and the containing src directory.
+	rm "${CROS_RUSTC_BUILD_DIR}/x86_64-unknown-linux-gnu/stage2/lib/rustlib/src/rust" || die
+	rmdir "${CROS_RUSTC_BUILD_DIR}/x86_64-unknown-linux-gnu/stage2/lib/rustlib/src" || die
+
+	# Since we always build for stage2, we're guaranteed that stage1 exists
+	# at this point.
+	touch "${_CROS_RUSTC_STAGE1_EXISTS_STAMP}"
+}
+fi
diff --git a/profiles/base/profile.bashrc b/profiles/base/profile.bashrc
index 4ce0343..f5c3244 100644
--- a/profiles/base/profile.bashrc
+++ b/profiles/base/profile.bashrc
@@ -196,7 +196,6 @@
 		dev-util/shellcheck:*) return 1;;
 		dev-haskell/*) return 1;;
 		dev-lang/ghc:*) return 1;;
-		dev-lang/rust:*) return 1;;
 		dev-python/pycairo:1.20*) return 1;;
 		media-video/ffmpeg:4.4*) return 1;;
 		net-analyzer/wireshark:3.4.*) return 1;;
@@ -212,7 +211,6 @@
 		app-text/xmlto:*|\
 		cross-*/gdb:*|\
 		dev-embedded/u-boot-tools:2018.05*|\
-		dev-lang/rust:*|\
 		dev-libs/libffi:3.1*|\
 		dev-libs/libusb-compat:0.1.5*|\
 		dev-libs/lzo:*|\
diff --git a/virtual/rust/rust-1.58.1-r1.ebuild b/virtual/rust/rust-1.58.1-r1.ebuild
new file mode 120000
index 0000000..8a2616e
--- /dev/null
+++ b/virtual/rust/rust-1.58.1-r1.ebuild
@@ -0,0 +1 @@
+rust-1.58.1.ebuild
\ No newline at end of file
diff --git a/virtual/target-chromium-os-sdk/target-chromium-os-sdk-9999.ebuild b/virtual/target-chromium-os-sdk/target-chromium-os-sdk-9999.ebuild
index 3c73435..84a332b 100644
--- a/virtual/target-chromium-os-sdk/target-chromium-os-sdk-9999.ebuild
+++ b/virtual/target-chromium-os-sdk/target-chromium-os-sdk-9999.ebuild
@@ -34,6 +34,7 @@
 	app-arch/p7zip
 	app-arch/tar
 	app-shells/bash
+	dev-lang/rust-host
 	net-misc/iputils
 	net-misc/rsync
 	sys-apps/baselayout
