From patchwork Wed Jul 23 19:05:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Scott Murray X-Patchwork-Id: 67364 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53D50C83F1A for ; Wed, 23 Jul 2025 19:06:09 +0000 (UTC) Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by mx.groups.io with SMTP id smtpd.web11.23591.1753297562025970171 for ; Wed, 23 Jul 2025 12:06:02 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@konsulko.com header.s=google header.b=BDKehLWd; spf=pass (domain: konsulko.com, ip: 209.85.222.173, mailfrom: scott.murray@konsulko.com) Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-7e334de8df9so29771585a.0 for ; Wed, 23 Jul 2025 12:06:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=konsulko.com; s=google; t=1753297561; x=1753902361; darn=lists.yoctoproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WWNVI5nj+Nu410C4LUi2ot4ZOxsvnjVcl4Q5aXDg3E8=; b=BDKehLWdRCUkIiX4IfDLz2jn6IWzX2m4d/MF+OJhuoHBBX4VUHA1EFzljar0r1SkJ9 gIXFUpW/3eGC3SUfda+LrTZIdM2NTrEhHsmFuat1xdxfq5W1UQl1FVROyv7VZS5FwsIO yrykZ0wrYTv8NRg/uGW6ij7u9AG2I3VO4QcZw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753297561; x=1753902361; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WWNVI5nj+Nu410C4LUi2ot4ZOxsvnjVcl4Q5aXDg3E8=; b=fkyi3hmatENVTg0sL3sYq2WSjqbWOfGhh0KtyrAEu/B2+ZBBuX85221h4SzuQyAQMG nmAvH5FmjDfA7lT7sEb4Q3yP8Voa9TI01tcsrVyMUEU/GT3P8Vey7suJRy5Hb89ImO4G l08zjJZP7xjJPIawf8bGD7LoDoEcqUYKHcwDowFy8nb+a0H9u3iFj4ulFuuU6DbnT9Ei Pkx2BtdKXULbJqu0uI2i4wVzHxKWPvlpYYtfG4E5kphWAdxItNr3QDZpNU772mSl9Z/h 9jO5YGVNqhgwErfDdRmqGCJX7zGalRWE7m9AHm6H5kM8jykHYxhqwZulfsiK60qSTg2D txLA== X-Gm-Message-State: AOJu0Ywnl7tL0dOpBPDl/btxv4HyjGnOVObM9K9tuOFxDBREgsyQV+qh ery8gure3aSsJiD5qvzWcvDgnoKzWYE/cIcQIxx1xj9WiiuwbQTg3DKL0Jaa3hUiwwxqeJVcxyt lauyE X-Gm-Gg: ASbGncv0NSXahU2YMLOzTDZEm4xguZnfegEaM7Kcu4a1LLIgXSM5QJudzON0s2sGyH1 ygt/DVzjk1MMKakv1q7f0rvmGaLIvx9QBL3rZTr+JVWxn4DxWgI1NwNeMZlu6P0L3spJXgTO47/ n4J9aabgaifEFLqADrc0o8q69YiQFWGIubxgxAm2KwsQ5eu9iOqwj2zbO9UfI3lXwoDUg2v4FzR uafeQu87xaapM6eKgAcLjCvekljBtnla3ULmIJPx7JiMMvmK6Rf1Rlz/yROgLJTk2UahXul3cwd 3LC9bujbaV6ZoLuvJCw776kUqJ9KKzRXgS9nlgUJW2hmutqNbDokvgTz7DaNhlvuAZz6l8VONZ3 Vo9MX1aiRKr0seqTeY+Sub6sp/R7kUdxB2UNnWekXSD3V4xlZLjNsIQUHShRDzdGUcjO2qiOrtQ == X-Google-Smtp-Source: AGHT+IFggcTIykTgKq8bqejeaADPj3ujS6DMXCzzFABI+L0QYn1WCSoEKMl5SPzvazm+VEIZytSndQ== X-Received: by 2002:a05:620a:2e2:b0:7e2:23c2:e55a with SMTP id af79cd13be357-7e62a17b624mr448182285a.27.1753297560091; Wed, 23 Jul 2025 12:06:00 -0700 (PDT) Received: from ghidorah.spiteful.org (107-179-213-3.cpe.teksavvy.com. [107.179.213.3]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7e356c75cf5sm703576085a.84.2025.07.23.12.05.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 12:05:59 -0700 (PDT) From: Scott Murray To: yocto-patches@lists.yoctoproject.org Cc: soumya.sambu@windriver.com Subject: [meta-lts-mixins][kirkstone/rust][PATCH 12/13] rust: Upgrade 1.86.0 -> 1.87.0 Date: Wed, 23 Jul 2025 15:05:31 -0400 Message-ID: <51bf94df1c7bd36db0cebfbf3882ff7476bd6af4.1753296167.git.scott.murray@konsulko.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 23 Jul 2025 19:06:09 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/1853 From: Yash Shinde Rust stable version updated to 1.87.0. https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/ * Update LLVM data-layout for arm64. LLVM requires matching data layouts and the aarch64 llvm data-layout was updated to to allow using 32-bit signed/unsigned pointers when building 64-bit targets using 270, 271 and 272 address spaces. https://github.com/rust-lang/rust/commit/e9853961452b56997cc127b51308879b9cd09482 https://github.com/llvm/llvm-project/commit/c9f27275c1330a325661bdf14fb3bc444a5e3648 * Rebase existing patches with v1.87.0. * Two tests from the `ui` and `codegen` modules now fail only on riscv64. Enable them on arm32/64 and x86-32/64 targets, while restricting them on riscv64 via `only-` tags. Test Results Summary: +-----------+--------+---------+ | Machine | Passed | Ignored | +-----------+--------+---------+ | arm-32 | 28,320 | 901 | | arm-64 | 28,400 | 849 | | x86-32 | 28,285 | 885 | | x86-64 | 28,518 | 676 | | riscv-64 | 27,845 | 868 | +-----------+--------+---------+ * Backport triagebot.patch to skip tidy linkcheck when triagebot.toml is not present. Distribution tarballs won't include triagebot.toml, which causes tidy checks to fail. This backport ensures tidy checks can still run successfully even when the file is missing. https://github.com/rust-lang/rust/pull/142666/commits * During rust installation, some binaries were installed from 'stage2-tools' built path to '${D}${bindir}'. However, from v1.87 the stage2-tools are no longer built by default. Update logic to install from `stage1-tools` instead. Signed-off-by: Yash Shinde Signed-off-by: Richard Purdie (adapted from oe-core commit 16ce25e6970b4a50f6433606a0c87d22ec74ea5a) Signed-off-by: Scott Murray --- classes/rust-target-config.bbclass | 2 +- conf/layer.conf | 2 +- .../rust/{cargo_1.86.0.bb => cargo_1.87.0.bb} | 0 ...teps-tool.rs-switch-off-lto-for-rust.patch | 30 ++-- ...crease-timeout-in-process-sigpipe-ru.patch | 4 +- ...d-statically-in-rustc_driver-feature.patch | 11 +- .../rust/files/rust-oe-selftest.patch | 147 ++++++++++-------- recipes-devtools/rust/files/triagebot.patch | 32 ++++ ...ibstd-rs_1.86.0.bb => libstd-rs_1.87.0.bb} | 0 ....86.0.bb => rust-cross-canadian_1.87.0.bb} | 0 ...ust-llvm_1.86.0.bb => rust-llvm_1.87.0.bb} | 4 +- recipes-devtools/rust/rust-snapshot.inc | 78 +++++----- recipes-devtools/rust/rust-source.inc | 3 +- .../rust/{rust_1.86.0.bb => rust_1.87.0.bb} | 4 +- 14 files changed, 186 insertions(+), 131 deletions(-) rename recipes-devtools/rust/{cargo_1.86.0.bb => cargo_1.87.0.bb} (100%) create mode 100644 recipes-devtools/rust/files/triagebot.patch rename recipes-devtools/rust/{libstd-rs_1.86.0.bb => libstd-rs_1.87.0.bb} (100%) rename recipes-devtools/rust/{rust-cross-canadian_1.86.0.bb => rust-cross-canadian_1.87.0.bb} (100%) rename recipes-devtools/rust/{rust-llvm_1.86.0.bb => rust-llvm_1.87.0.bb} (96%) rename recipes-devtools/rust/{rust_1.86.0.bb => rust_1.87.0.bb} (99%) diff --git a/classes/rust-target-config.bbclass b/classes/rust-target-config.bbclass index a7dff5a..c4a86e3 100644 --- a/classes/rust-target-config.bbclass +++ b/classes/rust-target-config.bbclass @@ -146,7 +146,7 @@ MAX_ATOMIC_WIDTH[armv7-eabi] = "64" FEATURES[armv7-eabi] = "+v7,+vfp2,+thumb2" ## aarch64-unknown-linux-{gnu, musl} -DATA_LAYOUT[aarch64] = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" +DATA_LAYOUT[aarch64] = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" TARGET_ENDIAN[aarch64] = "little" TARGET_POINTER_WIDTH[aarch64] = "64" TARGET_C_INT_WIDTH[aarch64] = "32" diff --git a/conf/layer.conf b/conf/layer.conf index fa5f20e..a5ee815 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -15,7 +15,7 @@ LAYERDEPENDS_lts-rust-mixin = "core" LICENSE_PATH += "${LAYERDIR}/files/common-licenses" -RUSTVERSION ?= "1.86.0%" +RUSTVERSION ?= "1.87.0%" # This is not ideal, but it seems better to mask out the older oe-core # recipes completely since they will not work with this layer on top, diff --git a/recipes-devtools/rust/cargo_1.86.0.bb b/recipes-devtools/rust/cargo_1.87.0.bb similarity index 100% rename from recipes-devtools/rust/cargo_1.86.0.bb rename to recipes-devtools/rust/cargo_1.87.0.bb diff --git a/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch b/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch index 5e0f591..a7da69d 100644 --- a/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch +++ b/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch @@ -24,9 +24,9 @@ diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core index 087df2f8a..00790affb 100644 --- a/src/bootstrap/src/core/build_steps/tool.rs +++ b/src/bootstrap/src/core/build_steps/tool.rs -@@ -1,14 +1,11 @@ - use std::path::PathBuf; - use std::{env, fs}; +@@ -15,14 +15,12 @@ + #[cfg(feature = "tracing")] + use tracing::instrument; -use crate::core::build_steps::compile::is_lto_stage; use crate::core::build_steps::toolstate::ToolState; @@ -36,18 +36,20 @@ index 087df2f8a..00790affb 100644 - Builder, Cargo as CargoCommand, RunConfig, ShouldRun, Step, cargo_profile_var, -}; -use crate::core::config::{DebuginfoLevel, RustcLto, TargetSelection}; ++ +use crate::core::builder::{Builder, Cargo as CargoCommand, RunConfig, ShouldRun, Step}; +use crate::core::config::{DebuginfoLevel, TargetSelection}; use crate::utils::channel::GitInfo; use crate::utils::exec::{BootstrapCommand, command}; use crate::utils::helpers::{add_dylib_path, exe, t}; -@@ -658,19 +655,7 @@ - SourceType::InTree, - features.as_slice(), +@@ -148,20 +146,7 @@ + &self.extra_features, ); -- -- // rustdoc is performance sensitive, so apply LTO to it. -- if is_lto_stage(&build_compiler) { + +- if path.ends_with("/rustdoc") && +- // rustdoc is performance sensitive, so apply LTO to it. +- is_lto_stage(&self.compiler) +- { - let lto = match builder.config.rust_lto { - RustcLto::Off => Some("off"), - RustcLto::Thin => Some("thin"), @@ -60,14 +62,14 @@ index 087df2f8a..00790affb 100644 - } + cargo.rustflag("-Clto=off"); - let _guard = builder.msg_tool( - Kind::Build, + if !self.allow_features.is_empty() { + cargo.allow_features(self.allow_features); diff --git a/src/bootstrap/src/core/builder/mod.rs b/src/bootstrap/src/core/builder/mod.rs --- a/src/bootstrap/src/core/builder/mod.rs +++ b/src/bootstrap/src/core/builder/mod.rs -@@ -11,7 +11,7 @@ - - use clap::ValueEnum; +@@ -13,7 +13,7 @@ + #[cfg(feature = "tracing")] + use tracing::instrument; -pub use self::cargo::{Cargo, cargo_profile_var}; +pub use self::cargo::Cargo; diff --git a/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch b/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch index bb27ca3..5bd1abf 100644 --- a/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch +++ b/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch @@ -22,10 +22,10 @@ index 11f363d62..c12d66016 100644 +++ b/tests/ui/process/process-sigpipe.rs @@ -23,7 +23,7 @@ use std::thread; fn main() { - // Just in case `yes` doesn't check for EPIPE... + // Just in case `yes` or `while-echo` doesn't check for EPIPE... thread::spawn(|| { - thread::sleep_ms(5000); + thread::sleep_ms(50000); process::exit(1); }); - let output = process::Command::new("sh") + // QNX Neutrino does not have `yes`. Therefore, use `while-echo` for `nto` diff --git a/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch b/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch index 20a49d4..9bbbce0 100644 --- a/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch +++ b/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch @@ -200,11 +200,10 @@ diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/c index 27bbc8bd8f..a6fc4df2eb 100644 --- a/src/bootstrap/src/core/build_steps/compile.rs +++ b/src/bootstrap/src/core/build_steps/compile.rs -@@ -1940,24 +1940,8 @@ impl Step for Assemble { - let src_libdir = builder.sysroot_target_libdir(build_compiler, host); +@@ -2158,23 +2158,7 @@ for f in builder.read_dir(&src_libdir) { let filename = f.file_name().into_string().unwrap(); -- + - let is_proc_macro = proc_macros.contains(&filename); - let is_dylib_or_debug = is_dylib(&f.path()) || is_debug_info(&filename); - @@ -214,8 +213,7 @@ index 27bbc8bd8f..a6fc4df2eb 100644 - let can_be_rustc_dynamic_dep = if builder - .link_std_into_rustc_driver(target_compiler.host) - && !target_compiler.host.is_windows() -+ if (is_dylib(Path::new(&filename)) || is_debug_info(&filename)) && !proc_macros.contains(&filename) - { +- { - let is_std = filename.starts_with("std-") || filename.starts_with("libstd-"); - !is_std - } else { @@ -223,6 +221,7 @@ index 27bbc8bd8f..a6fc4df2eb 100644 - }; - - if is_dylib_or_debug && can_be_rustc_dynamic_dep && !is_proc_macro { - builder.copy_link(&f.path(), &rustc_libdir.join(&filename)); ++ if (is_dylib(Path::new(&filename)) || is_debug_info(&filename)) && !proc_macros.contains(&filename) { + builder.copy_link(&f.path(), &rustc_libdir.join(&filename), FileType::Regular); } } diff --git a/recipes-devtools/rust/files/rust-oe-selftest.patch b/recipes-devtools/rust/files/rust-oe-selftest.patch index 49d8507..b7ef806 100644 --- a/recipes-devtools/rust/files/rust-oe-selftest.patch +++ b/recipes-devtools/rust/files/rust-oe-selftest.patch @@ -47,61 +47,85 @@ diff --git a/library/std/tests/sync/rwlock.rs b/library/std/tests/sync/rwlock.rs index 1a9d3d3f12f..0a9cfc48806 100644 --- a/library/std/tests/sync/rwlock.rs +++ b/library/std/tests/sync/rwlock.rs -@@ -47,6 +47,7 @@ fn frob() { - } - +@@ -74,6 +74,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_rw_arc_poison_wr() { let arc = Arc::new(RwLock::new(1)); let arc2 = arc.clone(); -@@ -72,6 +73,7 @@ fn test_rw_arc_poison_mapped_w_r() { - } - +@@ -87,6 +88,7 @@ + + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] ++#[ignore] + fn test_rw_arc_poison_mapped_w_r() { + let arc = Arc::new(RwLock::new(1)); + let arc2 = arc.clone(); +@@ -101,6 +103,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_rw_arc_poison_ww() { let arc = Arc::new(RwLock::new(1)); assert!(!arc.is_poisoned()); -@@ -100,6 +102,7 @@ fn test_rw_arc_poison_mapped_w_w() { +@@ -115,6 +118,7 @@ } - + + #[test] ++#[ignore] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] + fn test_rw_arc_poison_mapped_w_w() { + let arc = Arc::new(RwLock::new(1)); +@@ -131,6 +135,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_rw_arc_no_poison_rr() { let arc = Arc::new(RwLock::new(1)); let arc2 = arc.clone(); -@@ -127,6 +130,7 @@ fn test_rw_arc_no_poison_mapped_r_r() { - } - +@@ -160,6 +165,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_rw_arc_no_poison_rw() { let arc = Arc::new(RwLock::new(1)); let arc2 = arc.clone(); -@@ -192,6 +196,7 @@ fn test_rw_arc() { - } - +@@ -227,6 +233,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_rw_arc_access_in_unwind() { let arc = Arc::new(RwLock::new(1)); let arc2 = arc.clone(); -@@ -275,6 +280,7 @@ fn drop(&mut self) { - } - +@@ -326,6 +333,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_into_inner_poison() { let m = new_poisoned_rwlock(NonCopy(10)); - -@@ -299,6 +305,7 @@ fn test_get_mut() { - } - + +@@ -362,6 +370,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_get_mut_poison() { let mut m = new_poisoned_rwlock(NonCopy(10)); + +@@ -567,6 +576,7 @@ + + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] ++#[ignore] + fn panic_while_mapping_write_unlocked_poison() { + let lock = RwLock::new(()); diff --git a/library/test/src/tests.rs b/library/test/src/tests.rs --- a/library/test/src/tests.rs @@ -117,52 +141,22 @@ diff --git a/library/test/src/tests.rs b/library/test/src/tests.rs diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs --- a/library/std/tests/sync/mutex.rs +++ b/library/std/tests/sync/mutex.rs -@@ -193,6 +193,7 @@ - } - +@@ -312,6 +312,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn test_mutex_arc_poison_mapped() { let arc = Arc::new(Mutex::new(1)); assert!(!arc.is_poisoned()); -diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs ---- a/library/std/tests/sync/mutex.rs -+++ b/library/std/tests/sync/mutex.rs -@@ -272,6 +272,7 @@ - } - +@@ -391,6 +392,7 @@ + #[test] + #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")] +#[ignore] fn panic_while_mapping_unlocked_poison() { let lock = Mutex::new(()); -diff --git a/library/std/src/sync/rwlock/tests.rs b/library/std/tests/sync/rwlock.rs ---- a/library/std/tests/sync/rwlock.rs -+++ b/library/std/tests/sync/rwlock.rs -@@ -59,6 +59,7 @@ fn test_rw_arc_poison_wr() { - } - - #[test] -+#[ignore] - fn test_rw_arc_poison_mapped_w_r() { - let arc = Arc::new(RwLock::new(1)); - let arc2 = arc.clone(); -@@ -86,6 +87,7 @@ fn test_rw_arc_poison_ww() { - } - - #[test] -+#[ignore] - fn test_rw_arc_poison_mapped_w_w() { - let arc = Arc::new(RwLock::new(1)); - let arc2 = arc.clone(); -@@ -431,6 +433,7 @@ fn panic_while_mapping_read_unlocked_no_poison() { - } - - #[test] -+#[ignore] - fn panic_while_mapping_write_unlocked_poison() { - let lock = RwLock::new(()); - diff --git a/library/coretests/benches/num/int_log/mod.rs b/library/coretests/benches/num/int_log/mod.rs index 3807cd5d76c..018c5c04456 100644 --- a/library/coretests/benches/num/int_log/mod.rs @@ -199,10 +193,10 @@ index 9d4f52a092..d425e5f7b7 100644 fn thread_current_in_dtor() { // Go through one round of TLS destruction first. struct Defer; -diff --git a/library/alloc/tests/sort/tests.rs b/library/alloc/tests/sort/tests.rs +diff --git a/library/alloctests/tests/sort/tests.rs b/library/alloctests/tests/sort/tests.rs index 14e6013f96..b670f27ab4 100644 ---- a/library/alloc/tests/sort/tests.rs -+++ b/library/alloc/tests/sort/tests.rs +--- a/library/alloctests/tests/sort/tests.rs ++++ b/library/alloctests/tests/sort/tests.rs @@ -915,12 +915,14 @@ gen_sort_test_fns_with_default_patterns_3_ty!( macro_rules! instantiate_sort_test_inner { ($sort_impl:ty, miri_yes, $test_fn_name:ident) => { @@ -234,10 +228,10 @@ diff --git a/tests/assembly/dwarf-mixed-versions-lto.rs b/tests/assembly/dwarf-m index 5b8e5ff4f4a..e558fbd7bd7 100644 --- a/tests/assembly/dwarf-mixed-versions-lto.rs +++ b/tests/assembly/dwarf-mixed-versions-lto.rs -@@ -1,6 +1,11 @@ - // This test ensures that if LTO occurs between crates with different DWARF versions, we +@@ -2,6 +2,11 @@ // will choose the highest DWARF version for the final binary. This matches Clang's behavior. - + // Note: `.2byte` directive is used on MIPS. + +//@ only-x86 +//@ only-x86_64 +//@ only-arm @@ -259,3 +253,30 @@ index 0e712bc3a4e..93965d990d0 100644 //@ revisions: OPT2 OPT3 //@[OPT2] compile-flags: -Copt-level=2 //@[OPT3] compile-flags: -C opt-level=3 +diff --git a/tests/codegen/uninhabited-transparent-return-abi.rs b/tests/codegen/uninhabited-transparent-return-abi.rs +index face1577c3f..d69e5e34a7b 100644 +--- a/tests/codegen/uninhabited-transparent-return-abi.rs ++++ b/tests/codegen/uninhabited-transparent-return-abi.rs +@@ -1,4 +1,8 @@ + //@ compile-flags: -Copt-level=3 ++//@ only-x86 ++//@ only-x86_64 ++//@ only-arm ++//@ only-aarch64 + + // See https://github.com/rust-lang/rust/issues/135802 + +diff --git a/tests/ui/abi/rust-cold-works-with-rustic-args.rs b/tests/ui/abi/rust-cold-works-with-rustic-args.rs +index 57027364699..3faa7ea035e 100644 +--- a/tests/ui/abi/rust-cold-works-with-rustic-args.rs ++++ b/tests/ui/abi/rust-cold-works-with-rustic-args.rs +@@ -1,5 +1,9 @@ + //@build-pass + //@compile-flags: -Clink-dead-code=true --crate-type lib ++//@ only-x86 ++//@ only-x86_64 ++//@ only-arm ++//@ only-aarch64 + // We used to not handle all "rustic" ABIs in a (relatively) uniform way, + // so we failed to fix up arguments for actually passing through the ABI... + #![feature(rust_cold_cc)] diff --git a/recipes-devtools/rust/files/triagebot.patch b/recipes-devtools/rust/files/triagebot.patch new file mode 100644 index 0000000..715664d --- /dev/null +++ b/recipes-devtools/rust/files/triagebot.patch @@ -0,0 +1,32 @@ +Skip tidy triagebot linkcheck if triagebot.toml doesn't exist + +Distribution tarballs won't include triagebot.toml, which +causes tidy checks to fail with the following error: + + tidy error: triagebot.toml file not found + some tidy checks failed + +Drop the triagebot.toml check which is mostly to catch broken +path filters *within* `triagebot.toml` and not enforce +the existence of it. + +Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/142666/commits] + +Signed-off-by: Yash Shinde +--- +diff --git a/src/tools/tidy/src/triagebot.rs b/src/tools/tidy/src/triagebot.rs +--- a/src/tools/tidy/src/triagebot.rs ++++ b/src/tools/tidy/src/triagebot.rs +@@ -6,8 +6,11 @@ + + pub fn check(path: &Path, bad: &mut bool) { + let triagebot_path = path.join("triagebot.toml"); ++ ++ // This check is mostly to catch broken path filters *within* `triagebot.toml`, and not enforce ++ // the existence of `triagebot.toml` itself (which is more obvious), as distribution tarballs ++ // will not include non-essential bits like `triagebot.toml`. + if !triagebot_path.exists() { +- tidy_error!(bad, "triagebot.toml file not found"); + return; + } + diff --git a/recipes-devtools/rust/libstd-rs_1.86.0.bb b/recipes-devtools/rust/libstd-rs_1.87.0.bb similarity index 100% rename from recipes-devtools/rust/libstd-rs_1.86.0.bb rename to recipes-devtools/rust/libstd-rs_1.87.0.bb diff --git a/recipes-devtools/rust/rust-cross-canadian_1.86.0.bb b/recipes-devtools/rust/rust-cross-canadian_1.87.0.bb similarity index 100% rename from recipes-devtools/rust/rust-cross-canadian_1.86.0.bb rename to recipes-devtools/rust/rust-cross-canadian_1.87.0.bb diff --git a/recipes-devtools/rust/rust-llvm_1.86.0.bb b/recipes-devtools/rust/rust-llvm_1.87.0.bb similarity index 96% rename from recipes-devtools/rust/rust-llvm_1.86.0.bb rename to recipes-devtools/rust/rust-llvm_1.87.0.bb index 327e8e6..d70aa35 100644 --- a/recipes-devtools/rust/rust-llvm_1.86.0.bb +++ b/recipes-devtools/rust/rust-llvm_1.87.0.bb @@ -2,9 +2,9 @@ SUMMARY = "LLVM compiler framework (packaged with rust)" LICENSE ?= "Apache-2.0-with-LLVM-exception" HOMEPAGE = "http://www.rust-lang.org" -# check src/llvm-project/cmake/Modules/LLVMVersion.cmake for llvm version in use +# check src/llvm-project/llvm/CMakeLists.txt for llvm version in use # -LLVM_RELEASE = "19.1.7" +LLVM_RELEASE = "20.1.1" require rust-source.inc diff --git a/recipes-devtools/rust/rust-snapshot.inc b/recipes-devtools/rust/rust-snapshot.inc index 445390f..87b39a2 100644 --- a/recipes-devtools/rust/rust-snapshot.inc +++ b/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.85.0" +SNAPSHOT_VERSION = "1.86.0" -SRC_URI[rustc-snapshot-aarch64.sha256sum] = "e742b768f67303010b002b515f6613c639e69ffcc78cd0857d6fe7989e9880f6" -SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "8af1d793f7820e9ad0ee23247a9123542c3ea23f8857a018651c7788af9bc5b7" -SRC_URI[cargo-snapshot-aarch64.sha256sum] = "cdebe48b066d512d664c13441e8fae2d0f67106c2080aa44289d98b24192b8bc" -SRC_URI[clippy-snapshot-aarch64.sha256sum] = "f3b8e769021a6bcee8174ac49a60c367effb6d97af0f2a6c44dc9ea39ff2bda9" +SRC_URI[rustc-snapshot-aarch64.sha256sum] = "ccece9e59546d2e6ff3fc3b8f4b033aab21631c271eefbe814b3cbace6628c6e" +SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "176129577a5d560bbd94bcd2d24c0228bb495b73219df02556b4e4b4f0815bf7" +SRC_URI[cargo-snapshot-aarch64.sha256sum] = "37156542b702e8b4ffd1c5c75017632582343e93ca378285cdc92196c85c77e3" +SRC_URI[clippy-snapshot-aarch64.sha256sum] = "e70edcf560e6b50861618d7045d2b38cae9e2a555f489062570e2e7041563f42" -SRC_URI[rustc-snapshot-i686.sha256sum] = "c5a5751f3cfa027b53fee83d01dec8e555f3622b6993335aed12b1747aa9543c" -SRC_URI[rust-std-snapshot-i686.sha256sum] = "401571adfe1223d83ed041e5a8c54c1f3afb3010d1d5b0c1fd79e7da1ab0a0de" -SRC_URI[cargo-snapshot-i686.sha256sum] = "3832027242911ab96fd86128587fc563596a5b10e8e38a073facf61c1ac9668f" -SRC_URI[clippy-snapshot-i686.sha256sum] = "74ed13a67c6ea0452c0d9e8697c6cfdd8280f983b207187ac93c287f72b65066" +SRC_URI[rustc-snapshot-i686.sha256sum] = "976f4604d949d722738a9fe95313035226571128396e942b0fc678180be487b0" +SRC_URI[rust-std-snapshot-i686.sha256sum] = "ce9f0fa4b0760730e26bf315cebe099f0b883436e095c5fc4b94ba20bd9f121a" +SRC_URI[cargo-snapshot-i686.sha256sum] = "24f20bdc1bb14f4ffbdc2f540488bebc3340437418725c3162215ae03cdad480" +SRC_URI[clippy-snapshot-i686.sha256sum] = "6788449fa0eceebe4ea8c797bbaf27495dad152087b3085d58dc05cacab0617a" -SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "d43d2119ff25d879b2d280d3e5a03fcd21c57a32d479ad5626500c32432f18c9" -SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "2d05f5e13e7cb3ee6b0ca0dcd13a231a28eeb0faa4d15257a35cf7284149cd6a" -SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "9aa447eefcd3ba2f9dbab77596c8669849899ab243543fc8f1914089707081ac" -SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "d437b39465343a71ff475a65acb6c03bc0f800861f293f48accf1fa170458432" +SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "970089ad61f8ca82017b59444aee483c1fc005e3f7a6af63cd5f146df8287cce" +SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "2f528377f57fbf81da35e2f08ec7ba50daddabebdce2cc86b6ec909fee157a33" +SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "c3b8ab03b64c824f2ea25db578b5760d44302be3fd1e4a78404c98cba39301f4" +SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "1ab711423497a1d02408a240da28ad366450574dd7f528ffaee80d1d5ed10550" -SRC_URI[rustc-snapshot-powerpc.sha256sum] = "fbe7154abc641d6cacfdc6239ed4701fc7a09b5046c6d1bd209b59e7f2b2d0f0" -SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "ab2d5ac7cd295adaa4d959e8abbf42b372292c95d1a9f18aad64951ad6e2ab2b" -SRC_URI[cargo-snapshot-powerpc.sha256sum] = "e67c30a72f969c51ad199084b3ce0cdc573a4e21f732b2cc39dafbcb9807a5ce" -SRC_URI[clippy-snapshot-powerpc.sha256sum] = "497104d49803598cd3801749ac86cb26c88a2bd9c3a8c7bdc18fdf487f4650c0" +SRC_URI[rustc-snapshot-powerpc.sha256sum] = "21ea61181ba7daa04f61bec6a295ad76ce34bfbd74ad1d679c4548977bd82eb9" +SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "e5ed58a861619bcc89fc3f969174c84fd6ed8a26b5d4b196f06efb868653c1c1" +SRC_URI[cargo-snapshot-powerpc.sha256sum] = "fd832c269af81dd1ee9f3831991fccdc2c7312e9a9069908510eefe7c313d144" +SRC_URI[clippy-snapshot-powerpc.sha256sum] = "c94578d31e4145a4169ab5761537a2a0133818278fb62ee76251ef8ef45228c8" -SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "f8e38291ba4241bc28e9c118d7a449ce3601abdeb2076f2f618858679fb3b929" -SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "e9ff89e759125ad2786ad2f6c40e820095720ea00fba66819d15fba79489430a" -SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "73cf850f6715acbf0029c7e5d4694825f61bd4e193e6413e65a78bcb13df97b7" -SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "29b63f23cd9af95846a246c9cc8349e514c3fb92ec0c840a38155e252d6cc668" +SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "a54bbe16e6a405f137a0dc51fd570140c80077ba769d29d885a60e74cb3196bb" +SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "06538b41a9351c449d215498d4ec2f072f728bd18df8fac7ef8534a0d0f34e27" +SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "4d398cd8da17d1a5f26734b39cb17e791b243ac3570f8da2e5e5580a9dfad578" +SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "0abf31a8cb2762a7a81dbee8a5798e43e11a83326711ce00ad16c5587bcf5e49" -SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "371e40f9d6d82aecb056f70f82868d98ddc1c20510aa7d388442ac8d2d86a6ca" -SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "d0cfda4e18623d17922eb367e44ac9549ab3d5fe1c0bdbe0c2c95754255fa705" -SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "e1469f4249a7e21f872af487dcd1bd10ce388b5b3679bdab0cb0965e1e30fe47" -SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "d8c590bc2e6fc75800e41516427f5095ba0e15d7633167689499fcf6523dc61a" +SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "7585a20b02b7dd497e393a2e7552a0c6aabb51556fcf7507c6f7ffde530f8c88" +SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "fcf940c0553a04cb9bd85cce524729c2f54b000b554fee95c7aa218d608b7e3d" +SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "8fefd2317023716a018986c4a62558a7b543ccf34e4e6d1104afc66edcae1c9c" +SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "8cc65649396ccad73cecd17b972ab8d4c34837136cf374425be63d697b541469" -SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "2da33044f17a8bc49a1478dc1eb2536df491a44d6e6bb0ec7c86f46877d44e98" -SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "0f5ecfe54859bbe715821f982b1a5396784fdf55605d00ece05d3e57a965ed16" -SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "c9f28b519799fc2d8089865e30fad04bb5339604d13725365fcd7ad7ee6c1489" -SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "9d21bc180196bccdb301e7e03034d3fd0df14b0c6520da0317bba7b1ce385fe8" +SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "4d1106b576221182f84412f3377a5148eab6950d20e45e4274cd8b58df46f26b" +SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "b28b9c2f183521a204f2899610253c11c86ee4aa903fe66d8410dfaa22c926e6" +SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "7825556908e10a48320cfb2d812851271d7cf549977173e028a0dd23af9d7eac" +SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "c39c53a82fdaaa97413728a4f3f9feb5b31bdf3e3e563c64651bd01713e79166" -SRC_URI[rustc-snapshot-s390x.sha256sum] = "308361737ed522aa77dd8b4ea91b5db244113ada5fa234d3ed008b526d07e2e8" -SRC_URI[rust-std-snapshot-s390x.sha256sum] = "d25053fbee1a0cb899bac8c8e4968aa35f9c3637e486cb5bb2c79ad43a78f3e7" -SRC_URI[cargo-snapshot-s390x.sha256sum] = "7e1defd60095c91ded1612194f811ec5f2fc2e83bb914d35594d01fa3c54049d" -SRC_URI[clippy-snapshot-s390x.sha256sum] = "9780d8c4cfef9d05460b3e540aad142391b2e3994accf8cfc8afb87fefac6cf0" +SRC_URI[rustc-snapshot-s390x.sha256sum] = "18caf22fbfc4d26c80b39b4c6b1cd5fb42dba3e32d5d3600c22eae6f688d7f4c" +SRC_URI[rust-std-snapshot-s390x.sha256sum] = "3919f6962d0aefdd2cd75d8dba749ed826936065b64c9a8d54d1d85c2685fd66" +SRC_URI[cargo-snapshot-s390x.sha256sum] = "1c6eb1be254574881a611a3b8904cdcfe43c79a285875673e59c890dcd5766c2" +SRC_URI[clippy-snapshot-s390x.sha256sum] = "c87183b52ddb4085ddf2524a775fd255d5fd11ad2fdd6424574f08750a8cf378" -SRC_URI[rustc-snapshot-x86_64.sha256sum] = "7436f13797475082cd87aa65547449e01659d6a810b4cd5f8aedc48bb9f89dfb" -SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "285e105d25ebdf501341238d4c0594ecdda50ec9078f45095f793a736b1f1ac2" -SRC_URI[cargo-snapshot-x86_64.sha256sum] = "0aff33b57b0e0b102d762a2b53042846c1ca346cff4b7bd96b5c03c9e8e51d81" -SRC_URI[clippy-snapshot-x86_64.sha256sum] = "0dc3ca1708a6c9eed05d0802364377572b79ff079815b7bcbe8e3991f77c4117" +SRC_URI[rustc-snapshot-x86_64.sha256sum] = "4438b809ce4a083af31ed17aeeedcc8fc60ccffc0625bef1926620751b6989d7" +SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "67be7184ea388d8ce0feaf7fdea46f1775cfc2970930264343b3089898501d37" +SRC_URI[cargo-snapshot-x86_64.sha256sum] = "c5c1590f7e9246ad9f4f97cfe26ffa92707b52a769726596a9ef81565ebd908b" +SRC_URI[clippy-snapshot-x86_64.sha256sum] = "02aaff2c1407d2da8dba19aa4970dd873e311902b120a66cbcdbe51eb8836edf" -SRC_URI[rust-std-snapshot-i586.sha256sum] = "3cb7318da10876de14076549d79410a8441923a92d62b616d8c105f5f5cd831b" +SRC_URI[rust-std-snapshot-i586.sha256sum] = "f0bddc6dba7d719b8ba131bcd634a8379e00fc825a51c0f17abf424c9cb5c052" -SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "65cd47af46a5b74e61ff6ae4cce8a979ee8670a57b8aa61e732828d1da073f73" +SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "722238ae13e6e101d1b698d2b3a7915d59bb7f485b594e8d833cce8b9460383b" 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/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc index 49a0060..38d261e 100644 --- a/recipes-devtools/rust/rust-source.inc +++ b/recipes-devtools/rust/rust-source.inc @@ -9,8 +9,9 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \ file://0001-libunwind-Use-gcs-instead-of-gcs-target-attribute.patch;patchdir=${RUSTSRC} \ file://0001-Disable-libunwind-cross-architecture-unwinding.patch;patchdir=${RUSTSRC} \ + file://triagebot.patch;patchdir=${RUSTSRC} \ " -SRC_URI[rust.sha256sum] = "d939eada065dc827a9d4dbb55bd48533ad14c16e7f0a42e70147029c82a7707b" +SRC_URI[rust.sha256sum] = "8623b8651893e8c6aebfa45b6a90645a4f652f7b18189a0992a90d11ac2631f4" RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src" diff --git a/recipes-devtools/rust/rust_1.86.0.bb b/recipes-devtools/rust/rust_1.87.0.bb similarity index 99% rename from recipes-devtools/rust/rust_1.86.0.bb rename to recipes-devtools/rust/rust_1.87.0.bb index 8cfc2bd..c6ddaed 100644 --- a/recipes-devtools/rust/rust_1.86.0.bb +++ b/recipes-devtools/rust/rust_1.87.0.bb @@ -266,7 +266,7 @@ rust_do_install:class-nativesdk() { install -d ${D}${bindir} for i in cargo-clippy clippy-driver rustfmt; do - cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir} + cp build/${RUST_BUILD_SYS}/stage1-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir} patchelf --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i done @@ -301,7 +301,7 @@ rust_do_install:class-target() { install -d ${D}${bindir} for i in ${EXTRA_TOOLS}; do - cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir} + cp build/${RUST_BUILD_SYS}/stage1-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir} patchelf --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i done