diff --git a/extra/firefox/checksums b/extra/firefox/checksums index 91d6f19c..45446ba3 100644 --- a/extra/firefox/checksums +++ b/extra/firefox/checksums @@ -1,4 +1,5 @@ -76bd992e27cd7ba21451b0c93659c4e27347f3086018ba996939ed4b4659095877 +3226e48657e3ca20343cd5b91d87fa705c73125c39434ea825c0c85ecafe90e9bb +f0437c60aa4d861290d267fde30d457b72bb60d7fd8b0192e1ffa41eaf86c4f800 bd231369e10f0300360b79ae2e9b429f1d5833f6a46b615722979c38b6ebb70882 ee279241e461011e2265086328d9d0a913ab938bb81aa97fa22b8b9b7edf5e33bc 8c0f419eb138061e67dbe2ac73e9c8332649fb90aacb57ac4f00d5de94c0cf23a8 diff --git a/extra/firefox/patches/fix-bundled-ffmpeg-binutils.patch b/extra/firefox/patches/fix-bundled-ffmpeg-binutils.patch new file mode 100644 index 00000000..d96d5d79 --- /dev/null +++ b/extra/firefox/patches/fix-bundled-ffmpeg-binutils.patch @@ -0,0 +1,60 @@ +diff --git a/media/ffvpx/libavcodec/x86/mathops.h b/media/ffvpx/libavcodec/x86/mathops.h +index 6298f5e..ca7e2df 100644 +--- a/media/ffvpx/libavcodec/x86/mathops.h ++++ b/media/ffvpx/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + diff --git a/extra/firefox/sources b/extra/firefox/sources index 8b06736d..31c7e49b 100644 --- a/extra/firefox/sources +++ b/extra/firefox/sources @@ -1,4 +1,5 @@ -https://ftp.mozilla.org/pub/firefox/releases/116.0/source/firefox-116.0.source.tar.xz +https://ftp.mozilla.org/pub/firefox/releases/116.0.3/source/firefox-116.0.3.source.tar.xz +patches/fix-bundled-ffmpeg-binutils.patch patches/fix-overalignment.patch patches/musl-sandbox.patch patches/no-atk.patch diff --git a/extra/firefox/version b/extra/firefox/version index 822bbe14..40c6c792 100644 --- a/extra/firefox/version +++ b/extra/firefox/version @@ -1 +1 @@ -116.0 1 +116.0.3 1