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}"