commit: f4f70ee1505995aa065f5355ca65db203e32d894 Author: Miezhiko <Miezhiko <AT> gmail <DOT> com> AuthorDate: Mon Aug 9 06:21:20 2021 +0000 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> CommitDate: Mon Aug 9 19:03:22 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4f70ee1
dev-lang/rust: port fix for compile fault with +parallel +miri https://github.com/rust-lang/rust/issues/87623 Closes: https://github.com/gentoo/gentoo/pull/21923 Signed-off-by: Miezhiko <Miezhiko <AT> gmail.com> Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org> dev-lang/rust/files/1.54.0-parallel-miri.patch | 43 ++++++++++++++++++++++++++ dev-lang/rust/rust-1.54.0.ebuild | 1 + 2 files changed, 44 insertions(+) diff --git a/dev-lang/rust/files/1.54.0-parallel-miri.patch b/dev-lang/rust/files/1.54.0-parallel-miri.patch new file mode 100644 index 00000000000..68239d98d37 --- /dev/null +++ b/dev-lang/rust/files/1.54.0-parallel-miri.patch @@ -0,0 +1,43 @@ +From a789b49e4c0e7d742cc39713484596293d844537 Mon Sep 17 00:00:00 2001 +From: hyd-dev <yd-hu...@outlook.com> +Date: Fri, 30 Jul 2021 21:28:34 +0800 +Subject: [PATCH] Use `Lrc` instead of `Rc` in `MiriCompilerCalls::config()` + +--- + src/bin/miri.rs | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/tools/miri/src/bin/miri.rs b/src/tools/miri/src/bin/miri.rs +index 5a8f07263..18c393815 100644 +--- a/src/tools/miri/src/bin/miri.rs ++++ b/src/tools/miri/src/bin/miri.rs +@@ -1,5 +1,6 @@ + #![feature(rustc_private, bool_to_option, stmt_expr_attributes)] + ++extern crate rustc_data_structures; + extern crate rustc_driver; + extern crate rustc_errors; + extern crate rustc_hir; +@@ -12,12 +13,12 @@ use std::convert::TryFrom; + use std::env; + use std::num::NonZeroU64; + use std::path::PathBuf; +-use std::rc::Rc; + use std::str::FromStr; + + use hex::FromHexError; + use log::debug; + ++use rustc_data_structures::sync::Lrc; + use rustc_driver::Compilation; + use rustc_errors::emitter::{ColorConfig, HumanReadableErrorType}; + use rustc_hir::{self as hir, def_id::LOCAL_CRATE, Node}; +@@ -42,7 +43,7 @@ impl rustc_driver::Callbacks for MiriCompilerCalls { + // HACK: rustc will emit "crate ... required to be available in rlib format, but + // was not found in this form" errors once we use `tcx.dependency_formats()` if + // there's no rlib provided, so setting a dummy path here to workaround those errors. +- Rc::make_mut(&mut crate_source).rlib = Some((PathBuf::new(), PathKind::All)); ++ Lrc::make_mut(&mut crate_source).rlib = Some((PathBuf::new(), PathKind::All)); + crate_source + }; + }); diff --git a/dev-lang/rust/rust-1.54.0.ebuild b/dev-lang/rust/rust-1.54.0.ebuild index 8a51162e0f9..40f81de58ea 100644 --- a/dev-lang/rust/rust-1.54.0.ebuild +++ b/dev-lang/rust/rust-1.54.0.ebuild @@ -149,6 +149,7 @@ PATCHES=( "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch "${FILESDIR}"/1.53.0-rustversion-1.0.5.patch # https://github.com/rust-lang/rust/pull/86425 + "${FILESDIR}"/1.54.0-parallel-miri.patch # https://github.com/rust-lang/miri/pull/1863 ) S="${WORKDIR}/${MY_P}-src"