summaryrefslogtreecommitdiff
path: root/dev-lang/rust/files/1.86.0-znver.patch
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2025-05-16 10:22:12 +0100
committerSam James <sam@gentoo.org>2025-05-16 10:22:12 +0100
commit67cbbd5b7eaabbc1570dcdd4627de4af30db43bd (patch)
treea5388cf2ed1f981b5c6a66b9d6d46505bbaf3c5c /dev-lang/rust/files/1.86.0-znver.patch
parentc421361a19154a431100fdc0f0abeb44cf6a38ef (diff)
downloadgentoo-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.patch186
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()) }
+ }