1076
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
1 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
2 |
# HG changeset patch
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
3 |
# User Mike Hommey <mh+mozilla@glandium.org>
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
4 |
# Date 1526871862 -32400
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
5 |
# Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
6 |
# Parent 1800b8895c08bc0c60302775dc0a4b5ea4deb310
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
7 |
Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
8 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
9 |
For some reason, GNU as is not happy with the assembly generated after
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
10 |
bug 1238661 anymore on Debian armel.
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
11 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
12 |
OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
13 |
workaround anymore, so let's just kill it.
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
14 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
15 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
16 |
diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
17 |
deleted file mode 100644
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
18 |
--- a/mfbt/LinuxSignal.h
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
19 |
+++ /dev/null
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
20 |
@@ -1,45 +0,0 @@
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
21 |
-/* This Source Code Form is subject to the terms of the Mozilla Public
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
22 |
- * License, v. 2.0. If a copy of the MPL was not distributed with this
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
23 |
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
24 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
25 |
-#ifndef mozilla_LinuxSignal_h
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
26 |
-#define mozilla_LinuxSignal_h
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
27 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
28 |
-namespace mozilla {
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
29 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
30 |
-#if defined(__arm__)
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
31 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
32 |
-// Some (old) Linux kernels on ARM have a bug where a signal handler
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
33 |
-// can be called without clearing the IT bits in CPSR first. The result
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
34 |
-// is that the first few instructions of the handler could be skipped,
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
35 |
-// ultimately resulting in crashes. To workaround this bug, the handler
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
36 |
-// on ARM is a trampoline that starts with enough NOP instructions, so
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
37 |
-// that even if the IT bits are not cleared, only the NOP instructions
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
38 |
-// will be skipped over.
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
39 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
40 |
-template <void (*H)(int, siginfo_t*, void*)>
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
41 |
-__attribute__((naked)) void
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
42 |
-SignalTrampoline(int aSignal, siginfo_t* aInfo, void* aContext)
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
43 |
-{
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
44 |
- asm volatile (
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
45 |
- "nop; nop; nop; nop"
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
46 |
- : : : "memory");
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
47 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
48 |
- asm volatile (
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
49 |
- "b %0"
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
50 |
- :
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
51 |
- : "X"(H)
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
52 |
- : "memory");
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
53 |
-}
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
54 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
55 |
-# define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
56 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
57 |
-#else // __arm__
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
58 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
59 |
-# define MOZ_SIGNAL_TRAMPOLINE(h) (h)
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
60 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
61 |
-#endif // __arm__
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
62 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
63 |
-} // namespace mozilla
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
64 |
-
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
65 |
-#endif // mozilla_LinuxSignal_h
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
66 |
diff --git a/mfbt/moz.build b/mfbt/moz.build
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
67 |
--- a/mfbt/moz.build
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
68 |
+++ b/mfbt/moz.build
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
69 |
@@ -117,20 +117,16 @@ EXPORTS["double-conversion"] = [
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
70 |
LOCAL_INCLUDES += [
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
71 |
'/mfbt/double-conversion',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
72 |
]
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
73 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
74 |
if CONFIG['OS_ARCH'] == 'WINNT':
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
75 |
EXPORTS.mozilla += [
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
76 |
'WindowsVersion.h',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
77 |
]
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
78 |
-elif CONFIG['OS_ARCH'] == 'Linux':
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
79 |
- EXPORTS.mozilla += [
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
80 |
- 'LinuxSignal.h',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
81 |
- ]
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
82 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
83 |
UNIFIED_SOURCES += [
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
84 |
'Assertions.cpp',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
85 |
'ChaosMode.cpp',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
86 |
'double-conversion/double-conversion/bignum-dtoa.cc',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
87 |
'double-conversion/double-conversion/bignum.cc',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
88 |
'double-conversion/double-conversion/cached-powers.cc',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
89 |
'double-conversion/double-conversion/diy-fp.cc',
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
90 |
diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
91 |
--- a/tools/profiler/core/platform-linux-android.cpp
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
92 |
+++ b/tools/profiler/core/platform-linux-android.cpp
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
93 |
@@ -55,17 +55,16 @@
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
94 |
#ifdef __GLIBC__
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
95 |
#include <execinfo.h> // backtrace, backtrace_symbols
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
96 |
#endif // def __GLIBC__
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
97 |
#include <strings.h> // index
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
98 |
#include <errno.h>
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
99 |
#include <stdarg.h>
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
100 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
101 |
#include "prenv.h"
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
102 |
-#include "mozilla/LinuxSignal.h"
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
103 |
#include "mozilla/PodOperations.h"
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
104 |
#include "mozilla/DebugOnly.h"
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
105 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
106 |
#include <string.h>
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
107 |
#include <list>
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
108 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
109 |
using namespace mozilla;
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
110 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
111 |
@@ -272,17 +271,17 @@ Sampler::Sampler(PSLockRef aLock)
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
112 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
113 |
// NOTE: We don't initialize LUL here, instead initializing it in
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
114 |
// SamplerThread's constructor. This is because with the
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
115 |
// profiler_suspend_and_sample_thread entry point, we want to be able to
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
116 |
// sample without waiting for LUL to be initialized.
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
117 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
118 |
// Request profiling signals.
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
119 |
struct sigaction sa;
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
120 |
- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
121 |
+ sa.sa_sigaction = SigprofHandler;
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
122 |
sigemptyset(&sa.sa_mask);
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
123 |
sa.sa_flags = SA_RESTART | SA_SIGINFO;
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
124 |
if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
125 |
MOZ_CRASH("Error installing SIGPROF handler in the profiler");
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
126 |
}
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
127 |
}
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
128 |
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
129 |
void
|
Guillaume GARDET <guillaume.gardet@opensuse.org>
parents:
diff
changeset
|
130 |
|