diff options
author | mark@chromium.org <mark@chromium.org> | 2015-04-15 19:28:11 +0000 |
---|---|---|
committer | mark@chromium.org <mark@chromium.org> | 2015-04-15 19:28:11 +0000 |
commit | d88401cca9ff7640387a0d88d75de1e7d8fff294 (patch) | |
tree | b47c776a127bb465572e382e752d5d63ca9b544c /src/client/linux/minidump_writer | |
parent | Use __NR_rt_sigaction instead of __NR_sigaction (diff) | |
download | breakpad-d88401cca9ff7640387a0d88d75de1e7d8fff294.tar.xz |
MIPS64: Initial MIPS64 related change.
With this change Breakpad can be compiled for MIPS64,
but it is not yet functional.
Patch by Gordana Cmiljanovic <Gordana.Cmiljanovic@imgtec.com>
Review URL: https://breakpad.appspot.com/6824002/
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1446 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/linux/minidump_writer')
-rw-r--r-- | src/client/linux/minidump_writer/linux_dumper.h | 6 | ||||
-rw-r--r-- | src/client/linux/minidump_writer/minidump_writer.cc | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/client/linux/minidump_writer/linux_dumper.h b/src/client/linux/minidump_writer/linux_dumper.h index 2fc88486..87dfadb4 100644 --- a/src/client/linux/minidump_writer/linux_dumper.h +++ b/src/client/linux/minidump_writer/linux_dumper.h @@ -52,9 +52,11 @@ namespace google_breakpad { // Typedef for our parsing of the auxv variables in /proc/pid/auxv. -#if defined(__i386) || defined(__ARM_EABI__) || defined(__mips__) +#if defined(__i386) || defined(__ARM_EABI__) || \ + (defined(__mips__) && _MIPS_SIM == _ABIO32) typedef Elf32_auxv_t elf_aux_entry; -#elif defined(__x86_64) || defined(__aarch64__) +#elif defined(__x86_64) || defined(__aarch64__) || \ + (defined(__mips__) && _MIPS_SIM != _ABIO32) typedef Elf64_auxv_t elf_aux_entry; #endif diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc index edc7e47d..0414bb72 100644 --- a/src/client/linux/minidump_writer/minidump_writer.cc +++ b/src/client/linux/minidump_writer/minidump_writer.cc @@ -689,10 +689,18 @@ class MinidumpWriter { return false; } +#ifdef __mips__ + if (dyn.d_tag == DT_MIPS_RLD_MAP) { + r_debug = reinterpret_cast<struct r_debug*>(dyn.d_un.d_ptr); + continue; + } +#else if (dyn.d_tag == DT_DEBUG) { r_debug = reinterpret_cast<struct r_debug*>(dyn.d_un.d_ptr); continue; - } else if (dyn.d_tag == DT_NULL) { + } +#endif + else if (dyn.d_tag == DT_NULL) { break; } } |