diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2023-04-15 20:55:36 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2023-04-18 04:46:19 -0400 |
commit | 81b0cbef5a83bab657c55500b7cde37608d7e5aa (patch) | |
tree | 38c4d76cdb51cd98689e979ff01e967acc6ae2ac /libre/iceweasel | |
parent | e51a98c81ec09d944c5766ed395ffe3abdb3abf6 (diff) |
[iceweasel]: tweak for i686
Diffstat (limited to 'libre/iceweasel')
-rw-r--r-- | libre/iceweasel/PKGBUILD | 47 | ||||
-rw-r--r-- | libre/iceweasel/firefox-107.0-fdlibm.patch | 16 | ||||
-rw-r--r-- | libre/iceweasel/firefox-111.0.1-fdlibm.patch | 21 | ||||
-rw-r--r-- | libre/iceweasel/fix-i686-xsimd-incomplete.patch | 29 |
4 files changed, 72 insertions, 41 deletions
diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD index 0f745387f..d7ec7b9d0 100644 --- a/libre/iceweasel/PKGBUILD +++ b/libre/iceweasel/PKGBUILD @@ -168,8 +168,9 @@ source_armv7h=(build-arm-libopus.patch) source_i686=( avoid-libxul-OOM-python-check.patch rust-static-disable-network-test-on-static-libraries.patch - firefox-107.0-fdlibm.patch + firefox-111.0.1-fdlibm.patch fix-i686-build-moz-1792159.patch + fix-i686-xsimd-incomplete.patch ) validpgpkeys=( '14F26682D0916CDD81E37B6D61B7B526D98F0353' # Mozilla Software Releases <release@mozilla.com> @@ -192,8 +193,9 @@ sha256sums+=('a44dc1e9f2d508203d1cacc2b5bb212c73eb04311da9a036560ff389d7b8e9e6' sha256sums_armv7h=('2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9') sha256sums_i686=('2f0c81a38c4578f68f5456b618fe84a78974072821488173eb55e0e72287e353' '10c5276eab2e87f400a6ec15d7ffbef3b0407ee888dea36f1128927ca55b9041' - '1c2015e9f59c2c3bc898e04c6c6d33523f835638fd314d24944a8063cbce79d8' - '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06') + 'ed3bb281697af7c4353a34067ffb4b18a971d40757bef2d6af3c8bf2d28d42d1' + '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06' + 'c3ce181fbb0142055aa6dd17f3cda2ba6a1e54d7a689a8c6e9cce76aa40e6544') b2sums=('6233ee202d000ddd5b0a2eafff09226abf2cf097ea3e1184442ad34e92f6fd408f1891a2063e459d419ba074218596f48c95c860246d4c46d2a4fca3df27a78a' 'SKIP' 'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635') @@ -208,8 +210,9 @@ b2sums+=('8472a10e5e27cc82f1467dd6592dfee512cd165e39f23ebbb4c8e76bbf6fd8614a4c1f b2sums_armv7h=('6e5980e56343a23bce4fcda58f6abc8f2debca0c278c87b09e53abb17ff15849c26e8df3bbff2388985f8fe5a4e9be9982c602ef7159546f0ae335fca1000a41') b2sums_i686=('97035e44cd1deae7bb2422c81eec7294feb51f43f460b4d7ddba083e1d8a48d265a36ca43cf1d9dee49b01ee6df0c76e0f6916cc73cb7ad9caa1c235a59da0e4' '009789d3bb93ba418929019135804fc3de7de161e5be8efba7fc75646fbde395720be5b7a7d3f5d1671f459fdd2944dd14aca306bbf1c975436d4f7765d62d15' - 'e4851eaa9030d9b8811f505f8f1569a41f8dc7cf586269108ebe370ac91896f69d36fc6d2e1937f427656fe4fca63031ca5e11d39a3667205a4b0a6f935cd548' - 'd20ce3eff595f85df86eaa0dfb665fc356f8987117a771f76adc4ac12046a7e82b0af182fa99f87ea1362a5026c9d0216c7b714649fef0c7294c61c8e8f4d790') + '05c7c9727201971650df4ca2e00539767fc9e159539835c641fccab5ec9577a7294e8f62f5d0670158316e5467ea121c03a36fd4ba153e1d60f3402f0430548d' + 'd20ce3eff595f85df86eaa0dfb665fc356f8987117a771f76adc4ac12046a7e82b0af182fa99f87ea1362a5026c9d0216c7b714649fef0c7294c61c8e8f4d790' + '3e6fd4cebe0fd4c250ccf5b04e12b93e5f4cc2d139301316c987cc07a57b4b6b49b830d745520a82f5ac59da8d17f728a3ecce4dccf21804a2d6a256a6f76472') # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) # anti-feature @@ -235,7 +238,7 @@ readonly _SHOULD_SKIP_PGO=$(case "${CARCH}" in armv7h|i686) echo 1 ;; *) echo 0 # normally not needed ('0') for x86_64 # for 32-bit arches, try one or the other, to resolve compiler/linker issues readonly _SHOULD_USE_GCC==$(case "${CARCH}" in armv7h) echo 1 ;; - i686 ) echo 1 ;; + i686 ) echo 0 ;; x86_64) echo 0 ;; esac) @@ -250,17 +253,6 @@ armv7h) depends+=( icu=72.1 ) # --with-system-icu ;; -i686) - # currently fails to build for i686 - # -> ERROR: Rust compiler 1.63.0 is too old. To compile Rust language sources please install at least version 1.65.0 of the 'rustc' too - - makedepends+=( llvm14 ) # rustup: error while loading shared libraries: libLLVM-14.so: - - makedepends=( ${makedepends[*]/wasi-*/} ) # wasm-ld: error: cannot open /usr/lib/clang/15.0.7/lib/wasi/libclang_rt.builtins-wasm32.a: No such file or directory - makedepends+=( 'wasi-libc++>=15' 'wasi-libc++<16' ) # in [community-testing] - makedepends+=( 'wasi-libc++abi>=15' 'wasi-libc++abi<16' ) # in [community-testing] - makedepends+=( 'wasi-compiler-rt>=15' 'wasi-compiler-rt<16' ) # in [community-testing] - ;; esac @@ -372,12 +364,20 @@ prepare() { # /build/iceweasel/src/firefox-96.0.1/modules/fdlibm/src/math_private.h:34:21: # error: conflicting declaration ‘typedef __double_t double_t’ # /usr/include/math.h:156:21: note: previous declaration as ‘typedef long double double_t’ - echo "applying firefox-107.0-fdlibm.patch" - patch -p1 -i "$srcdir/firefox-107.0-fdlibm.patch" + echo "applying firefox-111.0.1-fdlibm.patch" + patch -p1 -i "$srcdir/firefox-111.0.1-fdlibm.patch" # js/src/jit/shared/AtomicOperations-shared-jit.cpp:88:9: error: ‘AtomicCopyByteUnsynchronized’ was not declared in this scope; did you mean ‘AtomicMemcpyUpUnsynchronized’? echo "applying fix-i686-build-moz-1792159.patch" patch -p1 -i "$srcdir/fix-i686-build-moz-1792159.patch" + + # https://bugs.archlinux32.org/index.php?do=details&task_id=332 + # dom/base/nsTextFragmentGeneric.h:38:16: error: ‘any’ is not a member of ‘xsimd’ + # dom/base/nsTextFragmentGeneric.h:16:70: error: incomplete type ‘xsimd::batch<short int, xsimd::sse2>’ used in nested name specifier + # dom/base/nsTextFragmentGeneric.h:35:31: error: ‘xsimd::batch<short int, xsimd::sse2> vectmask’ has incomplete type + # dom/base/nsTextFragmentGeneric.h:37:64: error: incomplete type ‘xsimd::batch<short int, xsimd::sse2>’ used in nested name specifier + echo "applying fix-i686-xsimd-incomplete.patch" + patch -p1 -i "$srcdir/fix-i686-xsimd-incomplete.patch" ;; x86_64) ;; @@ -524,18 +524,15 @@ END # disable SIMD (SSE2 for i686) # set correct compiler and toochain tools cat >>../mozconfig <<END -#ac_add_options --disable-linker=lld -#ac_add_options --enable-linker=bfd +ac_add_options --disable-linker=lld +ac_add_options --enable-linker=bfd ac_add_options --disable-lto ac_add_options --disable-rust-simd ac_add_options --disable-debug ac_add_options --disable-debug-symbols +ac_add_options --disable-webrtc END - # FIXME GCC: /usr/lib/gcc/i686-pc-linux-gnu/12.1.0/include/xmmintrin.h:208:1: error: inlining failed in call to ‘always_inline’ ‘__m128 _mm_sqrt_ps(__m128)’: target specific option mismatch - # FIXME LLVM: /build/iceweasel/src/firefox-106.0.1/third_party/libwebrtc/modules/audio_processing/aec3/adaptive_fir_filter.cc:110:27: error: always_inline function '_mm_loadu_ps' requires target feature 'sse', but would be inlined into function 'ComputeFrequencyResponse_Sse2' that is compiled without support for 'sse' - echo "ac_add_options --disable-webrtc" >> ../mozconfig - sed -i '/cargo_rustc_flags += -Clto/d' config/makefiles/rust.mk # FIXME: is this needed? # arch32 patching is under the 'technical patching' section diff --git a/libre/iceweasel/firefox-107.0-fdlibm.patch b/libre/iceweasel/firefox-107.0-fdlibm.patch deleted file mode 100644 index 279c41772..000000000 --- a/libre/iceweasel/firefox-107.0-fdlibm.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h -index 165260f00f..1fa2937cae 100644 ---- a/modules/fdlibm/src/math_private.h -+++ b/modules/fdlibm/src/math_private.h -@@ -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; - typedef float __float_t; - diff --git a/libre/iceweasel/firefox-111.0.1-fdlibm.patch b/libre/iceweasel/firefox-111.0.1-fdlibm.patch new file mode 100644 index 000000000..f2c15a2bb --- /dev/null +++ b/libre/iceweasel/firefox-111.0.1-fdlibm.patch @@ -0,0 +1,21 @@ +diff -rauN firefox-111.0.1/modules/fdlibm/src/math_private.h firefox-111.0.1-fdlibm-patch/modules/fdlibm/src/math_private.h +--- firefox-111.0.1/modules/fdlibm/src/math_private.h 2023-03-21 14:16:09.000000000 +0100 ++++ firefox-111.0.1-fdlibm-patch/modules/fdlibm/src/math_private.h 2023-04-08 16:50:07.828564320 +0200 +@@ -30,9 +30,17 @@ + * 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; ++#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2) ++typedef long double __float_t; ++#else + typedef float __float_t; ++#endif + + /* + * The original fdlibm code used statements like: diff --git a/libre/iceweasel/fix-i686-xsimd-incomplete.patch b/libre/iceweasel/fix-i686-xsimd-incomplete.patch new file mode 100644 index 000000000..c0df0054b --- /dev/null +++ b/libre/iceweasel/fix-i686-xsimd-incomplete.patch @@ -0,0 +1,29 @@ +diff --git a/dom/base/nsTextFragmentGeneric.h b/dom/base/nsTextFragmentGeneric.h +index 10e16fcfaa..87d9e0d075 100644 +--- a/dom/base/nsTextFragmentGeneric.h ++++ b/dom/base/nsTextFragmentGeneric.h +@@ -13,7 +13,6 @@ namespace mozilla { + + template <class Arch> + int32_t FirstNon8Bit(const char16_t* str, const char16_t* end) { +- const uint32_t numUnicharsPerVector = xsimd::batch<int16_t, Arch>::size; + using p = Non8BitParameters<sizeof(size_t)>; + const size_t mask = p::mask(); + const uint32_t numUnicharsPerWord = p::numUnicharsPerWord(); +@@ -28,16 +27,6 @@ int32_t FirstNon8Bit(const char16_t* str, const char16_t* end) { + if (str[i] > 255) return i; + } + +- // Check one batch at a time. +- const int32_t vectWalkEnd = +- ((len - i) / numUnicharsPerVector) * numUnicharsPerVector; +- const uint16_t shortMask = 0xff00; +- xsimd::batch<int16_t, Arch> vectmask(static_cast<int16_t>(shortMask)); +- for (; i < vectWalkEnd; i += numUnicharsPerVector) { +- const auto vect = xsimd::batch<int16_t, Arch>::load_aligned(str + i); +- if (xsimd::any((vect & vectmask) != 0)) return i; +- } +- + // Check one word at a time. + const int32_t wordWalkEnd = + ((len - i) / numUnicharsPerWord) * numUnicharsPerWord; |