1 |
1 |
2 # HG changeset patch |
2 # HG changeset patch |
3 # User Mike Hommey <mh+mozilla@glandium.org> |
3 # User Mike Hommey <mh+mozilla@glandium.org> |
4 # Date 1526871862 -32400 |
4 # Date 1526871862 -32400 |
5 # Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43 |
5 # Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43 |
6 # Parent 25ab6bab437517a8a182f1ab77898ae13b26a696 |
6 # Parent fc741a5ea37dbe145e0ca5f85e5dfb100f3c9091 |
7 Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons |
7 Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons |
8 |
8 |
9 For some reason, GNU as is not happy with the assembly generated after |
9 For some reason, GNU as is not happy with the assembly generated after |
10 bug 1238661 anymore on Debian armel. |
10 bug 1238661 anymore on Debian armel. |
11 |
11 |
12 OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this |
12 OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this |
13 workaround anymore, so let's just kill it. |
13 workaround anymore, so let's just kill it. |
14 |
14 |
15 diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h |
|
16 deleted file mode 100644 |
|
17 --- a/mfbt/LinuxSignal.h |
|
18 +++ /dev/null |
|
19 @@ -1,38 +0,0 @@ |
|
20 -/* This Source Code Form is subject to the terms of the Mozilla Public |
|
21 - * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
22 - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
23 - |
|
24 -#ifndef mozilla_LinuxSignal_h |
|
25 -#define mozilla_LinuxSignal_h |
|
26 - |
|
27 -namespace mozilla { |
|
28 - |
|
29 -#if defined(__arm__) |
|
30 - |
|
31 -// Some (old) Linux kernels on ARM have a bug where a signal handler |
|
32 -// can be called without clearing the IT bits in CPSR first. The result |
|
33 -// is that the first few instructions of the handler could be skipped, |
|
34 -// ultimately resulting in crashes. To workaround this bug, the handler |
|
35 -// on ARM is a trampoline that starts with enough NOP instructions, so |
|
36 -// that even if the IT bits are not cleared, only the NOP instructions |
|
37 -// will be skipped over. |
|
38 - |
|
39 -template <void (*H)(int, siginfo_t*, void*)> |
|
40 -__attribute__((naked)) void SignalTrampoline(int aSignal, siginfo_t* aInfo, |
|
41 - void* aContext) { |
|
42 - asm volatile("nop; nop; nop; nop" : : : "memory"); |
|
43 - |
|
44 - asm volatile("b %0" : : "X"(H) : "memory"); |
|
45 -} |
|
46 - |
|
47 -#define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>) |
|
48 - |
|
49 -#else // __arm__ |
|
50 - |
|
51 -#define MOZ_SIGNAL_TRAMPOLINE(h) (h) |
|
52 - |
|
53 -#endif // __arm__ |
|
54 - |
|
55 -} // namespace mozilla |
|
56 - |
|
57 -#endif // mozilla_LinuxSignal_h |
|
58 diff --git a/mfbt/moz.build b/mfbt/moz.build |
15 diff --git a/mfbt/moz.build b/mfbt/moz.build |
59 --- a/mfbt/moz.build |
16 --- a/mfbt/moz.build |
60 +++ b/mfbt/moz.build |
17 +++ b/mfbt/moz.build |
61 @@ -124,20 +124,16 @@ EXPORTS["double-conversion"] = [ |
18 @@ -122,20 +122,16 @@ EXPORTS["double-conversion"] = [ |
62 LOCAL_INCLUDES += [ |
19 LOCAL_INCLUDES += [ |
63 '/mfbt/double-conversion', |
20 '/mfbt/double-conversion', |
64 ] |
21 ] |
65 |
22 |
66 if CONFIG['OS_ARCH'] == 'WINNT': |
23 if CONFIG['OS_ARCH'] == 'WINNT': |
82 diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp |
39 diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp |
83 --- a/tools/profiler/core/platform-linux-android.cpp |
40 --- a/tools/profiler/core/platform-linux-android.cpp |
84 +++ b/tools/profiler/core/platform-linux-android.cpp |
41 +++ b/tools/profiler/core/platform-linux-android.cpp |
85 @@ -55,17 +55,16 @@ |
42 @@ -55,17 +55,16 @@ |
86 #ifdef __GLIBC__ |
43 #ifdef __GLIBC__ |
87 #include <execinfo.h> // backtrace, backtrace_symbols |
44 # include <execinfo.h> // backtrace, backtrace_symbols |
88 #endif // def __GLIBC__ |
45 #endif // def __GLIBC__ |
89 #include <strings.h> // index |
46 #include <strings.h> // index |
90 #include <errno.h> |
47 #include <errno.h> |
91 #include <stdarg.h> |
48 #include <stdarg.h> |
92 |
49 |
93 #include "prenv.h" |
50 #include "prenv.h" |
94 -#include "mozilla/LinuxSignal.h" |
51 -#include "mozilla/LinuxSignal.h" |