firefox: 91.0

This commit is contained in:
Dylan Araps 2021-08-10 09:27:58 +03:00
parent 219a80ee86
commit 8139aaec7f
No known key found for this signature in database
GPG Key ID: 13295DAC2CF13B5C
13 changed files with 225 additions and 2203 deletions

View File

@ -1,126 +0,0 @@
#!/bin/sh -e
patch -p1 < no-x11.patch
# X11-less webrtc patch from bugzilla. Very large so a
# URL is used.
patch -p1 < attachment.cgi\?id=9202429
# Remove fribidi dependency.
sed '/fribidi/d' config/system-headers.mozbuild > _
mv -f _ config/system-headers.mozbuild
# Remove libc header which conflicts with 7 or so Linux
# kernel headers. See: https://github.com/kisslinux/repo/issues/207
_f=dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c
sed '/net\/if/d' "$_f" > _
mv -f _ "$_f"
# Build autoconf 2.13 for Firefox's sole use.
# See: https://bugzilla.mozilla.org/show_bug.cgi?id=104642
(
cd autoconf2.13
./configure \
--prefix="$PWD/../junk" \
--program-suffix=-2.13
make
make install
)
# Build yasm for Firefox's sole use.
# Firefox is the only package which needs it
# and upstream is kinda dead.
(
cd yasm
./configure \
--prefix=/
make
make DESTDIR="$PWD/../junk" install
)
# Build zip for Firefox's sole use.
# Zip is an awful format that we should use
# as little as possible.
(
cd zip
make \
CC="$CC $CFLAGS $CXXFLAGS" \
-f unix/Makefile generic
make \
prefix="$PWD/../junk" \
-f unix/Makefile install
)
export PATH="$PWD/junk/bin:$PATH"
# If using libc++, CXXSTDLIB needs to be set manually.
case $("$CC" -print-file-name=libc++.so) in */*)
export CXXSTDLIB=c++
esac
export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags"
export RUSTFLAGS="$RUSTFLAGS -Cdebuginfo=0"
export MACH_USE_SYSTEM_PYTHON=1
export MOZ_DEBUG_FLAGS=-g0
export MOZ_NOSPAM=1
cat > .mozconfig << EOF
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
ac_add_options --enable-alsa
ac_add_options --enable-strip
ac_add_options --enable-release
ac_add_options --enable-rust-simd
ac_add_options --enable-install-strip
ac_add_options --enable-official-branding
ac_add_options --enable-application=browser
ac_add_options --enable-optimize="${CFLAGS:-} -w"
ac_add_options --with-system-libvpx
ac_add_options --with-system-ffi
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-pixman
ac_add_options --without-system-nss
ac_add_options --without-system-nspr
ac_add_options --disable-eme
ac_add_options --disable-dbus
ac_add_options --disable-gold
ac_add_options --disable-tests
ac_add_options --disable-vtune
ac_add_options --disable-updater
ac_add_options --disable-jemalloc
ac_add_options --disable-elf-hack
ac_add_options --disable-callgrind
ac_add_options --disable-profiling
ac_add_options --disable-necko-wifi
ac_add_options --disable-crashreporter
ac_add_options --disable-pulseaudio
ac_add_options --disable-accessibility
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-parental-controls
ac_add_options --disable-system-extension-dirs
EOF
./mach build
./mach install
# Remove a lot of uneeded "stuff".
rm -rf \
"$1/usr/include" \
"$1/usr/lib/firefox-devel" \
"$1/usr/share/idl" \
"$1/usr/lib/firefox/browser/features/fxmonitor@mozilla.org.xpi" \
"$1/usr/lib/firefox/browser/features/screenshots@mozilla.org.xpi" \
"$1/usr/lib/firefox/browser/features/webcompat-reporter@mozilla.org.xpi" \
"$1/usr/lib/firefox/browser/features/webcompat@mozilla.org.xpi" \
"$1/usr/lib/firefox/browser/features/doh-rollout@mozilla.org.xpi"

View File

@ -1,6 +0,0 @@
33b0fae01ce299351a144548336566ffe7db76c29c37e950377580de892b0085
f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e
3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f
f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369
e2d75a4524f80c310b53f46afcffa6c1fad76393bb1dde6d6d37176036efd918
47d30d0b73d3174f8ebbb6d686892fa5435beb3355ddacded70194ef0249ba51

View File

@ -1,31 +0,0 @@
alsa-lib
atk
bzip2
cairo
cbindgen make
clang make
expat
ffmpeg
fontconfig
freetype-harfbuzz
gdk-pixbuf
glib
gtk+3
libdrm
libffi
libjpeg-turbo
libpng
libvpx
llvm make
m4 make
mesa
nasm make
nodejs make
pango
perl make
pixman
pkgconf make
python make
rust make
wayland
zlib

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
#!/bin/sh
cat <<EOF
Run 'kiss help firefox' for setup
information and general troubleshooting.
Also available here:
https://kisslinux.org/wiki/software/firefox
EOF

View File

@ -1,6 +0,0 @@
https://ftp.mozilla.org/pub/firefox/releases/VERSION/source/firefox-VERSION.source.tar.xz
https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz autoconf2.13/
https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz yasm
https://fossies.org/linux/misc/zip30.tar.gz zip
patches/no-x11.patch
https://bugzilla.mozilla.org/attachment.cgi?id=9202429

View File

@ -1 +0,0 @@
91.0b9 2

View File

@ -2,28 +2,30 @@
patch -p1 < no-x11.patch patch -p1 < no-x11.patch
# Firefox 90 cannot be built with rust 1.54.0. This updates a crate # X11-less webrtc patch from bugzilla. Very large so a URL is used.
# used by Firefox to work around this issue. patch -p1 < attachment.cgi\?id=9202429
{
sed '/const_fn,/d' third_party/rust/packed_simd/src/lib.rs > _
mv -f _ third_party/rust/packed_simd/src/lib.rs
printf '{"package":null,"files":{}}\n' \
> third_party/rust/packed_simd/.cargo-checksum.json
patch -p1 < rust-1.54.0.patch
}
# Remove fribidi dependency. # Remove fribidi dependency.
sed '/fribidi/d' config/system-headers.mozbuild > _ sed '/fribidi/d' config/system-headers.mozbuild > _
mv -f _ config/system-headers.mozbuild mv -f _ config/system-headers.mozbuild
# Remove libc header which conflicts with 7 or so Linux # Remove libc header which conflicts with 7 or so Linux kernel headers.
# kernel headers. See: https://github.com/kisslinux/repo/issues/207 # See: https://github.com/kisslinux/repo/issues/207
_f=dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c _f=dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c
sed '/net\/if/d' "$_f" > _ sed '/net\/if/d' "$_f" > _
mv -f _ "$_f" mv -f _ "$_f"
# The most recent version of Clang is able to build NSS with its integrated
# assembler.
for f in \
security/nss/lib/freebl/Makefile \
security/nss/lib/freebl/freebl.gyp \
security/nss/lib/freebl/freebl_base.gypi
do
sed '/-no-integrated-as/d' "$f" > _
mv -f _ "$f"
done
# Build autoconf 2.13 for Firefox's sole use. # Build autoconf 2.13 for Firefox's sole use.
# See: https://bugzilla.mozilla.org/show_bug.cgi?id=104642 # See: https://bugzilla.mozilla.org/show_bug.cgi?id=104642
( (
@ -118,13 +120,6 @@ ac_add_options --disable-parental-controls
ac_add_options --disable-system-extension-dirs ac_add_options --disable-system-extension-dirs
EOF EOF
# Currently required for X11-less builds.
# See: https://bugzilla.mozilla.org/show_bug.cgi?id=1661450
# https://bugzilla.mozilla.org/show_bug.cgi?id=1654112
cat >> .mozconfig <<EOF
ac_add_options --disable-webrtc
EOF
./mach build ./mach build
./mach install ./mach install

View File

@ -1,6 +1,6 @@
35c45dbc21a7bd59e5daa6b3fef7a08c51ff0a1333f47a355bb1cbc840c3ff59 2a4d1f788ab77f68380d4e6ab0b36bd1efd1a4ac9e9c6d10e39377894c077901
f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e
3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f 3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f
f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369 f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369
a88ecf15a164dd82f9deb6576ff744d4ed1fda7ebd273e63b01e0c1d93c9ed1d e2d75a4524f80c310b53f46afcffa6c1fad76393bb1dde6d6d37176036efd918
8346ee5ef1aa1aea53d76d50044af84f7a26468fd1fa7e9f7a0d5819ed4d81bb 47d30d0b73d3174f8ebbb6d686892fa5435beb3355ddacded70194ef0249ba51

View File

@ -53,10 +53,10 @@ index 12d1a497b9..bec4cd17f0 100644
# define GL_CONTEXT_PROVIDER_DEFAULT GLContextProviderEGL # define GL_CONTEXT_PROVIDER_DEFAULT GLContextProviderEGL
#endif #endif
diff --git a/gfx/gl/GLContextProviderWayland.cpp b/gfx/gl/GLContextProviderWayland.cpp diff --git a/gfx/gl/GLContextProviderWayland.cpp b/gfx/gl/GLContextProviderWayland.cpp
index 36ecf5032a..78e34bfaf0 100644 index 3f1f926cd9..6b61708be9 100644
--- a/gfx/gl/GLContextProviderWayland.cpp --- a/gfx/gl/GLContextProviderWayland.cpp
+++ b/gfx/gl/GLContextProviderWayland.cpp +++ b/gfx/gl/GLContextProviderWayland.cpp
@@ -14,47 +14,65 @@ namespace mozilla::gl { @@ -14,7 +14,9 @@ namespace mozilla::gl {
using namespace mozilla::gfx; using namespace mozilla::gfx;
using namespace mozilla::widget; using namespace mozilla::widget;
@ -65,63 +65,52 @@ index 36ecf5032a..78e34bfaf0 100644
+#endif +#endif
static class GLContextProviderEGL sGLContextProviderEGL; static class GLContextProviderEGL sGLContextProviderEGL;
already_AddRefed<GLContext> GLContextProviderWayland::CreateForCompositorWidget( // Note that if there is no GTK display, `GdkIsX11Display` and
CompositorWidget* aCompositorWidget, bool aHardwareWebRender, @@ -33,9 +35,11 @@ already_AddRefed<GLContext> GLContextProviderWayland::CreateForCompositorWidget(
bool aForceAccelerated) { if (GdkIsWaylandDisplay()) {
+#ifdef MOZ_X11
if (GdkIsX11Display()) {
return sGLContextProviderX11.CreateForCompositorWidget(
aCompositorWidget, aHardwareWebRender, aForceAccelerated);
} else {
+#endif
return sGLContextProviderEGL.CreateForCompositorWidget( return sGLContextProviderEGL.CreateForCompositorWidget(
aCompositorWidget, aHardwareWebRender, aForceAccelerated); aCompositorWidget, aHardwareWebRender, aForceAccelerated);
+#ifdef MOZ_X11 +#ifdef MOZ_X11
} } else {
return sGLContextProviderX11.CreateForCompositorWidget(
aCompositorWidget, aHardwareWebRender, aForceAccelerated);
+#endif +#endif
} }
}
/*static*/ @@ -44,8 +48,10 @@ already_AddRefed<GLContext> GLContextProviderWayland::CreateHeadless(
already_AddRefed<GLContext> GLContextProviderWayland::CreateHeadless(
const GLContextCreateDesc& desc, nsACString* const out_failureId) { const GLContextCreateDesc& desc, nsACString* const out_failureId) {
+#ifdef MOZ_X11 if (GdkIsWaylandDisplay()) {
if (GdkIsX11Display()) {
return sGLContextProviderX11.CreateHeadless(desc, out_failureId);
} else {
+#endif
return sGLContextProviderEGL.CreateHeadless(desc, out_failureId); return sGLContextProviderEGL.CreateHeadless(desc, out_failureId);
+#ifdef MOZ_X11 +#ifdef MOZ_X11
} } else {
return sGLContextProviderX11.CreateHeadless(desc, out_failureId);
+#endif +#endif
} }
}
/*static*/ @@ -53,8 +59,10 @@ already_AddRefed<GLContext> GLContextProviderWayland::CreateHeadless(
GLContext* GLContextProviderWayland::GetGlobalContext() { GLContext* GLContextProviderWayland::GetGlobalContext() {
+#ifdef MOZ_X11 if (GdkIsWaylandDisplay()) {
if (GdkIsX11Display()) {
return sGLContextProviderX11.GetGlobalContext();
} else {
+#endif
return sGLContextProviderEGL.GetGlobalContext(); return sGLContextProviderEGL.GetGlobalContext();
+#ifdef MOZ_X11 +#ifdef MOZ_X11
} } else {
return sGLContextProviderX11.GetGlobalContext();
+#endif +#endif
} }
}
/*static*/ @@ -62,8 +70,10 @@ GLContext* GLContextProviderWayland::GetGlobalContext() {
void GLContextProviderWayland::Shutdown() { void GLContextProviderWayland::Shutdown() {
+#ifdef MOZ_X11 if (GdkIsWaylandDisplay()) {
if (GdkIsX11Display()) {
sGLContextProviderX11.Shutdown();
} else {
+#endif
sGLContextProviderEGL.Shutdown(); sGLContextProviderEGL.Shutdown();
+#ifdef MOZ_X11 +#ifdef MOZ_X11
} } else {
sGLContextProviderX11.Shutdown();
+#endif +#endif
} }
}
} // namespace mozilla::gl
diff --git a/gfx/gl/moz.build b/gfx/gl/moz.build diff --git a/gfx/gl/moz.build b/gfx/gl/moz.build
index 62ad33c786..481fc6d432 100644 index 62ad33c786..481fc6d432 100644
--- a/gfx/gl/moz.build --- a/gfx/gl/moz.build
@ -178,20 +167,20 @@ index 2ecd55b16a..82b56300c6 100644
compositor = new X11BasicCompositor(this, mWidget); compositor = new X11BasicCompositor(this, mWidget);
} else } else
diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp
index 6a703edcf3..b6ad44212c 100644 index 12e01681c7..860e876550 100644
--- a/gfx/thebes/gfxPlatformGtk.cpp --- a/gfx/thebes/gfxPlatformGtk.cpp
+++ b/gfx/thebes/gfxPlatformGtk.cpp +++ b/gfx/thebes/gfxPlatformGtk.cpp
@@ -61,6 +61,9 @@ @@ -62,6 +62,9 @@
# include "mozilla/widget/nsWaylandDisplay.h" # include "mozilla/widget/nsWaylandDisplay.h"
# include "mozilla/widget/DMABufLibWrapper.h" # include "mozilla/widget/DMABufLibWrapper.h"
# include "mozilla/StaticPrefs_widget.h" # include "mozilla/StaticPrefs_widget.h"
+# ifdef MOZ_WIGET_GTK +# ifdef MOZ_WIDGET_GTK
+# include "mozilla/WidgetUtilsGtk.h" +# include "mozilla/WidgetUtilsGtk.h"
+# endif +# endif
#endif #endif
#define GDK_PIXMAP_SIZE_MAX 32767 #define GDK_PIXMAP_SIZE_MAX 32767
@@ -96,7 +99,11 @@ gfxPlatformGtk::gfxPlatformGtk() { @@ -97,7 +100,11 @@ gfxPlatformGtk::gfxPlatformGtk() {
} }
mMaxGenericSubstitutions = UNINITIALIZED_VALUE; mMaxGenericSubstitutions = UNINITIALIZED_VALUE;
@ -203,23 +192,11 @@ index 6a703edcf3..b6ad44212c 100644
if (XRE_IsParentProcess()) { if (XRE_IsParentProcess()) {
#ifdef MOZ_X11 #ifdef MOZ_X11
if (mIsX11Display && mozilla::Preferences::GetBool("gfx.xrender.enabled")) { if (mIsX11Display && mozilla::Preferences::GetBool("gfx.xrender.enabled")) {
@@ -250,9 +257,11 @@ void gfxPlatformGtk::InitWebRenderConfig() {
}
void gfxPlatformGtk::FlushContentDrawing() {
+#ifdef MOZ_X11
if (gfxVars::UseXRender()) {
XFlush(DefaultXDisplay());
}
+#endif
}
void gfxPlatformGtk::InitPlatformGPUProcessPrefs() {
diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build
index c284127164..be9e10542b 100644 index baa7005a8f..387dd29276 100644
--- a/gfx/thebes/moz.build --- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build +++ b/gfx/thebes/moz.build
@@ -119,7 +119,6 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": @@ -118,7 +118,6 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
] ]
EXPORTS.mozilla.gfx += [ EXPORTS.mozilla.gfx += [
"PrintTargetPDF.h", "PrintTargetPDF.h",
@ -227,7 +204,7 @@ index c284127164..be9e10542b 100644
] ]
SOURCES += [ SOURCES += [
"gfxFcPlatformFontList.cpp", "gfxFcPlatformFontList.cpp",
@@ -128,17 +127,18 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": @@ -127,13 +126,13 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
"gfxGdkNativeRenderer.cpp", "gfxGdkNativeRenderer.cpp",
"gfxPlatformGtk.cpp", "gfxPlatformGtk.cpp",
"PrintTargetPDF.cpp", "PrintTargetPDF.cpp",
@ -240,9 +217,12 @@ index c284127164..be9e10542b 100644
"gfxXlibSurface.h", "gfxXlibSurface.h",
+ "PrintTargetPS.h", + "PrintTargetPS.h",
] ]
SOURCES += [ EXPORTS.mozilla.gfx += [
"XlibDisplay.h",
@@ -142,6 +141,7 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
"gfxXlibNativeRenderer.cpp", "gfxXlibNativeRenderer.cpp",
"gfxXlibSurface.cpp", "gfxXlibSurface.cpp",
"XlibDisplay.cpp",
+ "PrintTargetPS.cpp", + "PrintTargetPS.cpp",
] ]
@ -496,20 +476,6 @@ index 4515f4ccc0..2f4795364c 100644
// CompositorWidgetParent should implement CompositorWidget and // CompositorWidgetParent should implement CompositorWidget and
// PCompositorWidgetParent. // PCompositorWidgetParent.
class CompositorWidgetParent; class CompositorWidgetParent;
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
index d74539c464..5beec1cdfa 100644
--- a/widget/gtk/GtkCompositorWidget.cpp
+++ b/widget/gtk/GtkCompositorWidget.cpp
@@ -9,7 +9,9 @@
#include "mozilla/widget/InProcessCompositorWidget.h"
#include "mozilla/widget/PlatformWidgetTypes.h"
#include "nsWindow.h"
+#ifdef MOZ_X11
#include "mozilla/X11Util.h"
+#endif
#ifdef MOZ_WAYLAND
# include "mozilla/layers/NativeLayerWayland.h"
diff --git a/widget/gtk/MozContainer.cpp b/widget/gtk/MozContainer.cpp diff --git a/widget/gtk/MozContainer.cpp b/widget/gtk/MozContainer.cpp
index a1c1c2b124..97d31ba5b7 100644 index a1c1c2b124..97d31ba5b7 100644
--- a/widget/gtk/MozContainer.cpp --- a/widget/gtk/MozContainer.cpp
@ -1520,3 +1486,17 @@ index f882569..1acea03 100644
LOCAL_INCLUDES += [ LOCAL_INCLUDES += [
"/widget/x11", "/widget/x11",
] ]
diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp
index 12e01681c7..b9f526ff45 100644
--- a/gfx/thebes/gfxPlatformGtk.cpp
+++ b/gfx/thebes/gfxPlatformGtk.cpp
@@ -30,7 +30,9 @@
#include "mozilla/FontPropertyTypes.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/gfx/Logging.h"
+#ifdef MOZ_X11
#include "mozilla/gfx/XlibDisplay.h"
+#endif
#include "mozilla/Monitor.h"
#include "mozilla/Preferences.h"
#include "mozilla/StaticPrefs_gfx.h"

View File

@ -1,269 +0,0 @@
From 728d47506fe3a2599818060bd6e02e4bd3e338d5 Mon Sep 17 00:00:00 2001
From: Jubilee Young <workingjubilee@gmail.com>
Date: Sat, 15 May 2021 20:15:42 -0700
Subject: [PATCH] Update shuffle API for const generics
---
src/api/shuffle.rs | 46 +++++++++----------
src/codegen/llvm.rs | 109 ++++++++++++++++++++++++++------------------
src/lib.rs | 3 ++
3 files changed, 90 insertions(+), 68 deletions(-)
diff --git a/third_party/rust/packed_simd/src/api/shuffle.rs b/src/api/shuffle.rs
index da80b912..fda29ccd 100644
--- a/third_party/rust/packed_simd/src/api/shuffle.rs
+++ b/third_party/rust/packed_simd/src/api/shuffle.rs
@@ -75,20 +75,18 @@ macro_rules! shuffle {
($vec0:expr, $vec1:expr, [$l0:expr, $l1:expr]) => {{
#[allow(unused_unsafe)]
unsafe {
- $crate::Simd($crate::__shuffle_vector2(
+ $crate::Simd($crate::__shuffle_vector2::<{[$l0, $l1]}, _, _>(
$vec0.0,
$vec1.0,
- [$l0, $l1],
))
}
}};
($vec0:expr, $vec1:expr, [$l0:expr, $l1:expr, $l2:expr, $l3:expr]) => {{
#[allow(unused_unsafe)]
unsafe {
- $crate::Simd($crate::__shuffle_vector4(
+ $crate::Simd($crate::__shuffle_vector4::<{[$l0, $l1, $l2, $l3]}, _, _>(
$vec0.0,
$vec1.0,
- [$l0, $l1, $l2, $l3],
))
}
}};
@@ -97,10 +95,9 @@ macro_rules! shuffle {
$l4:expr, $l5:expr, $l6:expr, $l7:expr]) => {{
#[allow(unused_unsafe)]
unsafe {
- $crate::Simd($crate::__shuffle_vector8(
+ $crate::Simd($crate::__shuffle_vector8::<{[$l0, $l1, $l2, $l3, $l4, $l5, $l6, $l7]}, _, _>(
$vec0.0,
$vec1.0,
- [$l0, $l1, $l2, $l3, $l4, $l5, $l6, $l7],
))
}
}};
@@ -111,13 +108,14 @@ macro_rules! shuffle {
$l12:expr, $l13:expr, $l14:expr, $l15:expr]) => {{
#[allow(unused_unsafe)]
unsafe {
- $crate::Simd($crate::__shuffle_vector16(
- $vec0.0,
- $vec1.0,
+ $crate::Simd($crate::__shuffle_vector16::<{
[
$l0, $l1, $l2, $l3, $l4, $l5, $l6, $l7, $l8, $l9, $l10,
$l11, $l12, $l13, $l14, $l15,
- ],
+ ]
+ }, _, _>(
+ $vec0.0,
+ $vec1.0,
))
}
}};
@@ -132,15 +130,16 @@ macro_rules! shuffle {
$l28:expr, $l29:expr, $l30:expr, $l31:expr]) => {{
#[allow(unused_unsafe)]
unsafe {
- $crate::Simd($crate::__shuffle_vector32(
- $vec0.0,
- $vec1.0,
+ $crate::Simd($crate::__shuffle_vector32::<{
[
$l0, $l1, $l2, $l3, $l4, $l5, $l6, $l7, $l8, $l9, $l10,
$l11, $l12, $l13, $l14, $l15, $l16, $l17, $l18, $l19,
$l20, $l21, $l22, $l23, $l24, $l25, $l26, $l27, $l28,
$l29, $l30, $l31,
- ],
+ ]
+ }, _, _>(
+ $vec0.0,
+ $vec1.0,
))
}
}};
@@ -163,18 +162,17 @@ macro_rules! shuffle {
$l60:expr, $l61:expr, $l62:expr, $l63:expr]) => {{
#[allow(unused_unsafe)]
unsafe {
- $crate::Simd($crate::__shuffle_vector64(
+ $crate::Simd($crate::__shuffle_vector64::<{[
+ $l0, $l1, $l2, $l3, $l4, $l5, $l6, $l7, $l8, $l9, $l10,
+ $l11, $l12, $l13, $l14, $l15, $l16, $l17, $l18, $l19,
+ $l20, $l21, $l22, $l23, $l24, $l25, $l26, $l27, $l28,
+ $l29, $l30, $l31, $l32, $l33, $l34, $l35, $l36, $l37,
+ $l38, $l39, $l40, $l41, $l42, $l43, $l44, $l45, $l46,
+ $l47, $l48, $l49, $l50, $l51, $l52, $l53, $l54, $l55,
+ $l56, $l57, $l58, $l59, $l60, $l61, $l62, $l63,
+ ]}, _, _>(
$vec0.0,
$vec1.0,
- [
- $l0, $l1, $l2, $l3, $l4, $l5, $l6, $l7, $l8, $l9, $l10,
- $l11, $l12, $l13, $l14, $l15, $l16, $l17, $l18, $l19,
- $l20, $l21, $l22, $l23, $l24, $l25, $l26, $l27, $l28,
- $l29, $l30, $l31, $l32, $l33, $l34, $l35, $l36, $l37,
- $l38, $l39, $l40, $l41, $l42, $l43, $l44, $l45, $l46,
- $l47, $l48, $l49, $l50, $l51, $l52, $l53, $l54, $l55,
- $l56, $l57, $l58, $l59, $l60, $l61, $l62, $l63,
- ],
))
}
}};
diff --git a/third_party/rust/packed_simd/src/codegen/llvm.rs b/src/codegen/llvm.rs
index 93c6ce6b..52b11a95 100644
--- a/third_party/rust/packed_simd/src/codegen/llvm.rs
+++ b/third_party/rust/packed_simd/src/codegen/llvm.rs
@@ -7,52 +7,73 @@ use crate::sealed::Simd;
// Shuffle intrinsics: expanded in users' crates, therefore public.
extern "platform-intrinsic" {
- // FIXME: Passing this intrinsics an `idx` array with an index that is
- // out-of-bounds will produce a monomorphization-time error.
- // https://github.com/rust-lang-nursery/packed_simd/issues/21
- #[rustc_args_required_const(2)]
- pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U
- where
- T: Simd,
- <T as Simd>::Element: Shuffle<[u32; 2], Output = U>;
-
- #[rustc_args_required_const(2)]
- pub fn simd_shuffle4<T, U>(x: T, y: T, idx: [u32; 4]) -> U
- where
- T: Simd,
- <T as Simd>::Element: Shuffle<[u32; 4], Output = U>;
-
- #[rustc_args_required_const(2)]
- pub fn simd_shuffle8<T, U>(x: T, y: T, idx: [u32; 8]) -> U
- where
- T: Simd,
- <T as Simd>::Element: Shuffle<[u32; 8], Output = U>;
-
- #[rustc_args_required_const(2)]
- pub fn simd_shuffle16<T, U>(x: T, y: T, idx: [u32; 16]) -> U
- where
- T: Simd,
- <T as Simd>::Element: Shuffle<[u32; 16], Output = U>;
-
- #[rustc_args_required_const(2)]
- pub fn simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U
- where
- T: Simd,
- <T as Simd>::Element: Shuffle<[u32; 32], Output = U>;
-
- #[rustc_args_required_const(2)]
- pub fn simd_shuffle64<T, U>(x: T, y: T, idx: [u32; 64]) -> U
- where
- T: Simd,
- <T as Simd>::Element: Shuffle<[u32; 64], Output = U>;
+ 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;
}
-pub use self::simd_shuffle16 as __shuffle_vector16;
-pub use self::simd_shuffle2 as __shuffle_vector2;
-pub use self::simd_shuffle32 as __shuffle_vector32;
-pub use self::simd_shuffle4 as __shuffle_vector4;
-pub use self::simd_shuffle64 as __shuffle_vector64;
-pub use self::simd_shuffle8 as __shuffle_vector8;
+#[allow(clippy::missing_safety_doc)]
+#[inline]
+pub unsafe fn __shuffle_vector2<const IDX: [u32; 2], T, U>(x: T, y: T) -> U
+where
+ T: Simd,
+ <T as Simd>::Element: Shuffle<[u32; 2], Output = U>,
+{
+ simd_shuffle2(x, y, IDX)
+}
+
+#[allow(clippy::missing_safety_doc)]
+#[inline]
+pub unsafe fn __shuffle_vector4<const IDX: [u32; 4], T, U>(x: T, y: T) -> U
+where
+ T: Simd,
+ <T as Simd>::Element: Shuffle<[u32; 4], Output = U>,
+{
+ simd_shuffle4(x, y, IDX)
+}
+
+#[allow(clippy::missing_safety_doc)]
+#[inline]
+pub unsafe fn __shuffle_vector8<const IDX: [u32; 8], T, U>(x: T, y: T) -> U
+where
+ T: Simd,
+ <T as Simd>::Element: Shuffle<[u32; 8], Output = U>,
+{
+ simd_shuffle8(x, y, IDX)
+}
+
+#[allow(clippy::missing_safety_doc)]
+#[inline]
+pub unsafe fn __shuffle_vector16<const IDX: [u32; 16], T, U>(x: T, y: T) -> U
+where
+ T: Simd,
+ <T as Simd>::Element: Shuffle<[u32; 16], Output = U>,
+{
+ simd_shuffle16(x, y, IDX)
+}
+
+#[allow(clippy::missing_safety_doc)]
+#[inline]
+pub unsafe fn __shuffle_vector32<const IDX: [u32; 32], T, U>(x: T, y: T) -> U
+where
+ T: Simd,
+ <T as Simd>::Element: Shuffle<[u32; 32], Output = U>,
+{
+ simd_shuffle32(x, y, IDX)
+}
+
+#[allow(clippy::missing_safety_doc)]
+#[inline]
+pub unsafe fn __shuffle_vector64<const IDX: [u32; 64], T, U>(x: T, y: T) -> U
+where
+ T: Simd,
+ <T as Simd>::Element: Shuffle<[u32; 64], Output = U>,
+{
+ simd_shuffle64(x, y, IDX)
+}
extern "platform-intrinsic" {
crate fn simd_eq<T, U>(x: T, y: T) -> U;
diff --git a/third_party/rust/packed_simd/src/lib.rs
b/third_party/rust/packed_simd/src/lib.rs
index 9c9b060..cccdb85 100644
--- a/third_party/rust/packed_simd/src/lib.rs
+++ b/third_party/rust/packed_simd/src/lib.rs
@@ -200,6 +200,7 @@
//! preserving, etc.
#![feature(
+ const_generics,
repr_simd,
rustc_attrs,
platform_intrinsics,
@@ -216,6 +217,7 @@
// FIXME: these types are unsound in C FFI already
// See https://github.com/rust-lang/rust/issues/53346
improper_ctypes_definitions,
+ incomplete_features,
clippy::cast_possible_truncation,
clippy::cast_lossless,
clippy::cast_possible_wrap,
@@ -226,6 +228,7 @@
// See https://github.com/rust-lang/rust-clippy/issues/3410
clippy::use_self,
clippy::wrong_self_convention,
+ clippy::from_over_into,
)]
#![cfg_attr(test, feature(hashmap_internals))]
#![deny(rust_2018_idioms, clippy::missing_inline_in_public_items)]

View File

@ -3,4 +3,4 @@ https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz autoconf2.13/
https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz yasm https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz yasm
https://fossies.org/linux/misc/zip30.tar.gz zip https://fossies.org/linux/misc/zip30.tar.gz zip
patches/no-x11.patch patches/no-x11.patch
patches/rust-1.54.0.patch https://bugzilla.mozilla.org/attachment.cgi?id=9202429

View File

@ -1 +1 @@
90.0.2 1 91.0 1