Recommended update for rust, rust1.86
| Announcement ID: | SUSE-RU-2025:1350-1 |
|---|---|
| Release Date: | 2025-04-20T17:59:05Z |
| Rating: | moderate |
| References: | |
| Affected Products: |
|
An update that contains two features can now be installed.
Description:
This update for rust, rust1.86 fixes the following issues:
Changes in rust1.86:
Version 1.86.0 (2025-04-03)
Language
- Stabilize upcasting trait objects to supertraits.
- Allow safe functions to be marked with the
#[target_feature]attribute. - The
missing_abilint now warns-by-default. - Rust now lints about double negations, to catch cases that might have intended to be a prefix decrement operator (
--x) as written in other languages. This was previously a clippy lint,clippy::double_neg, and is [now available directly in Rust asdouble_negations. - More pointers are now detected as definitely not-null based on their alignment in const eval.
- Empty
repr()attribute applied to invalid items are now correctly rejected. - Inner attributes
#![test]and#![rustfmt::skip]are no longer accepted in more places than intended.
Compiler
- Debug-assert that raw pointers are non-null on access.
- Change
-Oto mean-C opt-level=3instead of-C opt-level=2to match Cargo's defaults. - Fix emission of
overflowing_literalsunder certain macro environments.
Platform Support
- Replace
i686-unknown-redoxtarget withi586-unknown-redox. - Increase baseline CPU of
i686-unknown-hurd-gnuto Pentium 4. -
New tier 3 targets:
-
{aarch64-unknown,x86_64-pc}-nto-qnx710_iosockFor supporting Neutrino QNX 7.1 withio-socketnetwork stack. {aarch64-unknown,x86_64-pc}-nto-qnx800For supporting Neutrino QNX 8.0 (no_std-only).{x86_64,i686}-win7-windows-gnuIntended for backwards compatibility with Windows 7.{x86_64,i686}-win7-windows-msvcare the Windows MSVC counterparts that already exist as Tier 3 targets.amdgcn-amd-amdhsax86_64-pc-cygwin{mips,mipsel}-mti-none-elfInitial bare-metal support.m68k-unknown-none-elfarmv7a-nuttx-{eabi,eabihf},aarch64-unknown-nuttx, andthumbv7a-nuttx-{eabi,eabihf}
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
- The type of
FromBytesWithNulErrorinCStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self, FromBytesWithNulError>was changed from an opaque struct to an enum, allowing users to examine why the conversion failed. - Remove
RustcDecodableandRustcEncodable. - Deprecate libtest's
--logfileoption. - On recent versions of Windows,
std::fs::remove_filewill now remove read-only files.
Stabilized APIs
{float}::next_downhttps://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_down{float}::next_uphttps://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_up<[_]>::get_disjoint_muthttps://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut<[_]>::get_disjoint_unchecked_muthttps://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_unchecked_mutslice::GetDisjointMutErrorhttps://doc.rust-lang.org/stable/std/slice/enum.GetDisjointMutError.htmlHashMap::get_disjoint_muthttps://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_mutHashMap::get_disjoint_unchecked_muthttps://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_unchecked_mutNonZero::count_oneshttps://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.count_onesVec::pop_ifhttps://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop_ifsync::Once::waithttps://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.waitsync::Once::wait_forcehttps://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait_forcesync::OnceLock::waithttps://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html#method.wait
These APIs are now stable in const contexts:
hint::black_boxhttps://doc.rust-lang.org/stable/std/hint/fn.black_box.htmlio::Cursor::get_muthttps://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_mutio::Cursor::set_positionhttps://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.set_positionstr::is_char_boundaryhttps://doc.rust-lang.org/stable/std/primitive.str.html#method.is_char_boundarystr::split_athttps://doc.rust-lang.org/stable/std/primitive.str.html#method.split_atstr::split_at_checkedhttps://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_checkedstr::split_at_muthttps://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mutstr::split_at_mut_checkedhttps://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut_checked
Cargo
- When merging, replace rather than combine configuration keys that refer to a program path and its arguments.
- Error if both
--packageand--workspaceare passed but the requested package is missing. This was previously silently ignored, which was considered a bug since missing packages should be reported. - Deprecate the token argument in
cargo loginto avoid shell history leaks. - Simplify the implementation of
SourceIDcomparisons. This may potentially change behavior if the canonicalized URL compares differently in alternative registries.
Rustdoc
- Add a sans-serif font setting.
Compatibility Notes
- The
wasm_c_abifuture compatibility warning is now a hard error. Users ofwasm-bindgenshould upgrade to at least version 0.2.89, otherwise compilation will fail. - Remove long-deprecated no-op attributes
#![no_start]and#![crate_id]. - The future incompatibility lint
cenum_impl_drop_casthas been made into a hard error. This means it is now an error to cast a field-less enum to an integer if the enum implementsDrop. - SSE2 is now required for "i686" 32-bit x86 hard-float targets; disabling it causes a warning that will become a hard error eventually. To compile for pre-SSE2 32-bit x86, use a "i586" target instead.
Internal Changes
These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.
- Build the rustc on AArch64 Linux with ThinLTO + PGO. The ARM 64-bit compiler (AArch64) on Linux is now optimized with ThinLTO and PGO, similar to the optimizations we have already performed for the x86-64 compiler on Linux. This should make it up to 30% faster.
Patch Instructions:
To install this SUSE update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:
-
openSUSE Leap 15.6
zypper in -t patch openSUSE-SLE-15.6-2025-1350=1 -
Development Tools Module 15-SP6
zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2025-1350=1 -
SUSE Linux Enterprise High Performance Computing LTSS 15 SP3
zypper in -t patch SUSE-SLE-Product-HPC-15-SP3-LTSS-2025-1350=1 -
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4
zypper in -t patch SUSE-SLE-Product-HPC-15-SP4-ESPOS-2025-1350=1 -
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4
zypper in -t patch SUSE-SLE-Product-HPC-15-SP4-LTSS-2025-1350=1 -
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP5
zypper in -t patch SUSE-SLE-Product-HPC-15-SP5-ESPOS-2025-1350=1 -
SUSE Linux Enterprise High Performance Computing LTSS 15 SP5
zypper in -t patch SUSE-SLE-Product-HPC-15-SP5-LTSS-2025-1350=1 -
SUSE Linux Enterprise Server 15 SP3 LTSS
zypper in -t patch SUSE-SLE-Product-SLES-15-SP3-LTSS-2025-1350=1 -
SUSE Linux Enterprise Server 15 SP4 LTSS
zypper in -t patch SUSE-SLE-Product-SLES-15-SP4-LTSS-2025-1350=1 -
SUSE Linux Enterprise Server 15 SP5 LTSS
zypper in -t patch SUSE-SLE-Product-SLES-15-SP5-LTSS-2025-1350=1 -
SUSE Linux Enterprise Server for SAP Applications 15 SP3
zypper in -t patch SUSE-SLE-Product-SLES_SAP-15-SP3-2025-1350=1 -
SUSE Linux Enterprise Server for SAP Applications 15 SP4
zypper in -t patch SUSE-SLE-Product-SLES_SAP-15-SP4-2025-1350=1 -
SUSE Linux Enterprise Server for SAP Applications 15 SP5
zypper in -t patch SUSE-SLE-Product-SLES_SAP-15-SP5-2025-1350=1 -
SUSE Enterprise Storage 7.1
zypper in -t patch SUSE-Storage-7.1-2025-1350=1 -
openSUSE Leap 15.3
zypper in -t patch SUSE-2025-1350=1 -
openSUSE Leap 15.4
zypper in -t patch SUSE-2025-1350=1 -
openSUSE Leap 15.5
zypper in -t patch SUSE-2025-1350=1
Package List:
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150500.27.36.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150500.27.36.1
-
openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.86-1.86.0-150300.7.5.1
-
openSUSE Leap 15.6 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150500.27.36.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150500.27.36.1
-
Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.86-1.86.0-150300.7.5.1
-
Development Tools Module 15-SP6 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP3 (aarch64 x86_64)
- cargo-1.86.0-150300.21.52.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150300.21.52.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP3 (aarch64 nosrc x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP3 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (aarch64 x86_64)
- rust-1.86.0-150400.24.42.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150400.24.42.1
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (aarch64 nosrc x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (aarch64 x86_64)
- rust-1.86.0-150400.24.42.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150400.24.42.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (aarch64 nosrc x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP5 (aarch64 x86_64)
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150500.27.36.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150500.27.36.1
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP5 (aarch64 nosrc x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP5 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP5 (aarch64 x86_64)
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150500.27.36.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150500.27.36.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP5 (aarch64 nosrc x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise High Performance Computing LTSS 15 SP5 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server 15 SP3 LTSS (aarch64 ppc64le s390x x86_64)
- cargo-1.86.0-150300.21.52.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150300.21.52.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server 15 SP3 LTSS (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server 15 SP3 LTSS (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server 15 SP4 LTSS (aarch64 ppc64le s390x x86_64)
- rust-1.86.0-150400.24.42.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150400.24.42.1
-
SUSE Linux Enterprise Server 15 SP4 LTSS (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server 15 SP4 LTSS (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server 15 SP5 LTSS (aarch64 ppc64le s390x x86_64)
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150500.27.36.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150500.27.36.1
-
SUSE Linux Enterprise Server 15 SP5 LTSS (aarch64 ppc64le s390x x86_64 nosrc)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server 15 SP5 LTSS (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP3 (ppc64le x86_64)
- cargo-1.86.0-150300.21.52.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150300.21.52.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP3 (nosrc ppc64le x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP3 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP4 (ppc64le x86_64)
- rust-1.86.0-150400.24.42.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150400.24.42.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP4 (nosrc ppc64le x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP4 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP5 (ppc64le x86_64)
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150500.27.36.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
- cargo-1.86.0-150500.27.36.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP5 (nosrc ppc64le x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Linux Enterprise Server for SAP Applications 15 SP5 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
SUSE Enterprise Storage 7.1 (aarch64 x86_64)
- cargo-1.86.0-150300.21.52.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150300.21.52.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
-
SUSE Enterprise Storage 7.1 (aarch64 nosrc x86_64)
- rust1.86-1.86.0-150300.7.5.1
-
SUSE Enterprise Storage 7.1 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586)
- cargo-1.86.0-150300.21.52.1
- cargo1.86-debuginfo-1.86.0-150300.7.5.1
- rust-1.86.0-150300.21.52.1
- rust1.86-debuginfo-1.86.0-150300.7.5.1
- cargo1.86-1.86.0-150300.7.5.1
-
openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586 nosrc)
- rust1.86-1.86.0-150300.7.5.1
-
openSUSE Leap 15.3 (noarch)
- rust1.86-src-1.86.0-150300.7.5.1
-
openSUSE Leap 15.3 (nosrc)
- rust1.86-test-1.86.0-150300.7.5.1
-
openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 i586)
- cargo-1.86.0-150400.24.42.1
- rust-1.86.0-150400.24.42.1
-
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
- cargo-1.86.0-150500.27.36.1
- rust-1.86.0-150500.27.36.1