diff options
-rw-r--r-- | build-aarch64-skia.patch | 21 | ||||
-rw-r--r-- | firefox.spec | 7 | ||||
-rw-r--r-- | mozilla-1512162.patch | 26 |
3 files changed, 53 insertions, 1 deletions
diff --git a/build-aarch64-skia.patch b/build-aarch64-skia.patch index 1ecad24..108316c 100644 --- a/build-aarch64-skia.patch +++ b/build-aarch64-skia.patch @@ -10,3 +10,24 @@ diff -up firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.aarch64-skia return vcvt_f16_f32(f); #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) +diff -up firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old firefox-68.0/gfx/skia/skia/include/private/SkHalf.h +--- firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old 2019-07-09 14:20:12.527441789 +0200 ++++ firefox-68.0/gfx/skia/skia/include/private/SkHalf.h 2019-07-09 14:20:31.744366018 +0200 +@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_ + + static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) { + Sk4h hs = Sk4h::Load(&rgba); +-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) ++#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) + float32x4_t fs; + asm ("fcvtl %[fs].4s, %[hs].4h \n" // vcvt_f32_f16(...) + : [fs] "=w" (fs) // =w: write-only NEON register +@@ -62,7 +62,7 @@ static inline Sk4f SkHalfToFloat_finite_ + } + + static inline Sk4h SkFloatToHalf_finite_ftz(const Sk4f& fs) { +-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) ++#if 0 //!defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) + float32x4_t vec = fs.fVec; + asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec) + : [vec] "+w" (vec)); // +w: read-write NEON register diff --git a/firefox.spec b/firefox.spec index 5305448..91f505e 100644 --- a/firefox.spec +++ b/firefox.spec @@ -86,7 +86,7 @@ ExcludeArch: s390x Summary: Mozilla Firefox Web browser Name: firefox Version: 68.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz @@ -138,6 +138,7 @@ Patch412: mozilla-1337988.patch #Patch413: mozilla-1353817.patch Patch415: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch Patch417: bug1375074-save-restore-x28.patch +Patch418: mozilla-1512162.patch # Wayland specific upstream patches Patch574: firefox-pipewire.patch @@ -335,6 +336,7 @@ This package contains results of tests executed during build. %ifarch %{arm} %patch415 -p1 -b .1238661 %endif +%patch418 -p1 -b .1512162 # Patch for big endian platforms only %if 0%{?big_endian} %patch26 -p1 -b .icu @@ -911,6 +913,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Tue Jul 9 2019 Dan HorĂ¡k <dan[at]danny.cz> - 68.0-3 +- Fix crash on ppc64le (mozilla#1512162) + * Mon Jul 8 2019 Jan Horak <jhorak@redhat.com> - 68.0-2 - Update pipewire patch diff --git a/mozilla-1512162.patch b/mozilla-1512162.patch new file mode 100644 index 0000000..a246a3e --- /dev/null +++ b/mozilla-1512162.patch @@ -0,0 +1,26 @@ +diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp +--- a/js/xpconnect/src/XPCWrappedNative.cpp ++++ b/js/xpconnect/src/XPCWrappedNative.cpp +@@ -1157,6 +1157,10 @@ + return helper.get().Call(); + } + ++#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) ++// Work around a compiler bug on ppc64le (bug 1512162). ++__attribute__ ((noinline,noclone)) ++#endif + bool CallMethodHelper::Call() { + mCallContext.SetRetVal(JS::UndefinedValue()); + +@@ -1315,6 +1319,10 @@ + return true; + } + ++#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) ++// Work around a compiler bug on ppc64le (bug 1512162). ++__attribute__ ((noinline,noclone)) ++#endif + bool CallMethodHelper::GatherAndConvertResults() { + // now we iterate through the native params to gather and convert results + uint8_t paramCount = mMethodInfo->GetParamCount(); + |