diff options
author | carlosvaldivia@google.com <carlosvaldivia@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-09 19:27:22 +0000 |
---|---|---|
committer | carlosvaldivia@google.com <carlosvaldivia@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-09 19:27:22 +0000 |
commit | e7aa62a3bf6993369b5adb61028fddb3eb7a58bf (patch) | |
tree | 476e203d6e64f9b350130ecb3d16ff34c6835204 /breakpad | |
parent | 6e575772033fb8ad816b805fbaa95bde2ce18985 (diff) | |
download | chromium_src-e7aa62a3bf6993369b5adb61028fddb3eb7a58bf.zip chromium_src-e7aa62a3bf6993369b5adb61028fddb3eb7a58bf.tar.gz chromium_src-e7aa62a3bf6993369b5adb61028fddb3eb7a58bf.tar.bz2 |
Upstream native crash handling changes for Android.
Android native crash handling is almost identical to linux handling with
some differences.
Note that even after this change Chrome on Android will not compile with
the USE_LINUX_BREAKPAD flag. Forthcomming changes in breakpad should
remedy this state of affairs.
BUG=
TEST=
Review URL: http://codereview.chromium.org/9838033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131404 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'breakpad')
-rw-r--r-- | breakpad/breakpad.gyp | 151 |
1 files changed, 150 insertions, 1 deletions
diff --git a/breakpad/breakpad.gyp b/breakpad/breakpad.gyp index ca561d8..6fb89f6 100644 --- a/breakpad/breakpad.gyp +++ b/breakpad/breakpad.gyp @@ -217,12 +217,154 @@ }, ], }], - [ 'OS=="linux"', { + [ 'OS=="linux" or OS=="android"', { 'conditions': [ + ['OS=="android"', { + 'defines': [ + '__ANDROID__', + ], + }], # Tools needed for archiving build symbols. ['linux_breakpad==1', { 'targets': [ { + 'target_name': 'minidump_stackwalk', + 'type': 'executable', + 'toolsets': [ 'host', ], + # This uses the system libcurl, so don't use the default 32-bit + # compile flags when building on a 64-bit machine. + 'variables': { + 'host_arch': '<!(uname -m)', + }, + 'conditions': [ + ['host_arch=="x86_64"', { + 'cflags!': ['-m32', '-march=pentium4', '-msse2', + '-mfpmath=sse'], + 'ldflags!': ['-m32'], + 'cflags': ['-O2'], + 'include_dirs!': ['/usr/include32'], + }], + ], + 'include_dirs': [ + 'src', + 'src/third_party', + '..', + ], + 'sources': [ + 'src/processor/minidump_stackwalk.cc', + 'src/processor/stackwalker.cc', + 'src/processor/stackwalker.h', + 'src/processor/basic_code_module.h', + 'src/processor/basic_code_modules.cc', + 'src/processor/basic_code_modules.h', + 'src/processor/basic_source_line_resolver.cc', + 'src/processor/basic_source_line_resolver.h', + 'src/processor/binarystream.cc', + 'src/processor/binarystream.h', + 'src/processor/call_stack.cc', + 'src/google_breakpad/procesor/call_stack.h', + 'src/processor/cfi_frame_info.cc', + 'src/processor/cfi_frame_info.h', + 'src/processor/disassembler_x86.cc', + 'src/processor/disassembler_x86.h', + 'src/processor/exploitability.cc', + 'src/processor/exploitability.h', + 'src/processor/exploitability_win.cc', + 'src/processor/exploitability_win.h', + 'src/processor/logging.cc', + 'src/processor/logging.h', + 'src/processor/minidump.cc', + 'src/processor/minidump.h', + 'src/processor/minidump_processor.cc', + 'src/processor/minidump_processor.h', + 'src/processor/pathname_stripper.cc', + 'src/processor/pathname_stripper.h', + 'src/processor/process_state.cc', + 'src/processor/process_state.h', + 'src/processor/simple_symbol_supplier.cc', + 'src/processor/simple_symbol_supplier.h', + 'src/processor/source_line_resolver_base.cc', + 'src/processor/source_line_resolver_base.h', + 'src/processor/stackwalker.cc', + 'src/processor/stackwalker.h', + 'src/processor/stackwalker_amd64.cc', + 'src/processor/stackwalker_amd64.h', + 'src/processor/stackwalker_arm.cc', + 'src/processor/stackwalker_arm.h', + 'src/processor/stackwalker_ppc.cc', + 'src/processor/stackwalker_ppc.h', + 'src/processor/stackwalker_sparc.cc', + 'src/processor/stackwalker_sparc.h', + 'src/processor/stackwalker_x86.cc', + 'src/processor/stackwalker_x86.h', + 'src/processor/tokenize.cc', + 'src/processor/tokenize.h', + # libdisasm + 'src/third_party/libdisasm/ia32_implicit.c', + 'src/third_party/libdisasm/ia32_implicit.h', + 'src/third_party/libdisasm/ia32_insn.c', + 'src/third_party/libdisasm/ia32_insn.h', + 'src/third_party/libdisasm/ia32_invariant.c', + 'src/third_party/libdisasm/ia32_invariant.h', + 'src/third_party/libdisasm/ia32_modrm.c', + 'src/third_party/libdisasm/ia32_modrm.h', + 'src/third_party/libdisasm/ia32_opcode_tables.c', + 'src/third_party/libdisasm/ia32_opcode_tables.h', + 'src/third_party/libdisasm/ia32_operand.c', + 'src/third_party/libdisasm/ia32_operand.h', + 'src/third_party/libdisasm/ia32_reg.c', + 'src/third_party/libdisasm/ia32_reg.h', + 'src/third_party/libdisasm/ia32_settings.c', + 'src/third_party/libdisasm/ia32_settings.h', + 'src/third_party/libdisasm/libdis.h', + 'src/third_party/libdisasm/qword.h', + 'src/third_party/libdisasm/x86_disasm.c', + 'src/third_party/libdisasm/x86_format.c', + 'src/third_party/libdisasm/x86_imm.c', + 'src/third_party/libdisasm/x86_imm.h', + 'src/third_party/libdisasm/x86_insn.c', + 'src/third_party/libdisasm/x86_misc.c', + 'src/third_party/libdisasm/x86_operand_list.c', + 'src/third_party/libdisasm/x86_operand_list.h', + ], + }, + { + 'target_name': 'minidump_dump', + 'type': 'executable', + 'toolsets': [ 'host', ], + # This uses the system libcurl, so don't use the default 32-bit + # compile flags when building on a 64-bit machine. + 'variables': { + 'host_arch': '<!(uname -m)', + }, + 'conditions': [ + ['host_arch=="x86_64"', { + 'cflags!': ['-m32', '-march=pentium4', '-msse2', + '-mfpmath=sse'], + 'ldflags!': ['-m32'], + 'cflags': ['-O2'], + 'include_dirs!': ['/usr/include32'], + }], + ], + 'sources': [ + 'src/processor/minidump_dump.cc', + 'src/processor/basic_code_module.h', + 'src/processor/basic_code_modules.h', + 'src/processor/basic_code_modules.cc', + 'src/processor/logging.h', + 'src/processor/logging.cc', + 'src/processor/minidump.h', + 'src/processor/minidump.cc', + 'src/processor/pathname_stripper.h', + 'src/processor/pathname_stripper.cc', + ], + 'include_dirs': [ + 'src', + 'src/third_party', + '..', + ], + }, + { 'target_name': 'symupload', 'type': 'executable', @@ -258,6 +400,7 @@ { 'target_name': 'dump_syms', 'type': 'executable', + 'toolsets': [ 'host' ], # dwarf2reader.cc uses dynamic_cast. Because we don't typically # don't support RTTI, we enable it for this single target. Since @@ -358,6 +501,12 @@ ['target_arch=="arm"', { 'cflags': ['-Wa,-mimplicit-it=always'], }], + ['OS=="android"', { + 'sources!':[ + 'src/common/linux/elf_core_dump.cc', + 'src/common/linux/elf_core_dump.h', + ], + }], ], 'link_settings': { |