git: 1c6457a0a625 - main - www/tor-browser: fix build with rust 1.73.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Tue, 24 Oct 2023 10:23:12 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1c6457a0a6250595d188eb57b6ee599d03c8d206

commit 1c6457a0a6250595d188eb57b6ee599d03c8d206
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2023-10-15 17:58:23 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2023-10-24 10:21:38 +0000

    www/tor-browser: fix build with rust 1.73.0
    
    The crate packed_simd_2 is not maintained anymore.
    firefox switched to packed_simd [1] in [2] but
    it's not yet part of tor-browser 12.0.6
    Backport [3] to fix the following issue:
    
    error: unrecognized platform-specific intrinsic function: `simd_shuffle2`
      --> /wrkdirs/usr/ports/www/tor-browser/work/firefox-tor-browser-102.11.0esr-12.0-1-build1/third_party/rust/packed_simd_2/src/codegen/llvm.rs:10:5
       |
    10 |     pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
       |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    [1] https://github.com/rust-lang/packed_simd/
    [2] https://github.com/mozilla/gecko-dev/commit/1e1bec8c6e383abf667d64ba1e556a4e68833f28
    [3] https://github.com/rust-lang/packed_simd/commit/a79edf4cfc54aad30a5630b217645c4b8274d8f7
    
    PR:             274499
    Approved by:    portmgr (build fix blanket)
---
 www/tor-browser/files/patch-rust-1.73.0 | 83 +++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/www/tor-browser/files/patch-rust-1.73.0 b/www/tor-browser/files/patch-rust-1.73.0
new file mode 100644
index 000000000000..b838ffd90d28
--- /dev/null
+++ b/www/tor-browser/files/patch-rust-1.73.0
@@ -0,0 +1,83 @@
+From a79edf4cfc54aad30a5630b217645c4b8274d8f7 Mon Sep 17 00:00:00 2001
+From: Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de>
+Date: Mon, 10 Jul 2023 09:46:53 +0000
+Subject: [PATCH] Stop using old-style `simd_shuffle`
+
+---
+ src/codegen/llvm.rs | 20 +++++++-------------
+ 1 file changed, 7 insertions(+), 13 deletions(-)
+
+diff --git third_party/rust/packed_simd_2/src/codegen/llvm.rs third_party/rust/packed_simd_2/src/codegen/llvm.rs
+index b4c09849..bb482fac 100644
+--- third_party/rust/packed_simd_2/src/codegen/llvm.rs
++++ third_party/rust/packed_simd_2/src/codegen/llvm.rs
+@@ -5,14 +5,8 @@ use crate::sealed::Shuffle;
+ #[allow(unused_imports)] // FIXME: spurious warning?
+ use crate::sealed::Simd;
+ 
+-// Shuffle intrinsics: expanded in users' crates, therefore public.
+ extern "platform-intrinsic" {
+-    pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
+-    pub fn simd_shuffle4<T, U>(x: T, y: T, idx: [u32; 4]) -> U;
+-    pub fn simd_shuffle8<T, U>(x: T, y: T, idx: [u32; 8]) -> U;
+-    pub fn simd_shuffle16<T, U>(x: T, y: T, idx: [u32; 16]) -> U;
+-    pub fn simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U;
+-    pub fn simd_shuffle64<T, U>(x: T, y: T, idx: [u32; 64]) -> U;
++    fn simd_shuffle<T, I, U>(x: T, y: T, idx: I) -> U;
+ }
+ 
+ #[allow(clippy::missing_safety_doc)]
+@@ -22,7 +16,7 @@ where
+     T: Simd,
+     <T as Simd>::Element: Shuffle<[u32; 2], Output = U>,
+ {
+-    simd_shuffle2(x, y, IDX)
++    simd_shuffle(x, y, IDX)
+ }
+ 
+ #[allow(clippy::missing_safety_doc)]
+@@ -32,7 +26,7 @@ where
+     T: Simd,
+     <T as Simd>::Element: Shuffle<[u32; 4], Output = U>,
+ {
+-    simd_shuffle4(x, y, IDX)
++    simd_shuffle(x, y, IDX)
+ }
+ 
+ #[allow(clippy::missing_safety_doc)]
+@@ -42,7 +36,7 @@ where
+     T: Simd,
+     <T as Simd>::Element: Shuffle<[u32; 8], Output = U>,
+ {
+-    simd_shuffle8(x, y, IDX)
++    simd_shuffle(x, y, IDX)
+ }
+ 
+ #[allow(clippy::missing_safety_doc)]
+@@ -52,7 +46,7 @@ where
+     T: Simd,
+     <T as Simd>::Element: Shuffle<[u32; 16], Output = U>,
+ {
+-    simd_shuffle16(x, y, IDX)
++    simd_shuffle(x, y, IDX)
+ }
+ 
+ #[allow(clippy::missing_safety_doc)]
+@@ -62,7 +56,7 @@ where
+     T: Simd,
+     <T as Simd>::Element: Shuffle<[u32; 32], Output = U>,
+ {
+-    simd_shuffle32(x, y, IDX)
++    simd_shuffle(x, y, IDX)
+ }
+ 
+ #[allow(clippy::missing_safety_doc)]
+@@ -72,7 +66,7 @@ where
+     T: Simd,
+     <T as Simd>::Element: Shuffle<[u32; 64], Output = U>,
+ {
+-    simd_shuffle64(x, y, IDX)
++    simd_shuffle(x, y, IDX)
+ }
+ 
+ extern "platform-intrinsic" {