Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP1:GA
MozillaThunderbird.10279
mozilla-bmo1463035.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mozilla-bmo1463035.patch of Package MozillaThunderbird.10279
# HG changeset patch # User Mike Hommey <mh+mozilla@glandium.org> # Date 1526871862 -32400 # Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43 # Parent 4a2e8085417fe782738bfd736b69806d9ed19d6a 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 @@ -115,20 +115,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) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor