From 4d9967eeee223ce6137a9f388ae40f997b00c5fa Mon Sep 17 00:00:00 2001 From: Owen Rafferty Date: Mon, 15 Aug 2022 01:07:31 -0500 Subject: [PATCH] firefox: fix build with rust 1.63 update vendored packed_simd_2 to 0.3.8 --- extra/firefox/build | 3 +- extra/firefox/checksums | 1 + .../firefox/patches/packed_simd_2-0.3.8.patch | 694 ++++++++++++++++++ extra/firefox/sources | 1 + 4 files changed, 698 insertions(+), 1 deletion(-) create mode 100644 extra/firefox/patches/packed_simd_2-0.3.8.patch diff --git a/extra/firefox/build b/extra/firefox/build index 923981a6..cca6f7a8 100755 --- a/extra/firefox/build +++ b/extra/firefox/build @@ -34,7 +34,8 @@ export PATH="$PWD/junk/bin:$PATH" for p in \ audioipc \ audioipc-client \ - audioipc-server + audioipc-server \ + packed_simd_2 do sed 's/\("files":{\)[^}]*/\1/' \ "third_party/rust/$p/.cargo-checksum.json" > _ diff --git a/extra/firefox/checksums b/extra/firefox/checksums index 732f181d..261fe19f 100644 --- a/extra/firefox/checksums +++ b/extra/firefox/checksums @@ -7,3 +7,4 @@ ba6e380bc3d2cbd1b3a505ab97687498335c334d8a4be7f465ad30ee366806c7 dd835501b0fc3897808910fa1a9d8b1e3523f55e53c9ac9e20b67e0360f3a238 bed3f4e39dcb8065dba174d37fb15f2a75887a6dd7ce6b872e5ab287c8bc386f 4a232e3aa3973894a58c126b9e901c924d4e1ca3e00c4fc82d08de4b880183a9 +2368343dea56243c8167cf44f47949955d0a059e64f142a7d9664f0f7d1bdad8 diff --git a/extra/firefox/patches/packed_simd_2-0.3.8.patch b/extra/firefox/patches/packed_simd_2-0.3.8.patch new file mode 100644 index 00000000..a12f5158 --- /dev/null +++ b/extra/firefox/patches/packed_simd_2-0.3.8.patch @@ -0,0 +1,694 @@ +diff --git a/.cargo/config.in b/.cargo/config.in +index 20b8c3f..6528cc8 100644 +--- a/.cargo/config.in ++++ b/.cargo/config.in +@@ -70,7 +70,7 @@ rev = "746743227485a83123784df0c53227ab466612ed" + [source."https://github.com/hsivonen/packed_simd"] + git = "https://github.com/hsivonen/packed_simd" + replace-with = "vendored-sources" +-rev = "c149d0a519bf878567c7630096737669ec2ff15f" ++rev = "90eebb82a107cbec1c8e406d9223819417e96de1" + + [source."https://github.com/hsivonen/chardetng_c"] + git = "https://github.com/hsivonen/chardetng_c" +diff --git a/Cargo.lock b/Cargo.lock +index 5716fa1..9dfd4a2 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -3952,10 +3952,11 @@ dependencies = [ + + [[package]] + name = "packed_simd_2" +-version = "0.3.7" +-source = "git+https://github.com/hsivonen/packed_simd?rev=c149d0a519bf878567c7630096737669ec2ff15f#c149d0a519bf878567c7630096737669ec2ff15f" ++version = "0.3.8" ++source = "git+https://github.com/hsivonen/packed_simd?rev=90eebb82a107cbec1c8e406d9223819417e96de1#90eebb82a107cbec1c8e406d9223819417e96de1" + dependencies = [ + "cfg-if 1.0.0", ++ "rustc_version", + ] + + [[package]] +diff --git a/Cargo.toml b/Cargo.toml +index 012a938..f3f86d1 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -145,7 +145,7 @@ chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev="ed8a4c6f90 + coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev="fc68464b5445caf111e41f643a2e69ccce0b4f83" } + fog = { path = "toolkit/components/glean/api" } + libudev-sys = { path = "dom/webauthn/libudev-sys" } +-packed_simd = { package = "packed_simd_2", git = "https://github.com/hsivonen/packed_simd", rev="c149d0a519bf878567c7630096737669ec2ff15f" } ++packed_simd = { package = "packed_simd_2", git = "https://github.com/hsivonen/packed_simd", rev="90eebb82a107cbec1c8e406d9223819417e96de1" } + midir = { git = "https://github.com/mozilla/midir.git", rev = "4c11f0ffb5d6a10de4aff40a7b81218b33b94e6f" } + minidump_writer_linux = { git = "https://github.com/rust-minidump/minidump-writer.git", rev = "75ada456c92a429704691a85e1cb42fef8cafc0d" } + +diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml +index 38ce792..ac84409 100644 +--- a/supply-chain/audits.toml ++++ b/supply-chain/audits.toml +@@ -86,6 +86,11 @@ who = "Mike Hommey " + criteria = "safe-to-deploy" + version = "0.4.17" + ++[[audits.packed_simd_2]] ++who = "Mike Hommey " ++criteria = "safe-to-deploy" ++delta = "0.3.7 -> 0.3.8" ++ + [[audits.rust_decimal]] + who = "Mike Hommey " + criteria = "safe-to-deploy" +diff --git a/third_party/rust/packed_simd_2/Cargo.toml b/third_party/rust/packed_simd_2/Cargo.toml +index f38706d..d3d07ef 100644 +--- a/third_party/rust/packed_simd_2/Cargo.toml ++++ b/third_party/rust/packed_simd_2/Cargo.toml +@@ -1,6 +1,6 @@ + [package] + name = "packed_simd_2" +-version = "0.3.7" ++version = "0.3.8" + description = "Portable Packed SIMD vectors" + documentation = "https://docs.rs/crate/packed_simd/" + homepage = "https://github.com/rust-lang/packed_simd" +@@ -23,6 +23,9 @@ maintenance = { status = "experimental" } + cfg-if = "1.0.0" + core_arch = { version = "0.1.5", optional = true } + ++[build-dependencies] ++rustc_version = "0.4" ++ + [features] + default = [] + into_bits = [] +diff --git a/third_party/rust/packed_simd_2/README.md b/third_party/rust/packed_simd_2/README.md +index 41a1512..eb3101c 100644 +--- a/third_party/rust/packed_simd_2/README.md ++++ b/third_party/rust/packed_simd_2/README.md +@@ -8,7 +8,7 @@ If you need to continue to use the crate, we have published a "next version" und + + Adjust your `[dependencies]` section of `Cargo.toml` to be the following: + ```toml +-packed_simd = { version = "0.3.6", package = "packed_simd_2" } ++packed_simd = { version = "0.3.8", package = "packed_simd_2" } + ``` + + # `Simd<[T; N]>` +diff --git a/third_party/rust/packed_simd_2/build.rs b/third_party/rust/packed_simd_2/build.rs +index e87298a..afdee9f 100644 +--- a/third_party/rust/packed_simd_2/build.rs ++++ b/third_party/rust/packed_simd_2/build.rs +@@ -1,6 +1,11 @@ ++use rustc_version::{version, Version}; ++ + fn main() { + let target = std::env::var("TARGET").expect("TARGET environment variable not defined"); + if target.contains("neon") { + println!("cargo:rustc-cfg=libcore_neon"); + } ++ if version().unwrap() < Version::parse("1.61.0-alpha").unwrap() { ++ println!("cargo:rustc-cfg=aarch64_target_feature"); ++ } + } +diff --git a/third_party/rust/packed_simd_2/src/api.rs b/third_party/rust/packed_simd_2/src/api.rs +index 4e9c429..aa1403e 100644 +--- a/third_party/rust/packed_simd_2/src/api.rs ++++ b/third_party/rust/packed_simd_2/src/api.rs +@@ -2,7 +2,7 @@ + + #[macro_use] + mod bitmask; +-crate mod cast; ++pub(crate) mod cast; + #[macro_use] + mod cmp; + #[macro_use] +@@ -37,7 +37,7 @@ mod swap_bytes; + mod bit_manip; + + #[cfg(feature = "into_bits")] +-crate mod into_bits; ++pub(crate) mod into_bits; + + macro_rules! impl_i { + ([$elem_ty:ident; $elem_n:expr]: $tuple_id:ident, $mask_ty:ident +diff --git a/third_party/rust/packed_simd_2/src/codegen.rs b/third_party/rust/packed_simd_2/src/codegen.rs +index 9d1517e..8a9e971 100644 +--- a/third_party/rust/packed_simd_2/src/codegen.rs ++++ b/third_party/rust/packed_simd_2/src/codegen.rs +@@ -1,19 +1,19 @@ + //! Code-generation utilities + +-crate mod bit_manip; +-crate mod llvm; +-crate mod math; +-crate mod reductions; +-crate mod shuffle; +-crate mod shuffle1_dyn; +-crate mod swap_bytes; ++pub(crate) mod bit_manip; ++pub(crate) mod llvm; ++pub(crate) mod math; ++pub(crate) mod reductions; ++pub(crate) mod shuffle; ++pub(crate) mod shuffle1_dyn; ++pub(crate) mod swap_bytes; + + macro_rules! impl_simd_array { + ([$elem_ty:ident; $elem_count:expr]: + $tuple_id:ident | $($elem_tys:ident),*) => { + #[derive(Copy, Clone)] + #[repr(simd)] +- pub struct $tuple_id($(crate $elem_tys),*); ++ pub struct $tuple_id($(pub(crate) $elem_tys),*); + //^^^^^^^ leaked through SimdArray + + impl crate::sealed::Seal for [$elem_ty; $elem_count] {} +@@ -35,28 +35,28 @@ macro_rules! impl_simd_array { + } + } + +-crate mod pointer_sized_int; ++pub(crate) mod pointer_sized_int; + +-crate mod v16; +-crate use self::v16::*; ++pub(crate) mod v16; ++pub(crate) use self::v16::*; + +-crate mod v32; +-crate use self::v32::*; ++pub(crate) mod v32; ++pub(crate) use self::v32::*; + +-crate mod v64; +-crate use self::v64::*; ++pub(crate) mod v64; ++pub(crate) use self::v64::*; + +-crate mod v128; +-crate use self::v128::*; ++pub(crate) mod v128; ++pub(crate) use self::v128::*; + +-crate mod v256; +-crate use self::v256::*; ++pub(crate) mod v256; ++pub(crate) use self::v256::*; + +-crate mod v512; +-crate use self::v512::*; ++pub(crate) mod v512; ++pub(crate) use self::v512::*; + +-crate mod vSize; +-crate use self::vSize::*; ++pub(crate) mod vSize; ++pub(crate) use self::vSize::*; + +-crate mod vPtr; +-crate use self::vPtr::*; ++pub(crate) mod vPtr; ++pub(crate) use self::vPtr::*; +diff --git a/third_party/rust/packed_simd_2/src/codegen/bit_manip.rs b/third_party/rust/packed_simd_2/src/codegen/bit_manip.rs +index 5986916..32d8d71 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/bit_manip.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/bit_manip.rs +@@ -1,7 +1,7 @@ + //! LLVM bit manipulation intrinsics. + #[rustfmt::skip] + +-use crate::*; ++pub(crate) use crate::*; + + #[allow(improper_ctypes, dead_code)] + extern "C" { +@@ -147,7 +147,7 @@ extern "C" { + fn ctpop_u128x4(x: u128x4) -> u128x4; + } + +-crate trait BitManip { ++pub(crate) trait BitManip { + fn ctpop(self) -> Self; + fn ctlz(self) -> Self; + fn cttz(self) -> Self; +diff --git a/third_party/rust/packed_simd_2/src/codegen/llvm.rs b/third_party/rust/packed_simd_2/src/codegen/llvm.rs +index 52b11a9..b4c0984 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/llvm.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/llvm.rs +@@ -76,53 +76,53 @@ where + } + + extern "platform-intrinsic" { +- crate fn simd_eq(x: T, y: T) -> U; +- crate fn simd_ne(x: T, y: T) -> U; +- crate fn simd_lt(x: T, y: T) -> U; +- crate fn simd_le(x: T, y: T) -> U; +- crate fn simd_gt(x: T, y: T) -> U; +- crate fn simd_ge(x: T, y: T) -> U; +- +- crate fn simd_insert(x: T, idx: u32, val: U) -> T; +- crate fn simd_extract(x: T, idx: u32) -> U; +- +- crate fn simd_cast(x: T) -> U; +- +- crate fn simd_add(x: T, y: T) -> T; +- crate fn simd_sub(x: T, y: T) -> T; +- crate fn simd_mul(x: T, y: T) -> T; +- crate fn simd_div(x: T, y: T) -> T; +- crate fn simd_rem(x: T, y: T) -> T; +- crate fn simd_shl(x: T, y: T) -> T; +- crate fn simd_shr(x: T, y: T) -> T; +- crate fn simd_and(x: T, y: T) -> T; +- crate fn simd_or(x: T, y: T) -> T; +- crate fn simd_xor(x: T, y: T) -> T; +- +- crate fn simd_reduce_add_unordered(x: T) -> U; +- crate fn simd_reduce_mul_unordered(x: T) -> U; +- crate fn simd_reduce_add_ordered(x: T, acc: U) -> U; +- crate fn simd_reduce_mul_ordered(x: T, acc: U) -> U; +- crate fn simd_reduce_min(x: T) -> U; +- crate fn simd_reduce_max(x: T) -> U; +- crate fn simd_reduce_min_nanless(x: T) -> U; +- crate fn simd_reduce_max_nanless(x: T) -> U; +- crate fn simd_reduce_and(x: T) -> U; +- crate fn simd_reduce_or(x: T) -> U; +- crate fn simd_reduce_xor(x: T) -> U; +- crate fn simd_reduce_all(x: T) -> bool; +- crate fn simd_reduce_any(x: T) -> bool; +- +- crate fn simd_select(m: M, a: T, b: T) -> T; +- +- crate fn simd_fmin(a: T, b: T) -> T; +- crate fn simd_fmax(a: T, b: T) -> T; +- +- crate fn simd_fsqrt(a: T) -> T; +- crate fn simd_fma(a: T, b: T, c: T) -> T; +- +- crate fn simd_gather(value: T, pointers: P, mask: M) -> T; +- crate fn simd_scatter(value: T, pointers: P, mask: M); +- +- crate fn simd_bitmask(value: T) -> U; ++ pub(crate) fn simd_eq(x: T, y: T) -> U; ++ pub(crate) fn simd_ne(x: T, y: T) -> U; ++ pub(crate) fn simd_lt(x: T, y: T) -> U; ++ pub(crate) fn simd_le(x: T, y: T) -> U; ++ pub(crate) fn simd_gt(x: T, y: T) -> U; ++ pub(crate) fn simd_ge(x: T, y: T) -> U; ++ ++ pub(crate) fn simd_insert(x: T, idx: u32, val: U) -> T; ++ pub(crate) fn simd_extract(x: T, idx: u32) -> U; ++ ++ pub(crate) fn simd_cast(x: T) -> U; ++ ++ pub(crate) fn simd_add(x: T, y: T) -> T; ++ pub(crate) fn simd_sub(x: T, y: T) -> T; ++ pub(crate) fn simd_mul(x: T, y: T) -> T; ++ pub(crate) fn simd_div(x: T, y: T) -> T; ++ pub(crate) fn simd_rem(x: T, y: T) -> T; ++ pub(crate) fn simd_shl(x: T, y: T) -> T; ++ pub(crate) fn simd_shr(x: T, y: T) -> T; ++ pub(crate) fn simd_and(x: T, y: T) -> T; ++ pub(crate) fn simd_or(x: T, y: T) -> T; ++ pub(crate) fn simd_xor(x: T, y: T) -> T; ++ ++ pub(crate) fn simd_reduce_add_unordered(x: T) -> U; ++ pub(crate) fn simd_reduce_mul_unordered(x: T) -> U; ++ pub(crate) fn simd_reduce_add_ordered(x: T, acc: U) -> U; ++ pub(crate) fn simd_reduce_mul_ordered(x: T, acc: U) -> U; ++ pub(crate) fn simd_reduce_min(x: T) -> U; ++ pub(crate) fn simd_reduce_max(x: T) -> U; ++ pub(crate) fn simd_reduce_min_nanless(x: T) -> U; ++ pub(crate) fn simd_reduce_max_nanless(x: T) -> U; ++ pub(crate) fn simd_reduce_and(x: T) -> U; ++ pub(crate) fn simd_reduce_or(x: T) -> U; ++ pub(crate) fn simd_reduce_xor(x: T) -> U; ++ pub(crate) fn simd_reduce_all(x: T) -> bool; ++ pub(crate) fn simd_reduce_any(x: T) -> bool; ++ ++ pub(crate) fn simd_select(m: M, a: T, b: T) -> T; ++ ++ pub(crate) fn simd_fmin(a: T, b: T) -> T; ++ pub(crate) fn simd_fmax(a: T, b: T) -> T; ++ ++ pub(crate) fn simd_fsqrt(a: T) -> T; ++ pub(crate) fn simd_fma(a: T, b: T, c: T) -> T; ++ ++ pub(crate) fn simd_gather(value: T, pointers: P, mask: M) -> T; ++ pub(crate) fn simd_scatter(value: T, pointers: P, mask: M); ++ ++ pub(crate) fn simd_bitmask(value: T) -> U; + } +diff --git a/third_party/rust/packed_simd_2/src/codegen/math.rs b/third_party/rust/packed_simd_2/src/codegen/math.rs +index f3997c7..9a0ea7a 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math.rs +@@ -1,3 +1,3 @@ + //! Vertical math operations + +-crate mod float; ++pub(crate) mod float; +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float.rs b/third_party/rust/packed_simd_2/src/codegen/math/float.rs +index 5e89bf6..ffbf18b 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float.rs +@@ -2,17 +2,17 @@ + #![allow(clippy::useless_transmute)] + + #[macro_use] +-crate mod macros; +-crate mod abs; +-crate mod cos; +-crate mod cos_pi; +-crate mod exp; +-crate mod ln; +-crate mod mul_add; +-crate mod mul_adde; +-crate mod powf; +-crate mod sin; +-crate mod sin_cos_pi; +-crate mod sin_pi; +-crate mod sqrt; +-crate mod sqrte; ++pub(crate) mod macros; ++pub(crate) mod abs; ++pub(crate) mod cos; ++pub(crate) mod cos_pi; ++pub(crate) mod exp; ++pub(crate) mod ln; ++pub(crate) mod mul_add; ++pub(crate) mod mul_adde; ++pub(crate) mod powf; ++pub(crate) mod sin; ++pub(crate) mod sin_cos_pi; ++pub(crate) mod sin_pi; ++pub(crate) mod sqrt; ++pub(crate) mod sqrte; +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/abs.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/abs.rs +index bc4421f..34aacc2 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/abs.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/abs.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait Abs { ++pub(crate) trait Abs { + fn abs(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/cos.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/cos.rs +index 50f6c16..dec390c 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/cos.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/cos.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait Cos { ++pub(crate) trait Cos { + fn cos(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/cos_pi.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/cos_pi.rs +index ebff5fd..e283280 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/cos_pi.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/cos_pi.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait CosPi { ++pub(crate) trait CosPi { + fn cos_pi(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/exp.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/exp.rs +index 00d10e9..a7b2058 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/exp.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/exp.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait Exp { ++pub(crate) trait Exp { + fn exp(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/ln.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/ln.rs +index 88a5a6c..a5e38cb 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/ln.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/ln.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait Ln { ++pub(crate) trait Ln { + fn ln(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/mul_add.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/mul_add.rs +index f48a57d..d37f30f 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/mul_add.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/mul_add.rs +@@ -4,7 +4,7 @@ use crate::*; + + // FIXME: 64-bit 1 element mul_add + +-crate trait MulAdd { ++pub(crate) trait MulAdd { + fn mul_add(self, y: Self, z: Self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/mul_adde.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/mul_adde.rs +index b030c26..c0baeac 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/mul_adde.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/mul_adde.rs +@@ -3,7 +3,7 @@ use crate::*; + + // FIXME: 64-bit 1 element mul_adde + +-crate trait MulAddE { ++pub(crate) trait MulAddE { + fn mul_adde(self, y: Self, z: Self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/powf.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/powf.rs +index bc15067..89ca52e 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/powf.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/powf.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait Powf { ++pub(crate) trait Powf { + fn powf(self, x: Self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/sin.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/sin.rs +index 7b014d0..d881415 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/sin.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/sin.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait Sin { ++pub(crate) trait Sin { + fn sin(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/sin_cos_pi.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/sin_cos_pi.rs +index 75c2c2c..b283d11 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/sin_cos_pi.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/sin_cos_pi.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait SinCosPi: Sized { ++pub(crate) trait SinCosPi: Sized { + type Output; + fn sin_cos_pi(self) -> Self::Output; + } +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/sin_pi.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/sin_pi.rs +index 72df98c..0c8f6bb 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/sin_pi.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/sin_pi.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait SinPi { ++pub(crate) trait SinPi { + fn sin_pi(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/sqrt.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/sqrt.rs +index 7ce31df..67bb0a2 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/sqrt.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/sqrt.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait Sqrt { ++pub(crate) trait Sqrt { + fn sqrt(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/math/float/sqrte.rs b/third_party/rust/packed_simd_2/src/codegen/math/float/sqrte.rs +index c1e379c..58a1de1 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/math/float/sqrte.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/math/float/sqrte.rs +@@ -6,7 +6,7 @@ + use crate::llvm::simd_fsqrt; + use crate::*; + +-crate trait Sqrte { ++pub(crate) trait Sqrte { + fn sqrte(self) -> Self; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/pointer_sized_int.rs b/third_party/rust/packed_simd_2/src/codegen/pointer_sized_int.rs +index 39f493d..55cbc29 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/pointer_sized_int.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/pointer_sized_int.rs +@@ -4,24 +4,24 @@ use cfg_if::cfg_if; + + cfg_if! { + if #[cfg(target_pointer_width = "8")] { +- crate type isize_ = i8; +- crate type usize_ = u8; ++ pub(crate) type isize_ = i8; ++ pub(crate) type usize_ = u8; + } else if #[cfg(target_pointer_width = "16")] { +- crate type isize_ = i16; +- crate type usize_ = u16; ++ pub(crate) type isize_ = i16; ++ pub(crate) type usize_ = u16; + } else if #[cfg(target_pointer_width = "32")] { +- crate type isize_ = i32; +- crate type usize_ = u32; ++ pub(crate) type isize_ = i32; ++ pub(crate) type usize_ = u32; + + } else if #[cfg(target_pointer_width = "64")] { +- crate type isize_ = i64; +- crate type usize_ = u64; ++ pub(crate) type isize_ = i64; ++ pub(crate) type usize_ = u64; + } else if #[cfg(target_pointer_width = "64")] { +- crate type isize_ = i64; +- crate type usize_ = u64; ++ pub(crate) type isize_ = i64; ++ pub(crate) type usize_ = u64; + } else if #[cfg(target_pointer_width = "128")] { +- crate type isize_ = i128; +- crate type usize_ = u128; ++ pub(crate) type isize_ = i128; ++ pub(crate) type usize_ = u128; + } else { + compile_error!("unsupported target_pointer_width"); + } +diff --git a/third_party/rust/packed_simd_2/src/codegen/reductions.rs b/third_party/rust/packed_simd_2/src/codegen/reductions.rs +index 7be4f5f..302ca6d 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/reductions.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/reductions.rs +@@ -1 +1 @@ +-crate mod mask; ++pub(crate) mod mask; +diff --git a/third_party/rust/packed_simd_2/src/codegen/reductions/mask.rs b/third_party/rust/packed_simd_2/src/codegen/reductions/mask.rs +index 0aec609..a78bcc5 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/reductions/mask.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/reductions/mask.rs +@@ -7,11 +7,11 @@ + + use crate::*; + +-crate trait All: crate::marker::Sized { ++pub(crate) trait All: crate::marker::Sized { + unsafe fn all(self) -> bool; + } + +-crate trait Any: crate::marker::Sized { ++pub(crate) trait Any: crate::marker::Sized { + unsafe fn any(self) -> bool; + } + +diff --git a/third_party/rust/packed_simd_2/src/codegen/swap_bytes.rs b/third_party/rust/packed_simd_2/src/codegen/swap_bytes.rs +index a4435e3..9cf34a3 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/swap_bytes.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/swap_bytes.rs +@@ -5,7 +5,7 @@ + + use crate::*; + +-crate trait SwapBytes { ++pub(crate) trait SwapBytes { + fn swap_bytes(self) -> Self; + } + +@@ -15,7 +15,7 @@ macro_rules! impl_swap_bytes { + impl SwapBytes for $id { + #[inline] + fn swap_bytes(self) -> Self { +- unsafe { shuffle!(self, [1, 0]) } ++ shuffle!(self, [1, 0]) + } + } + )+ +diff --git a/third_party/rust/packed_simd_2/src/codegen/vPtr.rs b/third_party/rust/packed_simd_2/src/codegen/vPtr.rs +index cf47655..abd3aa8 100644 +--- a/third_party/rust/packed_simd_2/src/codegen/vPtr.rs ++++ b/third_party/rust/packed_simd_2/src/codegen/vPtr.rs +@@ -5,7 +5,7 @@ macro_rules! impl_simd_ptr { + | $($tys:ty),*) => { + #[derive(Copy, Clone)] + #[repr(simd)] +- pub struct $tuple_id<$ty>($(crate $tys),*); ++ pub struct $tuple_id<$ty>($(pub(crate) $tys),*); + //^^^^^^^ leaked through SimdArray + + impl<$ty> crate::sealed::Seal for [$ptr_ty; $elem_count] {} +diff --git a/third_party/rust/packed_simd_2/src/lib.rs b/third_party/rust/packed_simd_2/src/lib.rs +index 840bae3..cd8a868 100644 +--- a/third_party/rust/packed_simd_2/src/lib.rs ++++ b/third_party/rust/packed_simd_2/src/lib.rs +@@ -217,14 +217,13 @@ + rustc_attrs, + platform_intrinsics, + stdsimd, +- aarch64_target_feature, + arm_target_feature, + link_llvm_intrinsics, + core_intrinsics, + stmt_expr_attributes, +- crate_visibility_modifier, + custom_inner_attributes, + )] ++#![cfg_attr(aarch64_target_feature, feature(aarch64_target_feature))] + #![allow(non_camel_case_types, non_snake_case, + // FIXME: these types are unsound in C FFI already + // See https://github.com/rust-lang/rust/issues/53346 +@@ -344,6 +343,6 @@ pub use self::codegen::llvm::{ + __shuffle_vector8, + }; + +-crate mod llvm { +- crate use crate::codegen::llvm::*; ++pub(crate) mod llvm { ++ pub(crate) use crate::codegen::llvm::*; + } +diff --git a/third_party/rust/packed_simd_2/src/testing.rs b/third_party/rust/packed_simd_2/src/testing.rs +index fcbcf9e..6320b28 100644 +--- a/third_party/rust/packed_simd_2/src/testing.rs ++++ b/third_party/rust/packed_simd_2/src/testing.rs +@@ -5,4 +5,4 @@ mod macros; + + #[cfg(test)] + #[macro_use] +-crate mod utils; ++pub(crate) mod utils; diff --git a/extra/firefox/sources b/extra/firefox/sources index b5768bdd..bf0629b5 100644 --- a/extra/firefox/sources +++ b/extra/firefox/sources @@ -7,3 +7,4 @@ patches/fix-linux-header.patch patches/fix-wayland-only.patch patches/no-dbus.patch patches/no-fribidi.patch +patches/packed_simd_2-0.3.8.patch