diff options
| author | Sam James <sam@gentoo.org> | 2025-05-16 10:22:12 +0100 |
|---|---|---|
| committer | Sam James <sam@gentoo.org> | 2025-05-16 10:22:12 +0100 |
| commit | 67cbbd5b7eaabbc1570dcdd4627de4af30db43bd (patch) | |
| tree | a5388cf2ed1f981b5c6a66b9d6d46505bbaf3c5c /dev-lang/rust/files/1.86.0-znver.patch | |
| parent | c421361a19154a431100fdc0f0abeb44cf6a38ef (diff) | |
| download | gentoo-67cbbd5b7eaabbc1570dcdd4627de4af30db43bd.tar.gz gentoo-67cbbd5b7eaabbc1570dcdd4627de4af30db43bd.tar.bz2 gentoo-67cbbd5b7eaabbc1570dcdd4627de4af30db43bd.zip | |
dev-lang/rust: fix 1.86 build w/ RUSTFLAGS for znver*
Closes: https://bugs.gentoo.org/953109
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-lang/rust/files/1.86.0-znver.patch')
| -rw-r--r-- | dev-lang/rust/files/1.86.0-znver.patch | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/dev-lang/rust/files/1.86.0-znver.patch b/dev-lang/rust/files/1.86.0-znver.patch new file mode 100644 index 000000000000..5b93a76e653c --- /dev/null +++ b/dev-lang/rust/files/1.86.0-znver.patch @@ -0,0 +1,186 @@ +https://github.com/rust-lang/rust/issues/138054 +https://bugs.gentoo.org/953109#c7 +diff --git a/library/portable-simd/crates/core_simd/src/lib.rs b/library/portable-simd/crates/core_simd/src/lib.rs +index 7f57847c9c234..717b882b64ba1 100644 +--- a/library/portable-simd/crates/core_simd/src/lib.rs ++++ b/library/portable-simd/crates/core_simd/src/lib.rs +@@ -35,7 +35,11 @@ + feature(stdarch_x86_avx512) + )] + #![warn(missing_docs, clippy::missing_inline_in_public_items)] // basically all items, really +-#![deny(unsafe_op_in_unsafe_fn, clippy::undocumented_unsafe_blocks)] ++#![deny( ++ unsafe_op_in_unsafe_fn, ++ unreachable_pub, ++ clippy::undocumented_unsafe_blocks ++)] + #![doc(test(attr(deny(warnings))))] + #![allow(internal_features)] + #![unstable(feature = "portable_simd", issue = "86656")] +diff --git a/library/portable-simd/crates/core_simd/src/masks/bitmask.rs b/library/portable-simd/crates/core_simd/src/masks/bitmask.rs +index db4312d5bf88a..8221d8f17e90e 100644 +--- a/library/portable-simd/crates/core_simd/src/masks/bitmask.rs ++++ b/library/portable-simd/crates/core_simd/src/masks/bitmask.rs +@@ -5,7 +5,7 @@ use core::marker::PhantomData; + + /// A mask where each lane is represented by a single bit. + #[repr(transparent)] +-pub struct Mask<T, const N: usize>( ++pub(crate) struct Mask<T, const N: usize>( + <LaneCount<N> as SupportedLaneCount>::BitMask, + PhantomData<T>, + ) +@@ -78,7 +78,7 @@ where + { + #[inline] + #[must_use = "method returns a new mask and does not mutate the original value"] +- pub fn splat(value: bool) -> Self { ++ pub(crate) fn splat(value: bool) -> Self { + let mut mask = <LaneCount<N> as SupportedLaneCount>::BitMask::default(); + if value { + mask.as_mut().fill(u8::MAX) +@@ -93,12 +93,12 @@ where + + #[inline] + #[must_use = "method returns a new bool and does not mutate the original value"] +- pub unsafe fn test_unchecked(&self, lane: usize) -> bool { ++ pub(crate) unsafe fn test_unchecked(&self, lane: usize) -> bool { + (self.0.as_ref()[lane / 8] >> (lane % 8)) & 0x1 > 0 + } + + #[inline] +- pub unsafe fn set_unchecked(&mut self, lane: usize, value: bool) { ++ pub(crate) unsafe fn set_unchecked(&mut self, lane: usize, value: bool) { + unsafe { + self.0.as_mut()[lane / 8] ^= ((value ^ self.test_unchecked(lane)) as u8) << (lane % 8) + } +@@ -106,7 +106,7 @@ where + + #[inline] + #[must_use = "method returns a new vector and does not mutate the original value"] +- pub fn to_int(self) -> Simd<T, N> { ++ pub(crate) fn to_int(self) -> Simd<T, N> { + unsafe { + core::intrinsics::simd::simd_select_bitmask( + self.0, +@@ -118,19 +118,19 @@ where + + #[inline] + #[must_use = "method returns a new mask and does not mutate the original value"] +- pub unsafe fn from_int_unchecked(value: Simd<T, N>) -> Self { ++ pub(crate) unsafe fn from_int_unchecked(value: Simd<T, N>) -> Self { + unsafe { Self(core::intrinsics::simd::simd_bitmask(value), PhantomData) } + } + + #[inline] +- pub fn to_bitmask_integer(self) -> u64 { ++ pub(crate) fn to_bitmask_integer(self) -> u64 { + let mut bitmask = [0u8; 8]; + bitmask[..self.0.as_ref().len()].copy_from_slice(self.0.as_ref()); + u64::from_ne_bytes(bitmask) + } + + #[inline] +- pub fn from_bitmask_integer(bitmask: u64) -> Self { ++ pub(crate) fn from_bitmask_integer(bitmask: u64) -> Self { + let mut bytes = <LaneCount<N> as SupportedLaneCount>::BitMask::default(); + let len = bytes.as_mut().len(); + bytes +@@ -141,7 +141,7 @@ where + + #[inline] + #[must_use = "method returns a new mask and does not mutate the original value"] +- pub fn convert<U>(self) -> Mask<U, N> ++ pub(crate) fn convert<U>(self) -> Mask<U, N> + where + U: MaskElement, + { +@@ -151,13 +151,13 @@ where + + #[inline] + #[must_use = "method returns a new bool and does not mutate the original value"] +- pub fn any(self) -> bool { ++ pub(crate) fn any(self) -> bool { + self != Self::splat(false) + } + + #[inline] + #[must_use = "method returns a new bool and does not mutate the original value"] +- pub fn all(self) -> bool { ++ pub(crate) fn all(self) -> bool { + self == Self::splat(true) + } + } +diff --git a/library/portable-simd/crates/core_simd/src/masks/full_masks.rs b/library/portable-simd/crates/core_simd/src/masks/full_masks.rs +index ae55cf1f8fa87..a693ea90b9cb8 100644 +--- a/library/portable-simd/crates/core_simd/src/masks/full_masks.rs ++++ b/library/portable-simd/crates/core_simd/src/masks/full_masks.rs +@@ -3,7 +3,7 @@ + use crate::simd::{LaneCount, MaskElement, Simd, SupportedLaneCount}; + + #[repr(transparent)] +-pub struct Mask<T, const N: usize>(Simd<T, N>) ++pub(crate) struct Mask<T, const N: usize>(Simd<T, N>) + where + T: MaskElement, + LaneCount<N>: SupportedLaneCount; +@@ -103,36 +103,36 @@ where + { + #[inline] + #[must_use = "method returns a new mask and does not mutate the original value"] +- pub fn splat(value: bool) -> Self { ++ pub(crate) fn splat(value: bool) -> Self { + Self(Simd::splat(if value { T::TRUE } else { T::FALSE })) + } + + #[inline] + #[must_use = "method returns a new bool and does not mutate the original value"] +- pub unsafe fn test_unchecked(&self, lane: usize) -> bool { ++ pub(crate) unsafe fn test_unchecked(&self, lane: usize) -> bool { + T::eq(self.0[lane], T::TRUE) + } + + #[inline] +- pub unsafe fn set_unchecked(&mut self, lane: usize, value: bool) { ++ pub(crate) unsafe fn set_unchecked(&mut self, lane: usize, value: bool) { + self.0[lane] = if value { T::TRUE } else { T::FALSE } + } + + #[inline] + #[must_use = "method returns a new vector and does not mutate the original value"] +- pub fn to_int(self) -> Simd<T, N> { ++ pub(crate) fn to_int(self) -> Simd<T, N> { + self.0 + } + + #[inline] + #[must_use = "method returns a new mask and does not mutate the original value"] +- pub unsafe fn from_int_unchecked(value: Simd<T, N>) -> Self { ++ pub(crate) unsafe fn from_int_unchecked(value: Simd<T, N>) -> Self { + Self(value) + } + + #[inline] + #[must_use = "method returns a new mask and does not mutate the original value"] +- pub fn convert<U>(self) -> Mask<U, N> ++ pub(crate) fn convert<U>(self) -> Mask<U, N> + where + U: MaskElement, + { +@@ -221,14 +221,14 @@ where + + #[inline] + #[must_use = "method returns a new bool and does not mutate the original value"] +- pub fn any(self) -> bool { ++ pub(crate) fn any(self) -> bool { + // Safety: use `self` as an integer vector + unsafe { core::intrinsics::simd::simd_reduce_any(self.to_int()) } + } + + #[inline] + #[must_use = "method returns a new bool and does not mutate the original value"] +- pub fn all(self) -> bool { ++ pub(crate) fn all(self) -> bool { + // Safety: use `self` as an integer vector + unsafe { core::intrinsics::simd::simd_reduce_all(self.to_int()) } + } |
