From 12ce2e0048b0845bdc8f6898d35b0b7d0798182f Mon Sep 17 00:00:00 2001 From: Dan Horák Date: Tue, 9 Jul 2019 13:27:42 +0200 Subject: - Fix crash on ppc64le (mozilla#1512162) --- firefox.spec | 7 ++++++- mozilla-1512162.patch | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 mozilla-1512162.patch 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 - 68.0-3 +- Fix crash on ppc64le (mozilla#1512162) + * Mon Jul 8 2019 Jan Horak - 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(); + -- cgit