From: Sunil Dora <[email protected]> Backport of rust-lang/rust commit f9d9939 [1] by jprochazk and mejrs. DocLinkResMap was an UnordMap, so its iteration order varied with the build host and that order reached the encoded rmeta. An FxIndexMap keeps it stable. The commit is in rust 1.99, so this only carries it until the next rust upgrade.
[1] https://github.com/rust-lang/rust/commit/f9d9939467a5185a72f0ee8da778a0b71fc966ae [YOCTO #16376] Signed-off-by: Sunil Dora <[email protected]> --- v2: upstream commit reference added as a footnote link. No code change. ...oc-link-metadata-order-deterministic.patch | 40 +++++++++++++++++++ meta/recipes-devtools/rust/rust-source.inc | 1 + 2 files changed, 41 insertions(+) create mode 100644 meta/recipes-devtools/rust/files/0008-rustc-hir-make-doc-link-metadata-order-deterministic.patch diff --git a/meta/recipes-devtools/rust/files/0008-rustc-hir-make-doc-link-metadata-order-deterministic.patch b/meta/recipes-devtools/rust/files/0008-rustc-hir-make-doc-link-metadata-order-deterministic.patch new file mode 100644 index 0000000000..8cd64f21bb --- /dev/null +++ b/meta/recipes-devtools/rust/files/0008-rustc-hir-make-doc-link-metadata-order-deterministic.patch @@ -0,0 +1,40 @@ +From 6630363e7bc9bc0926300e242aa538b8d92cdb95 Mon Sep 17 00:00:00 2001 +From: jprochazk <[email protected]> +Date: Tue, 15 Sep 2026 17:05:36 +0530 +Subject: [PATCH] make DocLinkResMap an FxIndexMap + +DocLinkResMap was an UnordMap, so its iteration order varied with the build +host and that order ended up in the encoded rmeta. An FxIndexMap keeps the +serialisation stable. Only the code change is carried here, not the +upstream run-make test. + +Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/f9d9939467a5185a72f0ee8da778a0b71fc966ae] + +Signed-off-by: Sunil Dora <[email protected]> +--- + compiler/rustc_hir/src/def.rs | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/compiler/rustc_hir/src/def.rs b/compiler/rustc_hir/src/def.rs +index d0300d6..e903c0c 100644 +--- a/compiler/rustc_hir/src/def.rs ++++ b/compiler/rustc_hir/src/def.rs +@@ -4,7 +4,7 @@ use std::fmt::Debug; + + use rustc_ast as ast; + use rustc_ast::NodeId; +-use rustc_data_structures::unord::UnordMap; ++use rustc_data_structures::fx::FxIndexMap; + use rustc_error_messages::{DiagArgValue, IntoDiagArg}; + use rustc_macros::{Decodable, Encodable, StableHash}; + use rustc_span::Symbol; +@@ -969,4 +969,6 @@ pub enum LifetimeRes { + ElidedAnchor { start: NodeId, end: NodeId }, + } + +-pub type DocLinkResMap = UnordMap<(Symbol, Namespace), Option<Res<NodeId>>>; ++// FxIndexMap is necessary because its data ends up in .rmeta files, so its ++// iteration order must be consistent. See #159677 for context. ++pub type DocLinkResMap = FxIndexMap<(Symbol, Namespace), Option<Res<NodeId>>>; +-- +2.43.0 diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc index a294201c6e..a50a3fd001 100644 --- a/meta/recipes-devtools/rust/rust-source.inc +++ b/meta/recipes-devtools/rust/rust-source.inc @@ -10,6 +10,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n file://0004-Backport-commits-from-rust-Fix-selftest-llvm23.patch;patchdir=${RUSTSRC} \ file://0005-rustc_codegen_llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch;patchdir=${RUSTSRC} \ file://0007-cargo-omit-host-triple-from-unit-metadata-hash.patch;patchdir=${RUSTSRC} \ + file://0008-rustc-hir-make-doc-link-metadata-order-deterministic.patch;patchdir=${RUSTSRC} \ " SRC_URI[rust.sha256sum] = "be1816e7f6c40abb90245ad6e024bed2a7e88d7dda4561e4d5470207df616b9f" -- 2.43.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#245985): https://lists.openembedded.org/g/openembedded-core/message/245985 Mute This Topic: https://lists.openembedded.org/mt/121280459/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
