diff mbox series

[3/3] rust: Upgrade 1.80.1->1.81.0

Message ID 20241227065337.1257972-3-Deepesh.Varatharajan@windriver.com
State New
Headers show
Series [1/3] rust-target-config: Update the data layout for x86 and ppc targets. | expand

Commit Message

Varatharajan, Deepesh Dec. 27, 2024, 6:53 a.m. UTC
From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

https://blog.rust-lang.org/2024/09/05/Rust-1.81.0.html

Dropped:
0001-cargo-do-not-write-host-information-into-compilation.patch
hardcodepaths.patch

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
---
 meta/conf/distro/include/tcmode-default.inc   |  2 +-
 .../rust/{cargo_1.80.1.bb => cargo_1.81.0.bb} |  0
 ...te-host-information-into-compilation.patch | 51 ------------
 .../rust/files/hardcodepaths.patch            | 46 -----------
 ...epro-issue-fix-with-cc-crate-hashmap.patch | 53 ++++++++++++-
 ...ibstd-rs_1.80.1.bb => libstd-rs_1.81.0.bb} |  0
 ....80.1.bb => rust-cross-canadian_1.81.0.bb} |  0
 ...ust-llvm_1.80.1.bb => rust-llvm_1.81.0.bb} |  0
 meta/recipes-devtools/rust/rust-snapshot.inc  | 78 +++++++++----------
 meta/recipes-devtools/rust/rust-source.inc    |  4 +-
 .../rust/{rust_1.80.1.bb => rust_1.81.0.bb}   |  0
 11 files changed, 93 insertions(+), 141 deletions(-)
 rename meta/recipes-devtools/rust/{cargo_1.80.1.bb => cargo_1.81.0.bb} (100%)
 delete mode 100644 meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch
 delete mode 100644 meta/recipes-devtools/rust/files/hardcodepaths.patch
 rename meta/recipes-devtools/rust/{libstd-rs_1.80.1.bb => libstd-rs_1.81.0.bb} (100%)
 rename meta/recipes-devtools/rust/{rust-cross-canadian_1.80.1.bb => rust-cross-canadian_1.81.0.bb} (100%)
 rename meta/recipes-devtools/rust/{rust-llvm_1.80.1.bb => rust-llvm_1.81.0.bb} (100%)
 rename meta/recipes-devtools/rust/{rust_1.80.1.bb => rust_1.81.0.bb} (100%)

Comments

Varatharajan, Deepesh Dec. 27, 2024, 7:05 a.m. UTC | #1
Testing Summary for rust_1.81.0

Target pass skipped

x86_64 18646 418

x86 18468 596

ARM64 18496 568

ARM 18451 613

ppc 18418 646
Alexander Kanavin Dec. 27, 2024, 6:53 p.m. UTC | #2
On Fri, 27 Dec 2024 at 07:54, Varatharajan, Deepesh via
lists.openembedded.org
<deepesh.varatharajan=windriver.com@lists.openembedded.org> wrote:
> https://blog.rust-lang.org/2024/09/05/Rust-1.81.0.html
>
> Dropped:
> 0001-cargo-do-not-write-host-information-into-compilation.patch
> hardcodepaths.patch

You need to explain why the patches have been dropped, as they're both
marked 'Inappropriate'.

Have the issues been fixed upstream? How and where? Can you include
the pointers to the fixes?


> +diff --git a/vendor/cc-1.0.99/src/command_helpers.rs b/vendor/cc-1.0.99/src/command_helpers.rs
> +index fe919a5239..2b1f442019 100644
> +--- a/vendor/cc-1.0.99/src/command_helpers.rs
> ++++ b/vendor/cc-1.0.99/src/command_helpers.rs
> +@@ -257,6 +257,7 @@ fn wait_on_child(
> + /// and store them in the output Object.
> + pub(crate) fn objects_from_files(files: &[Arc<Path>], dst: &Path) -> Result<Vec<Object>, Error> {
> +     let mut objects = Vec::with_capacity(files.len());
> ++    let target_substring = ["rustc"];
> +     for file in files {
> +         let basename = file
> +             .file_name()
> +@@ -277,10 +278,29 @@ pub(crate) fn objects_from_files(files: &[Arc<Path>], dst: &Path) -> Result<Vec<
> +             })?
> +             .to_string_lossy();
> +
> ++        // Function to find the position of the first occurrence of the target substring
> ++        fn find_target_position(s: &str, targets: &[&str]) -> Option<usize> {
> ++            let mut pos = None;
> ++            for target in targets {
> ++                if let Some(index) = s.rfind(target) {
> ++                    //If a target is found and pos is None, set it
> ++                        if pos.is_none() || index < pos.unwrap() {
> ++                            pos = Some(index);
> ++                        }
> ++                }
> ++            }
> ++            pos
> ++        }
> ++
> ++        let filtered_dirname = if let Some(pos) = find_target_position(&dirname, &target_substring) {
> ++            dirname[pos..].to_string()  //Keep everything from the target substring onwards
> ++        }  else {
> ++            dirname.to_string()  //If target substring is not found, keep the original dirname
> ++        };
> +         // Hash the dirname. This should prevent conflicts if we have multiple
> +         // object files with the same filename in different subfolders.
> +         let mut hasher = hash_map::DefaultHasher::new();
> +-        hasher.write(dirname.to_string().as_bytes());
> ++        hasher.write(filtered_dirname.as_bytes());
> +         let obj = dst
> +             .join(format!("{:016x}-{}", hasher.finish(), basename))
> +             .with_extension("o");

Similarly, why this patch has this new addition? Is there an upstream
discussion related to it somewhere, or is it just multiple versions of
the same crate all needing the same fix?

Alex
diff mbox series

Patch

diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 8ccef0a4d8..c0817a2bf5 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -24,7 +24,7 @@  GLIBCVERSION ?= "2.40%"
 LINUXLIBCVERSION ?= "6.12%"
 QEMUVERSION ?= "9.2%"
 GOVERSION ?= "1.22%"
-RUSTVERSION ?= "1.80%"
+RUSTVERSION ?= "1.81%"
 
 PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
 PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
diff --git a/meta/recipes-devtools/rust/cargo_1.80.1.bb b/meta/recipes-devtools/rust/cargo_1.81.0.bb
similarity index 100%
rename from meta/recipes-devtools/rust/cargo_1.80.1.bb
rename to meta/recipes-devtools/rust/cargo_1.81.0.bb
diff --git a/meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch b/meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch
deleted file mode 100644
index 7579ea0b5f..0000000000
--- a/meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch
+++ /dev/null
@@ -1,51 +0,0 @@ 
-From 065d7c263091118437465d714d8a29dbb6296921 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 13 May 2024 14:57:54 +0200
-Subject: [PATCH] cargo: do not write host information into compilation unit
- hashes
-
-This breaks reproducibility in cross-builds where the cross-target
-can be the same, but build hosts are different, as seen with
-"rustc --version -v":
-...
-host: x86_64-unknown-linux-gnu
-
-vs.
-
-host: aarch64-unknown-linux-gnu
-
-This can possibly be improved by only hashing host info if the build
-is a native one (e.g. there's no --target option passed to cargo
-invocation) but I'm not sure how.
-
-Upstream-Status: Inappropriate [reported at https://github.com/rust-lang/cargo/issues/13922]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- .../src/cargo/core/compiler/context/compilation_files.rs      | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/tools/cargo/src/cargo/core/compiler/build_runner/compilation_files.rs b/src/tools/cargo/src/cargo/core/compiler/build_runner/compilation_files.rs
-index d83dbf10c..b2ad8d9f3 100644
---- a/src/tools/cargo/src/cargo/core/compiler/build_runner/compilation_files.rs
-+++ b/src/tools/cargo/src/cargo/core/compiler/build_runner/compilation_files.rs
-@@ -652,7 +652,7 @@ fn hash_rustc_version(bcx: &BuildContext<'_, '_>, hasher: &mut StableHasher) {
-     if vers.pre.is_empty() || bcx.gctx.cli_unstable().separate_nightlies {
-         // For stable, keep the artifacts separate. This helps if someone is
-         // testing multiple versions, to avoid recompiles.
--        bcx.rustc().verbose_version.hash(hasher);
-+        //bcx.rustc().verbose_version.hash(hasher);
-         return;
-     }
-     // On "nightly"/"beta"/"dev"/etc, keep each "channel" separate. Don't hash
-@@ -665,7 +665,7 @@ fn hash_rustc_version(bcx: &BuildContext<'_, '_>, hasher: &mut StableHasher) {
-     // Keep "host" since some people switch hosts to implicitly change
-     // targets, (like gnu vs musl or gnu vs msvc). In the future, we may want
-     // to consider hashing `unit.kind.short_name()` instead.
--    bcx.rustc().host.hash(hasher);
-+    //bcx.rustc().host.hash(hasher);
-     // None of the other lines are important. Currently they are:
-     // binary: rustc  <-- or "rustdoc"
-     // commit-hash: 38114ff16e7856f98b2b4be7ab4cd29b38bed59a
--- 
-2.39.2
-
diff --git a/meta/recipes-devtools/rust/files/hardcodepaths.patch b/meta/recipes-devtools/rust/files/hardcodepaths.patch
deleted file mode 100644
index 696654227e..0000000000
--- a/meta/recipes-devtools/rust/files/hardcodepaths.patch
+++ /dev/null
@@ -1,46 +0,0 @@ 
-When building for the target, some build paths end up embedded in the binaries.
-These changes remove that. Further investigation is needed to work out the way
-to resolve these issues properly upstream.
-
-Upstream-Status: Inappropriate [patches need rework]
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-
-diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
-index b4b2ab1e1f8a..8bb3e3f0557c 100644
---- a/compiler/rustc_codegen_llvm/src/context.rs
-+++ b/compiler/rustc_codegen_llvm/src/context.rs
-@@ -34,7 +34,6 @@
- use smallvec::SmallVec;
-
- use libc::c_uint;
--use std::borrow::Borrow;
- use std::cell::{Cell, RefCell};
- use std::ffi::CStr;
- use std::str;
-@@ -155,25 +154,6 @@
-         }
-     }
- 
--    // Ensure the data-layout values hardcoded remain the defaults.
--    {
--        let tm = crate::back::write::create_informational_target_machine(tcx.sess);
--        llvm::LLVMRustSetDataLayoutFromTargetMachine(llmod, &tm);
--
--        let llvm_data_layout = llvm::LLVMGetDataLayoutStr(llmod);
--        let llvm_data_layout = str::from_utf8(CStr::from_ptr(llvm_data_layout).to_bytes())
--            .expect("got a non-UTF8 data-layout from LLVM");
--
--        if target_data_layout != llvm_data_layout {
--            tcx.dcx().emit_err(crate::errors::MismatchedDataLayout {
--                rustc_target: sess.opts.target_triple.to_string().as_str(),
--                rustc_layout: target_data_layout.as_str(),
--                llvm_target: sess.target.llvm_target.borrow(),
--                llvm_layout: llvm_data_layout,
--            });
--        }
--    }
--
-     let data_layout = SmallCStr::new(&target_data_layout);
-     llvm::LLVMSetDataLayout(llmod, data_layout.as_ptr());
-
diff --git a/meta/recipes-devtools/rust/files/repro-issue-fix-with-cc-crate-hashmap.patch b/meta/recipes-devtools/rust/files/repro-issue-fix-with-cc-crate-hashmap.patch
index e3f57e764c..e052c32b81 100644
--- a/meta/recipes-devtools/rust/files/repro-issue-fix-with-cc-crate-hashmap.patch
+++ b/meta/recipes-devtools/rust/files/repro-issue-fix-with-cc-crate-hashmap.patch
@@ -1,4 +1,4 @@ 
-rust: reproducibility issue fix with v1.80
+rust: reproducibility issue fix with v1.81
 
 A few crates are using the updated version of the 'cc' crate and this is causing the generated object file names containing a unique hashmap id.
 By the following changes same hash values will be genarted even for diffrent build paths.
@@ -49,6 +49,57 @@  Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
          let obj = dst
              .join(format!("{:016x}-{}", hasher.finish(), basename))
              .with_extension("o");
+diff --git a/vendor/cc-1.0.99/src/command_helpers.rs b/vendor/cc-1.0.99/src/command_helpers.rs
+index fe919a5239..2b1f442019 100644
+--- a/vendor/cc-1.0.99/src/command_helpers.rs
++++ b/vendor/cc-1.0.99/src/command_helpers.rs
+@@ -257,6 +257,7 @@ fn wait_on_child(
+ /// and store them in the output Object.
+ pub(crate) fn objects_from_files(files: &[Arc<Path>], dst: &Path) -> Result<Vec<Object>, Error> {
+     let mut objects = Vec::with_capacity(files.len());
++    let target_substring = ["rustc"];
+     for file in files {
+         let basename = file
+             .file_name()
+@@ -277,10 +278,29 @@ pub(crate) fn objects_from_files(files: &[Arc<Path>], dst: &Path) -> Result<Vec<
+             })?
+             .to_string_lossy();
+
++        // Function to find the position of the first occurrence of the target substring
++        fn find_target_position(s: &str, targets: &[&str]) -> Option<usize> {
++            let mut pos = None;
++            for target in targets {
++                if let Some(index) = s.rfind(target) {
++                    //If a target is found and pos is None, set it
++                        if pos.is_none() || index < pos.unwrap() {
++                            pos = Some(index);
++                        }
++                }
++            }
++            pos
++        }
++
++        let filtered_dirname = if let Some(pos) = find_target_position(&dirname, &target_substring) {
++            dirname[pos..].to_string()  //Keep everything from the target substring onwards
++        }  else {
++            dirname.to_string()  //If target substring is not found, keep the original dirname
++        };
+         // Hash the dirname. This should prevent conflicts if we have multiple
+         // object files with the same filename in different subfolders.
+         let mut hasher = hash_map::DefaultHasher::new();
+-        hasher.write(dirname.to_string().as_bytes());
++        hasher.write(filtered_dirname.as_bytes());
+         let obj = dst
+             .join(format!("{:016x}-{}", hasher.finish(), basename))
+             .with_extension("o");
+diff --git a/vendor/cc-1.0.99/.cargo-checksum.json b/vendor/cc-1.0.99/.cargo-checksum.json
+index b070eeb322..ba768ff86f 100644
+--- a/vendor/cc-1.0.99/.cargo-checksum.json
++++ b/vendor/cc-1.0.99/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"3c555dbe1a698f12b66c8a5748ed52ff26ff7b8ebb12237c1a72a1cbe4b9392e","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"f1ddbede208a5b78333a25dac0a7598e678e9b601a7d99a791069bddaf180dfe","src/command_helpers.rs":"15afbc35930a5a53f00d74a8910cff35caeb5511c26642cffe5630377aced901","src/detect_compiler_family.c":"72903b91d7a28f49b39e7d730f4c9c4bb39fb901948fa1279cd08abf392f5a29","src/lib.rs":"92440d3adb5cb6ea05596d9ca860a205d3937dbf0fc959e524bac5f2b748c1af","src/parallel/async_executor.rs":"4ce24435fff6b6555b43fee042c16bd65d4150d0346567f246b9190d85b45983","src/parallel/job_token.rs":"352a0295c965c684904329d334f3b9889db3a9c3f201701f8db44e4d00e00515","src/parallel/mod.rs":"bd9c1334d17d138c281961c690b8d8118a2d6295a7d6cd7296826255436fa063","src/parallel/stderr.rs":"a2d18ba3f2e04deb9047ece9ab7ca5452d9a76b515afbe20a76307e31597f34b","src/target_info.rs":"342be00f6215e161d8163e272a2945bb9f52f171648e15e11d46800a73186955","src/tempfile.rs":"47a58e904ac07da6682004b5b615dc83250b253a8d3e8ba1b9bcaf6cdf4fd142","src/tool.rs":"e13c439a96d8311ba8d37b9d5522cd6997d94261cbb95517c82df70525acaa7f","src/windows/com.rs":"a2800ddb81215fff2bf618336f5c4ff8e8bdb746dd18b795873c7304b3f2a5e3","src/windows/find_tools.rs":"4c350cddbce1557682b7f40cd917cc4f131ad89ff2e34c23d629014ed8d7203e","src/windows/mod.rs":"42f1ad7fee35a17686b003e6aa520d3d1940d47d2f531d626e9ae0c48ba49005","src/windows/registry.rs":"c521b72c825e8095843e73482ffa810ed066ad8bb9f86e6db0c5c143c171aba1","src/windows/setup_config.rs":"754439cbab492afd44c9755abcbec1a41c9b2c358131cee2df13c0e996dbbec8","src/windows/vs_instances.rs":"76e3cee74b5fd38ddaf533bba11fe401667c50dda5f9d064099840893eaa7587","src/windows/winapi.rs":"250d51c1826d1a2329e9889dd9f058cfce253dbf2a678b076147c6cdb5db046c","src/windows/windows_sys.rs":"5a440eb39d8a0c176b66177e8753186797793bc5d7896292c408fb44c12dfed3"},"package":"96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"}
+\ No newline at end of file
++{"files":{"Cargo.toml":"3c555dbe1a698f12b66c8a5748ed52ff26ff7b8ebb12237c1a72a1cbe4b9392e","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"f1ddbede208a5b78333a25dac0a7598e678e9b601a7d99a791069bddaf180dfe","src/command_helpers.rs":"4c4a9ea55a109dbeada9e23d4ec963c257a56451b5fd16c7e4e8b97374f1a2ff","src/detect_compiler_family.c":"72903b91d7a28f49b39e7d730f4c9c4bb39fb901948fa1279cd08abf392f5a29","src/lib.rs":"92440d3adb5cb6ea05596d9ca860a205d3937dbf0fc959e524bac5f2b748c1af","src/parallel/async_executor.rs":"4ce24435fff6b6555b43fee042c16bd65d4150d0346567f246b9190d85b45983","src/parallel/job_token.rs":"352a0295c965c684904329d334f3b9889db3a9c3f201701f8db44e4d00e00515","src/parallel/mod.rs":"bd9c1334d17d138c281961c690b8d8118a2d6295a7d6cd7296826255436fa063","src/parallel/stderr.rs":"a2d18ba3f2e04deb9047ece9ab7ca5452d9a76b515afbe20a76307e31597f34b","src/target_info.rs":"342be00f6215e161d8163e272a2945bb9f52f171648e15e11d46800a73186955","src/tempfile.rs":"47a58e904ac07da6682004b5b615dc83250b253a8d3e8ba1b9bcaf6cdf4fd142","src/tool.rs":"e13c439a96d8311ba8d37b9d5522cd6997d94261cbb95517c82df70525acaa7f","src/windows/com.rs":"a2800ddb81215fff2bf618336f5c4ff8e8bdb746dd18b795873c7304b3f2a5e3","src/windows/find_tools.rs":"4c350cddbce1557682b7f40cd917cc4f131ad89ff2e34c23d629014ed8d7203e","src/windows/mod.rs":"42f1ad7fee35a17686b003e6aa520d3d1940d47d2f531d626e9ae0c48ba49005","src/windows/registry.rs":"c521b72c825e8095843e73482ffa810ed066ad8bb9f86e6db0c5c143c171aba1","src/windows/setup_config.rs":"754439cbab492afd44c9755abcbec1a41c9b2c358131cee2df13c0e996dbbec8","src/windows/vs_instances.rs":"76e3cee74b5fd38ddaf533bba11fe401667c50dda5f9d064099840893eaa7587","src/windows/winapi.rs":"250d51c1826d1a2329e9889dd9f058cfce253dbf2a678b076147c6cdb5db046c","src/windows/windows_sys.rs":"5a440eb39d8a0c176b66177e8753186797793bc5d7896292c408fb44c12dfed3"},"package":"96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"}
 --- a/vendor/cc-1.0.97/.cargo-checksum.json
 +++ b/vendor/cc-1.0.97/.cargo-checksum.json
 @@ -1 +1 @@
diff --git a/meta/recipes-devtools/rust/libstd-rs_1.80.1.bb b/meta/recipes-devtools/rust/libstd-rs_1.81.0.bb
similarity index 100%
rename from meta/recipes-devtools/rust/libstd-rs_1.80.1.bb
rename to meta/recipes-devtools/rust/libstd-rs_1.81.0.bb
diff --git a/meta/recipes-devtools/rust/rust-cross-canadian_1.80.1.bb b/meta/recipes-devtools/rust/rust-cross-canadian_1.81.0.bb
similarity index 100%
rename from meta/recipes-devtools/rust/rust-cross-canadian_1.80.1.bb
rename to meta/recipes-devtools/rust/rust-cross-canadian_1.81.0.bb
diff --git a/meta/recipes-devtools/rust/rust-llvm_1.80.1.bb b/meta/recipes-devtools/rust/rust-llvm_1.81.0.bb
similarity index 100%
rename from meta/recipes-devtools/rust/rust-llvm_1.80.1.bb
rename to meta/recipes-devtools/rust/rust-llvm_1.81.0.bb
diff --git a/meta/recipes-devtools/rust/rust-snapshot.inc b/meta/recipes-devtools/rust/rust-snapshot.inc
index 66d777f623..4446863576 100644
--- a/meta/recipes-devtools/rust/rust-snapshot.inc
+++ b/meta/recipes-devtools/rust/rust-snapshot.inc
@@ -4,56 +4,56 @@ 
 ## The exact (previous) version that has been used is specified in the source tarball.
 ## The version is replicated here.
 
-SNAPSHOT_VERSION = "1.79.0"
+SNAPSHOT_VERSION = "1.80.1"
 
-SRC_URI[cargo-snapshot-aarch64.sha256sum] = "4ca5e9bd141b0111387ea1aa0355f87eb8d0da52fbc616cefa4ecde4997aa65b"
-SRC_URI[clippy-snapshot-aarch64.sha256sum] = "77803cfff2ea0342f26b59eabec353bc43a1791012aa70855ecfea0fb7ae76ac"
-SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "519abf4757fbd8d7e3bb4e4cfdc362ded972c1d95f04675684df2d31e8c0899b"
-SRC_URI[rustc-snapshot-aarch64.sha256sum] = "9c847b42b81325d25a9240e33bf03fa8652f5dd321ae90a9a7a58b46bf124b17"
+SRC_URI[cargo-snapshot-aarch64.sha256sum] = "a8c4f1ab2f65e7579eb80153fd1ca9a0b365ca31ca6ae0ebd34156e0724dfc60"
+SRC_URI[clippy-snapshot-aarch64.sha256sum] = "3d522172f9797e65c609a640af7f4ac331525150c91f93e41798c5578e9523e9"
+SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "8fc4bfc3a5fe64f8530964a5ea3bda95e39357eff14d6a8bb24f010ecc912923"
+SRC_URI[rustc-snapshot-aarch64.sha256sum] = "fc21ca734504c3d0ccaf361f05cb491142c365ce8a326f942206b0199c49bbb4"
 
-SRC_URI[cargo-snapshot-i686.sha256sum] = "57bd43f363ebd399a38aa4ac3b137e9172706770f8b23479f9dd859c6ae779ab"
-SRC_URI[clippy-snapshot-i686.sha256sum] = "1d2612c829d946ca8ce32f2beacfde2c5ebed1fcacb720a58fb8e7786e4c82f2"
-SRC_URI[rust-std-snapshot-i686.sha256sum] = "158294f7c424ef75d84046b573f225c15d531745cc79d416a18c11aa8253830e"
-SRC_URI[rustc-snapshot-i686.sha256sum] = "4695a6eb66252d519510ca0a859803fff3a5041f71004404df0ccc9fbf0298d5"
+SRC_URI[cargo-snapshot-i686.sha256sum] = "b0f6d95c8a292b1276f30b1bca14197b28297c2fcd51974ef320d05497be3ca3"
+SRC_URI[clippy-snapshot-i686.sha256sum] = "a6899744ed734dd3a9f59631a943721bfe67ed6273e60dd67e8636820c1bfffd"
+SRC_URI[rust-std-snapshot-i686.sha256sum] = "6547876dcf243aeeeadaa38dbdce02c316b6f83305a5337520e02eaffc90834b"
+SRC_URI[rustc-snapshot-i686.sha256sum] = "b40c1437491d0a24756b6baabb14c2d4d0def199bc652f16e417addb171ac977"
 
-SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "354d498a8e36abe6ebd7bd859c8c7e7f02b029aa1897b9b60a87e9902ebb1079"
-SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "88eab562705d56a246a09f2897cbae9e37a66dc3cc2cab52c781cd78024f2b52"
-SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "88730b1b0d9c5252e041ed1fc2375d7292dc45132bcc8b6214490c578de240d3"
-SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "f39a604e1a5a5ba1c7342c9d98c9952b5ba252cda4b55cc6ae7bd6fca72f3889"
+SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "843272f7ab9b2f8c24f1747249275e0472fb2ede90f3a404e897559ddb898c18"
+SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "e4dba3b66bd8f811c8508fd3be1bf136b714018768d9f16a96f601ebd375bcc6"
+SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "68f30f3743b573e205ecc1733e1250ffb8d8d81e131c3b2f4a819b7e1e610d62"
+SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "5ae96e69573690aa48ffb9fecc62826ffb5d2fc280d19d1e54ab36ff48e28b68"
 
-SRC_URI[cargo-snapshot-powerpc.sha256sum] = "2a55e97ce512c27a012720bb2a0cd86554c1d734b5cb91b98f58af167cc0fde1"
-SRC_URI[clippy-snapshot-powerpc.sha256sum] = "1ae0bbe5835d9461a12f22d509787e6c11aac8335c677152a57a04f8d22cf755"
-SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "6aa2f351bc7dccb544781f4fecddb5ef67e05bb310c84e0106d968231384d9f4"
-SRC_URI[rustc-snapshot-powerpc.sha256sum] = "3b9a8067e97dd269a27fe91be163e046e85b47973f5d512c3368c49d332dacb1"
+SRC_URI[cargo-snapshot-powerpc.sha256sum] = "a88402d95f2959caaff20037144d3109a69ce3310e1dfbb27231dacd50fa2988"
+SRC_URI[clippy-snapshot-powerpc.sha256sum] = "ae1762dc8fd679d65154d5af9500c7539f55ec9d049ab736a910893d382fd6c0"
+SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "88e8144c25ef8347471dd53eea7af62e5b31eadf0788f4a82be7560f5a0be255"
+SRC_URI[rustc-snapshot-powerpc.sha256sum] = "5f435b48316a719c87fb27f49c0b37884cef7dd3ecba76df9db2a4008cc03458"
 
-SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "1e2ffcc41a2083be2f4733d534d5ee0e05fc2ace1f21033792a4e2497cbbfbe4"
-SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "0bceeb8dc5b48e5ea9cff67cdcf8488fe2afe44d7e75ca04669c7c0c2e02a0df"
-SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "af95929af71494ee3e6988ead07204ea05b6f2b729cdb1ffcc26db75e47bf318"
-SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "2295d50425ed5dfb028560ac0f9a611212d8deb43791a1d199419043157ab95e"
+SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "be2707eaa24f34775c98044f92c391a2c6037a2214adab9e83c62903001fb577"
+SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "a422a3b638c42f26ada441d2940a44a8c0f1ade9459f86d48a3d8fcc866bc60b"
+SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "cb5ad871a0a7efe7c270cbf319d006a84e8f8526acb22ce941f2840fd0e368c2"
+SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "e3257dc0790728498cf2773c3ca66d728381cc6d1f403969bd282223bd97aa3d"
 
-SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "bec32adad9f2cd1650ed24ee82fccf7329c68243cdef7cef1e720ccaea097dab"
-SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "6bb12041b6171e80598c0c04eb7e9bd07ab4fb4d654a9289618e3288a4d2f6c8"
-SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "3b5d53d70837d5ec942ec41a8da37ed932bbdc1e53f78dc54e218db458701588"
-SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "3b144840f179114cde3078909370bfb6928153d0ae303ac9848622c57cee3578"
+SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "a523cf21d751be597a19830136e3479b7f22d3642d95f53f78a11e770d971d28"
+SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "93ce75f4edf2c3b792714d33e279c5743d9d3ef841f8f2d8a7e76c9c7d74f952"
+SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "06633b26384cba594424ec02acf0d64d4724033a856a2e039a18a518cacf1d3e"
+SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "5f72f8723a2023b0bbd64cfc3d10959c4210b68579ad8e174809d17e1e2ead36"
 
-SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "83e28f3e02cce4a9d19841bcb40ec0c8ad4e9af9fb215c39876028e6e9e6baf1"
-SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "fbc978db4be2e6fdb1dbcb3ca00ee54c44dafd08930738f1c6aa7ae249685a34"
-SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "2b8af4060acb10f347c66a3477ae92151beba12192590ea40723dcf9b1f7f5b2"
-SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "1b952b8cd597060ac07bbe99cea382651ca6eee4ac2abe0a90303ccf2278e60e"
+SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "29e996af02293562f6ee79032a5414fffbf77e75cb7f0ba89053849986cb6303"
+SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "24465ce5fe8f04d9b54c31a2c5bcaba6d702925ac3cdec0af5b954643013db90"
+SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "1fbbe8df7596682466ae2fca534d5f6bae8b3f32577450e2632955268a786a06"
+SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "838d78ef8b9a11751b1dfb2cf2abfdc845deca8f0002c11930d54577b433cb93"
 
-SRC_URI[cargo-snapshot-s390x.sha256sum] = "5663e6ea018a13f1c87ac74de267829952ea979fbe5f8ee5c1c3531e25d1749c"
-SRC_URI[clippy-snapshot-s390x.sha256sum] = "c00bd892e0f29bbc2514f87c7521210ced8c175a41eee0a428e19a6ef157779f"
-SRC_URI[rust-std-snapshot-s390x.sha256sum] = "d70e710a5138871e8d972f195ced9f7aa639ccef23a87fa03cc527d2b9c3cd36"
-SRC_URI[rustc-snapshot-s390x.sha256sum] = "ef4b494fb7356b6e88a69b71378c04ae0f4a3c264adae84c9d4f3a1314eaa2b4"
+SRC_URI[cargo-snapshot-s390x.sha256sum] = "0c22278b4e8afa79de0cae798575c9ef258e73d0555b18a84efd5d042c69c6e2"
+SRC_URI[clippy-snapshot-s390x.sha256sum] = "52c3368de0e01b07f89f74a4b36279be1b7d2312b05253c7c9ccb50bc38f263a"
+SRC_URI[rust-std-snapshot-s390x.sha256sum] = "e732ce690fd63e3c2576bfe83a556031c4805c17b35b8a1c1a0ddde5cee31d46"
+SRC_URI[rustc-snapshot-s390x.sha256sum] = "0c06439db686645be36390969b503996608f25954eab2b7fd9a2915da6c0bd7b"
 
-SRC_URI[cargo-snapshot-x86_64.sha256sum] = "07fcadd27b645ad58ff4dae5ef166fd730311bbae8f25f6640fe1bfd2a1f3c3c"
-SRC_URI[clippy-snapshot-x86_64.sha256sum] = "3fb282ee97626e4f25c4f6faac3997859b89f13983dd6fa111e25182dfcb91fa"
-SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "2c914483c0882d44af2e50a181cbd2c953d672d50b31aa669ee2346cade1f108"
-SRC_URI[rustc-snapshot-x86_64.sha256sum] = "a04cf42022d0a5faf01c31082bfb1dde9c38409f0ca6da90a3e40faa03e797ae"
+SRC_URI[cargo-snapshot-x86_64.sha256sum] = "da9340b3249f08656cd4fe10e47aa292c7cd79903870a5863064731a00b5b27e"
+SRC_URI[clippy-snapshot-x86_64.sha256sum] = "e01d434e952821900f37824c797f87ed16db79e54fcbd2f396b2f1b5cb2e3c55"
+SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "b793405538d8b6ec1632779efa8835b07b8987db2008c5c9c809bc4b17dcb121"
+SRC_URI[rustc-snapshot-x86_64.sha256sum] = "0367f069b49560af5c61810530d4721ad13eecfcb48952e67a2c32be903d5043"
 
-SRC_URI[rust-std-snapshot-i586.sha256sum] = "9c38f2cd4c19196fcf113166237ab03512bf19ce5a7f13c3bfe0e5cc3317eb44"
+SRC_URI[rust-std-snapshot-i586.sha256sum] = "94927cdfa7cad391700b1a77730bb17aa364831ff6a6c40ce6500a14c1314647"
 
-SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "f7c7a73a8e5640f9d5aca6b26866b4da08cf3d3509ed1c4184309fb868acbff2"
+SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "ee7fa0104b019eec22750ac635e699d21dbb5430fc6982c495533900ec568d5b"
 
 SRC_URI += " \
     ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc
index c39c954c49..8484c94ef8 100644
--- a/meta/recipes-devtools/rust/rust-source.inc
+++ b/meta/recipes-devtools/rust/rust-source.inc
@@ -1,17 +1,15 @@ 
 RUST_VERSION ?= "${@d.getVar('PV').split('-')[0]}"
 
 SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;name=rust \
-            file://hardcodepaths.patch;patchdir=${RUSTSRC} \
             file://zlib-off64_t.patch;patchdir=${RUSTSRC} \
             file://rv32-rustix-libc-backend.patch;patchdir=${RUSTSRC} \
             file://rv32-cargo-rustix-0.38.28-fix.patch;patchdir=${RUSTSRC} \
-            file://0001-cargo-do-not-write-host-information-into-compilation.patch;patchdir=${RUSTSRC} \
             file://rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch;patchdir=${RUSTSRC} \
             file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
             file://repro-issue-fix-with-cc-crate-hashmap.patch;patchdir=${RUSTSRC} \
             file://oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "6ab79b70dc57737a1de378f212fcf8852d67fe6cf272d122a15b3ea13be77947"
+SRC_URI[rust.sha256sum] = "36217ef7e32f40a180e3d79bd666b4dfdaed49dd381023a5fb765fd12d0092ce"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/meta/recipes-devtools/rust/rust_1.80.1.bb b/meta/recipes-devtools/rust/rust_1.81.0.bb
similarity index 100%
rename from meta/recipes-devtools/rust/rust_1.80.1.bb
rename to meta/recipes-devtools/rust/rust_1.81.0.bb