From 9aeb76d27282889923e9fbbd3349e795f79a4728 Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Wed, 6 Mar 2019 09:04:36 +0100 Subject: libre/icecat: rebuilt --- libre/icecat/mozilla-1463035.patch | 97 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 libre/icecat/mozilla-1463035.patch (limited to 'libre/icecat/mozilla-1463035.patch') diff --git a/libre/icecat/mozilla-1463035.patch b/libre/icecat/mozilla-1463035.patch new file mode 100644 index 000000000..5a6cabbb0 --- /dev/null +++ b/libre/icecat/mozilla-1463035.patch @@ -0,0 +1,97 @@ + +# HG changeset patch +# User Mike Hommey +# Date 1526871862 -32400 +# Node ID 98e368b5c4beb0a183b1260236f47e0c5937d9a8 +# Parent 649acbb993c3e469380692e22f276e23707606de +Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r=jchen + +For some reason, GNU as is not happy with the assembly generated after +bug 1238661 anymore on Debian armel. + +OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this +workaround anymore, so let's just kill it. + +diff -rupN firefox-65.0.1/mfbt/LinuxSignal.h firefox-65.0.1.new/mfbt/LinuxSignal.h +--- firefox-65.0.1/mfbt/LinuxSignal.h 2019-02-12 02:56:57.000000000 +0100 ++++ firefox-65.0.1.new/mfbt/LinuxSignal.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,45 +0,0 @@ +-/* This Source Code Form is subject to the terms of the Mozilla Public +- * License, v. 2.0. If a copy of the MPL was not distributed with this +- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +- +-#ifndef mozilla_LinuxSignal_h +-#define mozilla_LinuxSignal_h +- +-namespace mozilla { +- +-#if defined(__arm__) +- +-// Some (old) Linux kernels on ARM have a bug where a signal handler +-// can be called without clearing the IT bits in CPSR first. The result +-// is that the first few instructions of the handler could be skipped, +-// ultimately resulting in crashes. To workaround this bug, the handler +-// on ARM is a trampoline that starts with enough NOP instructions, so +-// that even if the IT bits are not cleared, only the NOP instructions +-// will be skipped over. +- +-template +-__attribute__((naked)) void +-SignalTrampoline(int aSignal, siginfo_t* aInfo, void* aContext) +-{ +- asm volatile ( +- "nop; nop; nop; nop" +- : : : "memory"); +- +- asm volatile ( +- "b %0" +- : +- : "X"(H) +- : "memory"); +-} +- +-# define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline) +- +-#else // __arm__ +- +-# define MOZ_SIGNAL_TRAMPOLINE(h) (h) +- +-#endif // __arm__ +- +-} // namespace mozilla +- +-#endif // mozilla_LinuxSignal_h +diff -rupN firefox-65.0.1/mfbt/moz.build firefox-65.0.1.new/mfbt/moz.build +--- firefox-65.0.1/mfbt/moz.build 2019-02-12 02:56:57.000000000 +0100 ++++ firefox-65.0.1.new/mfbt/moz.build 2019-02-27 07:45:26.769777002 +0100 +@@ -129,10 +129,6 @@ if CONFIG['OS_ARCH'] == 'WINNT': + EXPORTS.mozilla += [ + 'WindowsVersion.h', + ] +-elif CONFIG['OS_ARCH'] == 'Linux': +- EXPORTS.mozilla += [ +- 'LinuxSignal.h', +- ] + + UNIFIED_SOURCES += [ + 'Assertions.cpp', +diff -rupN firefox-65.0.1/tools/profiler/core/platform-linux-android.cpp firefox-65.0.1.new/tools/profiler/core/platform-linux-android.cpp +--- firefox-65.0.1/tools/profiler/core/platform-linux-android.cpp 2019-02-12 02:57:01.000000000 +0100 ++++ firefox-65.0.1.new/tools/profiler/core/platform-linux-android.cpp 2019-02-27 07:48:30.537878312 +0100 +@@ -60,7 +60,6 @@ + #include + + #include "prenv.h" +-#include "mozilla/LinuxSignal.h" + #include "mozilla/PodOperations.h" + #include "mozilla/DebugOnly.h" + +@@ -253,7 +252,7 @@ Sampler::Sampler(PSLockRef aLock) + + // Request profiling signals. + struct sigaction sa; +- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler); ++ sa.sa_sigaction = SigprofHandler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_RESTART | SA_SIGINFO; + if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) { -- cgit v1.2.3