Blob Blame History Raw
--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/thread_info.cc.port	2021-10-11 15:41:23.000000000 +0900
+++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/thread_info.cc	2021-11-09 11:04:57.375470034 +0900
@@ -270,9 +270,19 @@ void ThreadInfo::FillCPUContext(RawConte
   out->float_save.fir = mcontext.fpc_eir;
 #endif
 }
+
+#else
+uintptr_t ThreadInfo::GetInstructionPointer() const {
+  return 0;
+}
+
+void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+}
+
 #endif  // __mips__
 
 void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) {
+#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) ||  defined(__mips__)
   assert(gp_regs || size);
 #if defined(__mips__)
   if (gp_regs)
@@ -285,9 +295,11 @@ void ThreadInfo::GetGeneralPurposeRegist
   if (size)
     *size = sizeof(regs);
 #endif
+#endif
 }
 
 void ThreadInfo::GetFloatingPointRegisters(void** fp_regs, size_t* size) {
+#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) ||  defined(__mips__)
   assert(fp_regs || size);
 #if defined(__mips__)
   if (fp_regs)
@@ -300,6 +312,7 @@ void ThreadInfo::GetFloatingPointRegiste
   if (size)
     *size = sizeof(fpregs);
 #endif
+#endif
 }
 
 }  // namespace google_breakpad
--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.port	2021-11-09 12:13:14.526068539 +0900
+++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc	2021-11-09 12:13:47.079160354 +0900
@@ -254,6 +254,16 @@ void UContextReader::FillCPUContext(RawC
   out->float_save.fir = uc->uc_mcontext.fpc_eir;  // Unused.
 #endif
 }
+
+#else
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+  return 0;
+}
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+  return 0;
+}
+void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc) {
+}
 #endif
 
 }  // namespace google_breakpad
--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/handler/exception_handler.cc.port	2021-11-09 11:04:57.135469882 +0900
+++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/handler/exception_handler.cc	2021-11-09 12:06:47.875738562 +0900
@@ -441,6 +441,7 @@ int ExceptionHandler::ThreadEntry(void*
 // This function runs in a compromised context: see the top of the file.
 // Runs on the crashing thread.
 bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) ||  defined(__mips__)
   if (filter_ && !filter_(callback_context_))
     return false;
 
@@ -482,6 +483,9 @@ bool ExceptionHandler::HandleSignal(int
     }
   }
   return GenerateDump(&g_crash_context_);
+#else
+  return false;
+#endif
 }
 
 // This is a public interface to HandleSignal that allows the client to
@@ -660,6 +664,7 @@ bool ExceptionHandler::WriteMinidump(con
 __attribute__((optimize("no-omit-frame-pointer")))
 #endif
 bool ExceptionHandler::WriteMinidump() {
+#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) ||  defined(__mips__)
   if (!IsOutOfProcess() && !minidump_descriptor_.IsFD() &&
       !minidump_descriptor_.IsMicrodumpOnConsole()) {
     // Update the path of the minidump so that this can be called multiple times
@@ -734,6 +739,9 @@ bool ExceptionHandler::WriteMinidump() {
 #endif
 
   return GenerateDump(&context);
+#else
+  return false;
+#endif
 }
 
 void ExceptionHandler::AddMappingInfo(const string& name,
--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.port	2021-10-11 15:41:23.000000000 +0900
+++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/microdump_writer/microdump_writer.cc	2021-11-09 12:20:24.529281407 +0900
@@ -338,7 +338,7 @@ class MicrodumpWriter {
 #  error "This mips ABI is currently not supported (n32)"
 #endif
 #else
-#error "This code has not been ported to your platform yet"
+    const char kArch[] = "unknown";
 #endif
 
     LogAppend("O ");
@@ -409,11 +409,15 @@ class MicrodumpWriter {
   void DumpCPUState() {
     RawContextCPU cpu;
     my_memset(&cpu, 0, sizeof(RawContextCPU));
+#if !defined(__i386__) && !defined(__x86_64) && !defined(__aarch64__)
+    UContextReader::FillCPUContext(&cpu, ucontext_);
+#else
 #if !defined(__ARM_EABI__) && !defined(__mips__)
     UContextReader::FillCPUContext(&cpu, ucontext_, float_state_);
 #else
     UContextReader::FillCPUContext(&cpu, ucontext_);
 #endif
+#endif
     LogAppend("C ");
     LogAppend(&cpu, sizeof(cpu));
     LogCommitLine();
--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_dumper.h.port	2021-10-11 15:41:23.000000000 +0900
+++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_dumper.h	2021-11-09 11:04:57.384470040 +0900
@@ -63,6 +63,7 @@ namespace google_breakpad {
  (defined(__mips__) && _MIPS_SIM == _ABIO32)
 typedef Elf32_auxv_t elf_aux_entry;
 #elif defined(__x86_64) || defined(__aarch64__) || \
+      defined(__powerpc64__) || defined(__s390x__) || \
      (defined(__mips__) && _MIPS_SIM != _ABIO32)
 typedef Elf64_auxv_t elf_aux_entry;
 #endif
--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc.port	2021-10-11 15:41:23.000000000 +0900
+++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc	2021-11-09 11:04:57.384470040 +0900
@@ -198,6 +198,7 @@ bool LinuxPtraceDumper::ReadRegisters(Th
 // these members are set to -1. Returns true iff all three members are
 // available.
 bool LinuxPtraceDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) {
+#if defined(__i386) || defined(__x86_64) || defined(__ARM_EABI__) || defined(__aarch64__) ||  defined(__mips__)
   if (index >= threads_.size())
     return false;
 
@@ -304,6 +305,9 @@ bool LinuxPtraceDumper::GetThreadInfoByI
   info->stack_pointer = reinterpret_cast<uintptr_t>(stack_pointer);
 
   return true;
+#else
+  return false;
+#endif
 }
 
 bool LinuxPtraceDumper::IsPostMortem() const {
--- ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.port	2021-10-11 15:41:23.000000000 +0900
+++ ugene-40.1/src/libs_3rdparty/breakpad/src/client/linux/minidump_writer/minidump_writer.cc	2021-11-09 12:20:06.954231835 +0900
@@ -468,11 +468,15 @@ class MinidumpWriter {
         if (!cpu.Allocate())
           return false;
         my_memset(cpu.get(), 0, sizeof(RawContextCPU));
+#if !defined(__i386__) && !defined(__x86_64) && !defined(__aarch64__)
+        UContextReader::FillCPUContext(cpu.get(), ucontext_);
+#else
 #if !defined(__ARM_EABI__) && !defined(__mips__)
         UContextReader::FillCPUContext(cpu.get(), ucontext_, float_state_);
 #else
         UContextReader::FillCPUContext(cpu.get(), ucontext_);
 #endif
+#endif
         thread.thread_context = cpu.location();
         crashing_thread_context_ = cpu.location();
       } else {
@@ -1206,7 +1210,7 @@ class MinidumpWriter {
     return true;
   }
 #else
-#  error "Unsupported CPU"
+  bool WriteCPUInformation(MDRawSystemInfo* sys_info) { return false; }
 #endif
 
   bool WriteFile(MDLocationDescriptor* result, const char* filename) {