1*4882a593SmuzhiyunFrom 5465f3e79f961abcf911586ddd3a41c13e1906cb Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Khem Raj <raj.khem@gmail.com>
3*4882a593SmuzhiyunDate: Wed, 13 Feb 2019 09:51:14 -0800
4*4882a593SmuzhiyunSubject: [PATCH] breakpad: Fix build with musl
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun  elf_core_dump.h:59:2: error: "Unsupported __WORDSIZE for ElfCoreDump."
7*4882a593Smuzhiyun  #error "Unsupported __WORDSIZE for ElfCoreDump."
8*4882a593Smuzhiyun   ^
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunUpstream-Status: Pending
11*4882a593SmuzhiyunSigned-off-by: Khem Raj <raj.khem@gmail.com>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun---
14*4882a593Smuzhiyun .../breakpad/src/client/linux/handler/exception_handler.cc  | 6 +++++-
15*4882a593Smuzhiyun .../breakpad/breakpad/src/common/linux/elf_core_dump.h      | 1 +
16*4882a593Smuzhiyun 2 files changed, 6 insertions(+), 1 deletion(-)
17*4882a593Smuzhiyun
18*4882a593Smuzhiyundiff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
19*4882a593Smuzhiyunindex 36de9be320..bdd31b5172 100644
20*4882a593Smuzhiyun--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
21*4882a593Smuzhiyun+++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
22*4882a593Smuzhiyun@@ -488,8 +488,10 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
23*4882a593Smuzhiyun   // ExceptionHandler::HandleSignal().
24*4882a593Smuzhiyun   siginfo.si_code = SI_USER;
25*4882a593Smuzhiyun   siginfo.si_pid = getpid();
26*4882a593Smuzhiyun-  ucontext_t context;
27*4882a593Smuzhiyun+  ucontext_t context = {0};
28*4882a593Smuzhiyun+#if defined(__GLIBC__)
29*4882a593Smuzhiyun   getcontext(&context);
30*4882a593Smuzhiyun+#endif
31*4882a593Smuzhiyun   return HandleSignal(sig, &siginfo, &context);
32*4882a593Smuzhiyun }
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun@@ -674,9 +676,11 @@ bool ExceptionHandler::WriteMinidump() {
35*4882a593Smuzhiyun   sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun   CrashContext context;
38*4882a593Smuzhiyun+#if defined(__GLIBC__)
39*4882a593Smuzhiyun   int getcontext_result = getcontext(&context.context);
40*4882a593Smuzhiyun   if (getcontext_result)
41*4882a593Smuzhiyun     return false;
42*4882a593Smuzhiyun+#endif
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun #if defined(__i386__)
45*4882a593Smuzhiyun   // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
46*4882a593Smuzhiyundiff --git a/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h b/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
47*4882a593Smuzhiyunindex 4f27179f47..343e950530 100644
48*4882a593Smuzhiyun--- a/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
49*4882a593Smuzhiyun+++ b/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
50*4882a593Smuzhiyun@@ -36,6 +36,7 @@
51*4882a593Smuzhiyun #include <limits.h>
52*4882a593Smuzhiyun #include <link.h>
53*4882a593Smuzhiyun #include <stddef.h>
54*4882a593Smuzhiyun+#include <sys/reg.h>
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun #include "common/memory_range.h"
57*4882a593Smuzhiyun
58