diff --git a/dev-lang/rust/rust-1.44.1.ebuild b/dev-lang/rust/rust-1.44.1.ebuild
index 3ddcdaa9e..f86c03217 100644
--- a/dev-lang/rust/rust-1.44.1.ebuild
+++ b/dev-lang/rust/rust-1.44.1.ebuild
@@ -18,7 +18,7 @@ else
 	SLOT="stable/${ABI_VER}"
 	MY_P="rustc-${PV}"
 	SRC="${MY_P}-src.tar.xz"
-	KEYWORDS="amd64 arm arm64 ppc64 x86"
+	KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
 fi
 
 RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1"
@@ -211,6 +211,19 @@ src_configure() {
 	fi
 
 	rust_target="$(rust_abi)"
+	llvm_libunwind="false"
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			if has_version sys-libs/llvm-libunwind; then
+				einfo "Linking with llvm-libunwind"
+				llvm_libunwind=true
+			else
+				einfo "Linking with gcc_s unwinder"
+				llvm_libunwind=false
+			fi
+		fi
+	fi
 
 	cat <<- EOF > "${S}"/config.toml
 		[llvm]
@@ -262,6 +275,7 @@ src_configure() {
 		lld = $(usex system-llvm false $(toml_usex wasm))
 		backtrace-on-ice = true
 		jemalloc = false
+		llvm-libunwind = ${llvm_libunwind}
 		[dist]
 		src-tarball = false
 	EOF
@@ -441,9 +455,9 @@ src_install() {
 	fi
 
 	dodoc COPYRIGHT
-	rm "${ED}/usr/share/doc/${P}"/*.old || die
-	rm "${ED}/usr/share/doc/${P}/LICENSE-APACHE" || die
-	rm "${ED}/usr/share/doc/${P}/LICENSE-MIT" || die
+	rm -f "${ED}/usr/share/doc/${P}"/*.old || die
+	rm -f "${ED}/usr/share/doc/${P}/LICENSE-APACHE" || die
+	rm -f "${ED}/usr/share/doc/${P}/LICENSE-MIT" || die
 
 	# note: eselect-rust adds EROOT to all paths below
 	cat <<-EOF > "${T}/provider-${P}"