Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2022-10-24 20:55:48 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2022-10-24 20:55:48 +0200
commit27e0f91bae59415b7f35ad9a88cd90bb421838c5 (patch)
tree131967568ae9ae7be04d4d1814984c999cb66e0e
parent26eba053340134c0395de8a3f7afcd076e2c18bb (diff)
extra/firefox: AVX2 patch, using gcc 12, bfd linker and fdlibm float_t patching
-rw-r--r--extra/firefox/PKGBUILD31
-rw-r--r--extra/firefox/firefox-106.0.1-fdlibm.patch19
-rw-r--r--extra/firefox/firefox-99.0.1-fdlibm-double.patch15
-rw-r--r--extra/firefox/mozconfig-i686.patch8
-rw-r--r--extra/firefox/mozconfig-pentium4.patch8
-rw-r--r--extra/firefox/simd_avx2.patch11
6 files changed, 64 insertions, 28 deletions
diff --git a/extra/firefox/PKGBUILD b/extra/firefox/PKGBUILD
index 62882c10..5d98c763 100644
--- a/extra/firefox/PKGBUILD
+++ b/extra/firefox/PKGBUILD
@@ -4,7 +4,7 @@
# set correct compiler and toochain tools
if [ "${CARCH}" = "pentium4" ]; then
source+=('mozconfig-pentium4.patch')
- sha256sums+=('e0d62cbed819264cb000a73260201c357a72ce0abcf9eaede3588f270a566f9a')
+ sha256sums+=('c8b5376c4ee3f7dec4c9fe2b81434df4e2f5dd7caa99c8bf4371aec3c32233af')
eval "$(
declare -f prepare | \
sed '
@@ -14,7 +14,7 @@ eval "$(
fi
if [ "${CARCH}" = "i686" ]; then
source+=('mozconfig-i686.patch')
- sha256sums+=('9cdfa0d20ffaf1102b16e4cf97add8819939647316e4c7d65d642e2a7cea1ad0')
+ sha256sums+=('268dce3de0396e6a9529b9105c2c00f06fbe9e8b666f886893d22f569735820a')
eval "$(
declare -f prepare | \
sed '
@@ -28,7 +28,7 @@ eval "$(
declare -f build | \
sed '
2 a export RUSTFLAGS+=" -Cdebuginfo=0 -Clto=off"
- 2 a export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
+ 2 a export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--max-cache-size=16384000 "
'
declare -f prepare | \
sed '
@@ -209,12 +209,16 @@ eval "$(
# 214:49.30 /build/firefox/src/firefox-99.0.1/modules/fdlibm/src/math_private.h:34:21: error: conflicting
# declaration ?typedef __double_t double_t?
-source+=('firefox-99.0.1-fdlibm-double.patch')
-sha256sums+=('62695e56daf8c0b8bb921980d475b3fd169b9134188ad9ffaeb9cd660589c23d')
+# and
+# typedef __float_t float_t;
+# /usr/include/math.h:169:21: note: previous declaration as ?typedef long double float_t?
+# typedef long double float_t;
+source+=('firefox-106.0.1-fdlibm.patch')
+sha256sums+=('ddc0945f2414828668dd922b6b8203f7fb54d7b1f0aac3e18299bccb5c2facab')
eval "$(
declare -f prepare | \
sed '
- $ i patch -p1 -i "$srcdir/firefox-99.0.1-fdlibm-double.patch"
+ $ i patch -p1 -i "$srcdir/firefox-106.0.1-fdlibm.patch"
'
)"
@@ -229,8 +233,13 @@ eval "$(
'
)"
-# 105.0.x has issues with AVX2 creeping everywhere, let's build 104 for now (and hope they fix it)
-sed -i '
- s/^pkgver=105.0.1$/pkgver=104.0.2/
-' PKGBUILD
-sha256sums[0]='72bba06f04e7745f6b02951906413eb1c15a7e253e06e373302162c6219f286a'
+# disable AVX2 the brutal way
+source+=('simd_avx2.patch')
+sha256sums+=('e68f8a9858f14a75813df608510e1f8143fd6eb1fcf233df8239d16d935e80f8')
+eval "$(
+ declare -f prepare | \
+ sed '
+ $ i patch -p1 -i "$srcdir/simd_avx2.patch"
+ '
+)"
+
diff --git a/extra/firefox/firefox-106.0.1-fdlibm.patch b/extra/firefox/firefox-106.0.1-fdlibm.patch
new file mode 100644
index 00000000..5a15d2b3
--- /dev/null
+++ b/extra/firefox/firefox-106.0.1-fdlibm.patch
@@ -0,0 +1,19 @@
+diff -rauN firefox-106.0.1/modules/fdlibm/src/math_private.h firefox-106.0.1-fdlibm-patches/modules/fdlibm/src/math_private.h
+--- firefox-106.0.1/modules/fdlibm/src/math_private.h 2022-10-19 21:20:25.000000000 +0200
++++ firefox-106.0.1-fdlibm-patches/modules/fdlibm/src/math_private.h 2022-10-24 20:43:41.469291933 +0200
+@@ -30,10 +30,14 @@
+ * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
+ */
+
++#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2)
++typedef long double __double_t;
++#else
+ typedef double __double_t;
++#endif
+ typedef __double_t double_t;
+ typedef float __float_t;
+-typedef __float_t float_t;
++/*typedef __float_t float_t;*/
+
+ /*
+ * The original fdlibm code used statements like:
diff --git a/extra/firefox/firefox-99.0.1-fdlibm-double.patch b/extra/firefox/firefox-99.0.1-fdlibm-double.patch
deleted file mode 100644
index ffd4b1d7..00000000
--- a/extra/firefox/firefox-99.0.1-fdlibm-double.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -rauN firefox-99.0.1/modules/fdlibm/src/math_private.h firefox-99.0.1-fdlibm-double-patch/modules/fdlibm/src/math_private.h
---- firefox-99.0.1/modules/fdlibm/src/math_private.h 2022-04-12 00:00:09.000000000 +0200
-+++ firefox-99.0.1-fdlibm-double-patch/modules/fdlibm/src/math_private.h 2022-04-25 16:47:00.697715429 +0200
-@@ -30,7 +30,11 @@
- * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
- */
-
-+#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2)
-+typedef long double __double_t;
-+#else
- typedef double __double_t;
-+#endif
- typedef __double_t double_t;
-
- /*
diff --git a/extra/firefox/mozconfig-i686.patch b/extra/firefox/mozconfig-i686.patch
index 35b0a095..c19df269 100644
--- a/extra/firefox/mozconfig-i686.patch
+++ b/extra/firefox/mozconfig-i686.patch
@@ -12,7 +12,7 @@ diff -rauN a/mozconfig b/mozconfig
ac_add_options --disable-elf-hack
# Branding
-@@ -35,3 +35,5 @@
+@@ -35,3 +35,11 @@
ac_add_options --enable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
@@ -20,3 +20,9 @@ diff -rauN a/mozconfig b/mozconfig
+# pentium4 specific options
+ac_add_options --disable-lto
+ac_add_options --disable-install-strip
++export CC=gcc
++export CXX=g++
++export AR=ar
++export NM=nm
++export RANLIB=ranlib
++export STRIP=strip
diff --git a/extra/firefox/mozconfig-pentium4.patch b/extra/firefox/mozconfig-pentium4.patch
index 1cecd845..8b51064a 100644
--- a/extra/firefox/mozconfig-pentium4.patch
+++ b/extra/firefox/mozconfig-pentium4.patch
@@ -10,7 +10,7 @@ diff -rauN a/mozconfig b/mozconfig
ac_add_options --disable-elf-hack
# Branding
-@@ -35,3 +35,5 @@
+@@ -35,3 +35,11 @@
ac_add_options --enable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
@@ -18,3 +18,9 @@ diff -rauN a/mozconfig b/mozconfig
+# pentium4 specific options
+ac_add_options --disable-lto
+ac_add_options --disable-install-strip
++export CC=gcc
++export CXX=g++
++export AR=ar
++export NM=nm
++export RANLIB=ranlib
++export STRIP=strip
diff --git a/extra/firefox/simd_avx2.patch b/extra/firefox/simd_avx2.patch
new file mode 100644
index 00000000..ee94a034
--- /dev/null
+++ b/extra/firefox/simd_avx2.patch
@@ -0,0 +1,11 @@
+diff -rauN a/mozglue/misc/SIMD_avx2.cpp b/mozglue/misc/SIMD_avx2.cpp
+--- a/mozglue/misc/SIMD_avx2.cpp 2022-10-24 18:34:51.028779452 +0200
++++ b/mozglue/misc/SIMD_avx2.cpp 2022-10-24 18:35:07.818868490 +0200
+@@ -8,6 +8,7 @@
+ #include "mozilla/SSE.h"
+ #include "mozilla/Assertions.h"
+
++#undef MOZILLA_MAY_SUPPORT_AVX2
+ #ifdef MOZILLA_MAY_SUPPORT_AVX2
+
+ # include <cstring>