Bug 1585305 - Add bug 1524194 to the breakpad patches we apply locally to prevent updates from clobbering it r=sylvestre
authorGabriele Svelto <gsvelto@mozilla.com>
Tue, 01 Oct 2019 17:47:53 +0000
changeset 495873 b26f1c83ee031629b6a2fe5f2f24a184d4e9bab1
parent 495872 ddfb38a12cdf889db6ab490cf05a93405171b93d
child 495874 8003680668ad9d8858d06ced667683f15e80b824
push id114140
push userdvarga@mozilla.com
push dateWed, 02 Oct 2019 18:04:51 +0000
treeherdermozilla-inbound@32eb0ea893f3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssylvestre
bugs1585305, 1524194
milestone71.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1585305 - Add bug 1524194 to the breakpad patches we apply locally to prevent updates from clobbering it r=sylvestre Differential Revision: https://phabricator.services.mozilla.com/D47766
toolkit/crashreporter/breakpad-patches/08-dont-add-sp-to-clobber-list.patch
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/breakpad-patches/08-dont-add-sp-to-clobber-list.patch
@@ -0,0 +1,47 @@
+changeset:   543157:f54952905cb1
+user:        Sylvestre Ledru <sledru@mozilla.com>
+date:        Fri Jun 14 07:14:08 2019 +0000
+summary:     Bug 1524194 - Do not add stack pointer to clobber list r=gsvelto
+
+diff --git a/src/third_party/lss/linux_syscall_support.h b/src/third_party/lss/linux_syscall_support.h
+--- a/src/third_party/lss/linux_syscall_support.h
++++ b/src/third_party/lss/linux_syscall_support.h
+@@ -1959,17 +1959,17 @@ struct kernel_statfs {
+       LSS_RETURN(type,__res)
+     #undef  _syscall0
+     #define _syscall0(type,name)                                              \
+       type LSS_NAME(name)(void) {                                             \
+         long __res;                                                           \
+         __asm__ volatile(LSS_ENTRYPOINT                                       \
+                          : "=a" (__res)                                       \
+                          : "0" (__NR_##name)                                  \
+-                         : "esp", "memory");                                  \
++                         : "memory");                                         \
+         LSS_RETURN(type,__res);                                               \
+       }
+     #undef  _syscall1
+     #define _syscall1(type,name,type1,arg1)                                   \
+       type LSS_NAME(name)(type1 arg1) {                                       \
+         LSS_BODY(type,                                                        \
+              : "=a" (__res)                                                   \
+              : "0" (__NR_##name), "ri" ((long)(arg1)));                       \
+@@ -2400,17 +2400,17 @@ struct kernel_statfs {
+                              : "0"(-EINVAL), "i"(__NR_clone), "i"(__NR_exit),
+                                "r"(LSS_SYSCALL_ARG(fn)),
+                                "S"(LSS_SYSCALL_ARG(child_stack)),
+                                "D"(LSS_SYSCALL_ARG(flags)),
+                                "r"(LSS_SYSCALL_ARG(arg)),
+                                "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+                                "r"(LSS_SYSCALL_ARG(newtls)),
+                                "r"(LSS_SYSCALL_ARG(child_tidptr))
+-                             : "rsp", "memory", "r8", "r10", "r11", "rcx");
++                             : "memory", "r8", "r10", "r11", "rcx");
+       }
+       LSS_RETURN(int, __res);
+     }
+     LSS_INLINE _syscall2(int, arch_prctl, int, c, void *, a)
+ 
+     LSS_INLINE void (*LSS_NAME(restore_rt)(void))(void) {
+       /* On x86-64, the kernel does not know how to return from
+        * a signal handler. Instead, it relies on user space to provide a
+