forked from pool/MozillaFirefox
4962fbcbc3
- Mozilla Firefox 65.0 - requires NSS 3.41 rust/carge 1.30 rust-cbindgen 0.6.7 -rebased patches OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=709
122 lines
3.8 KiB
Diff
122 lines
3.8 KiB
Diff
|
|
# HG changeset patch
|
|
# User Mike Hommey <mh+mozilla@glandium.org>
|
|
# Date 1526871862 -32400
|
|
# Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
|
|
# Parent 25ab6bab437517a8a182f1ab77898ae13b26a696
|
|
Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
|
|
|
|
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 --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h
|
|
deleted file mode 100644
|
|
--- a/mfbt/LinuxSignal.h
|
|
+++ /dev/null
|
|
@@ -1,38 +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 <void (*H)(int, siginfo_t*, void*)>
|
|
-__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<h>)
|
|
-
|
|
-#else // __arm__
|
|
-
|
|
-#define MOZ_SIGNAL_TRAMPOLINE(h) (h)
|
|
-
|
|
-#endif // __arm__
|
|
-
|
|
-} // namespace mozilla
|
|
-
|
|
-#endif // mozilla_LinuxSignal_h
|
|
diff --git a/mfbt/moz.build b/mfbt/moz.build
|
|
--- a/mfbt/moz.build
|
|
+++ b/mfbt/moz.build
|
|
@@ -124,20 +124,16 @@ EXPORTS["double-conversion"] = [
|
|
LOCAL_INCLUDES += [
|
|
'/mfbt/double-conversion',
|
|
]
|
|
|
|
if CONFIG['OS_ARCH'] == 'WINNT':
|
|
EXPORTS.mozilla += [
|
|
'WindowsVersion.h',
|
|
]
|
|
-elif CONFIG['OS_ARCH'] == 'Linux':
|
|
- EXPORTS.mozilla += [
|
|
- 'LinuxSignal.h',
|
|
- ]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'Assertions.cpp',
|
|
'ChaosMode.cpp',
|
|
'double-conversion/double-conversion/bignum-dtoa.cc',
|
|
'double-conversion/double-conversion/bignum.cc',
|
|
'double-conversion/double-conversion/cached-powers.cc',
|
|
'double-conversion/double-conversion/diy-fp.cc',
|
|
diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
|
|
--- a/tools/profiler/core/platform-linux-android.cpp
|
|
+++ b/tools/profiler/core/platform-linux-android.cpp
|
|
@@ -55,17 +55,16 @@
|
|
#ifdef __GLIBC__
|
|
#include <execinfo.h> // backtrace, backtrace_symbols
|
|
#endif // def __GLIBC__
|
|
#include <strings.h> // index
|
|
#include <errno.h>
|
|
#include <stdarg.h>
|
|
|
|
#include "prenv.h"
|
|
-#include "mozilla/LinuxSignal.h"
|
|
#include "mozilla/PodOperations.h"
|
|
#include "mozilla/DebugOnly.h"
|
|
|
|
#include <string.h>
|
|
#include <list>
|
|
|
|
using namespace mozilla;
|
|
|
|
@@ -248,17 +247,17 @@ Sampler::Sampler(PSLockRef aLock)
|
|
|
|
// NOTE: We don't initialize LUL here, instead initializing it in
|
|
// SamplerThread's constructor. This is because with the
|
|
// profiler_suspend_and_sample_thread entry point, we want to be able to
|
|
// sample without waiting for LUL to be initialized.
|
|
|
|
// 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) {
|
|
MOZ_CRASH("Error installing SIGPROF handler in the profiler");
|
|
}
|
|
}
|
|
|
|
void Sampler::Disable(PSLockRef aLock) {
|