| Index: breakpad/BUILD.gn
|
| diff --git a/breakpad/BUILD.gn b/breakpad/BUILD.gn
|
| index 13fb3be3194e0fa5d499b1c04a8e87d83b3d13d5..0fd15ceb199ff2ae97e6df94f8ba5271a2c0dc95 100644
|
| --- a/breakpad/BUILD.gn
|
| +++ b/breakpad/BUILD.gn
|
| @@ -51,250 +51,272 @@ config("sender_config") {
|
|
|
| # {micro,mini}dump_stackwalk and minidump_dump are tool-type executables
|
| # that do not build on Windows.
|
| -if (!is_win && current_toolchain == host_toolchain) {
|
| - # Contains the code shared by both {micro,mini}dump_stackwalk.
|
| - static_library("stackwalk_common") {
|
| - # Always want these files included regardless of platform.
|
| - set_sources_assignment_filter([])
|
| - sources = [
|
| - "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/call_stack.cc",
|
| - "src/processor/cfi_frame_info.cc",
|
| - "src/processor/cfi_frame_info.h",
|
| - "src/processor/disassembler_x86.cc",
|
| - "src/processor/disassembler_x86.h",
|
| - "src/processor/dump_context.cc",
|
| - "src/processor/dump_object.cc",
|
| - "src/processor/logging.cc",
|
| - "src/processor/logging.h",
|
| - "src/processor/pathname_stripper.cc",
|
| - "src/processor/pathname_stripper.h",
|
| - "src/processor/proc_maps_linux.cc",
|
| - "src/processor/process_state.cc",
|
| - "src/processor/simple_symbol_supplier.cc",
|
| - "src/processor/simple_symbol_supplier.h",
|
| - "src/processor/source_line_resolver_base.cc",
|
| - "src/processor/stack_frame_cpu.cc",
|
| - "src/processor/stack_frame_symbolizer.cc",
|
| - "src/processor/stackwalk_common.cc",
|
| - "src/processor/stackwalker.cc",
|
| - "src/processor/stackwalker_amd64.cc",
|
| - "src/processor/stackwalker_amd64.h",
|
| - "src/processor/stackwalker_arm.cc",
|
| - "src/processor/stackwalker_arm.h",
|
| - "src/processor/stackwalker_arm64.cc",
|
| - "src/processor/stackwalker_arm64.h",
|
| - "src/processor/stackwalker_mips.cc",
|
| - "src/processor/stackwalker_mips.h",
|
| - "src/processor/stackwalker_ppc.cc",
|
| - "src/processor/stackwalker_ppc.h",
|
| - "src/processor/stackwalker_ppc64.cc",
|
| - "src/processor/stackwalker_ppc64.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",
|
| - ]
|
| +if (!is_win) {
|
| + if (current_toolchain == host_toolchain) {
|
| + # Contains the code shared by both {micro,mini}dump_stackwalk.
|
| + static_library("stackwalk_common") {
|
| + # Always want these files included regardless of platform.
|
| + set_sources_assignment_filter([])
|
| + sources = [
|
| + "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/call_stack.cc",
|
| + "src/processor/cfi_frame_info.cc",
|
| + "src/processor/cfi_frame_info.h",
|
| + "src/processor/disassembler_x86.cc",
|
| + "src/processor/disassembler_x86.h",
|
| + "src/processor/dump_context.cc",
|
| + "src/processor/dump_object.cc",
|
| + "src/processor/logging.cc",
|
| + "src/processor/logging.h",
|
| + "src/processor/pathname_stripper.cc",
|
| + "src/processor/pathname_stripper.h",
|
| + "src/processor/proc_maps_linux.cc",
|
| + "src/processor/process_state.cc",
|
| + "src/processor/simple_symbol_supplier.cc",
|
| + "src/processor/simple_symbol_supplier.h",
|
| + "src/processor/source_line_resolver_base.cc",
|
| + "src/processor/stack_frame_cpu.cc",
|
| + "src/processor/stack_frame_symbolizer.cc",
|
| + "src/processor/stackwalk_common.cc",
|
| + "src/processor/stackwalker.cc",
|
| + "src/processor/stackwalker_amd64.cc",
|
| + "src/processor/stackwalker_amd64.h",
|
| + "src/processor/stackwalker_arm.cc",
|
| + "src/processor/stackwalker_arm.h",
|
| + "src/processor/stackwalker_arm64.cc",
|
| + "src/processor/stackwalker_arm64.h",
|
| + "src/processor/stackwalker_mips.cc",
|
| + "src/processor/stackwalker_mips.h",
|
| + "src/processor/stackwalker_ppc.cc",
|
| + "src/processor/stackwalker_ppc.h",
|
| + "src/processor/stackwalker_ppc64.cc",
|
| + "src/processor/stackwalker_ppc64.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",
|
| + ]
|
|
|
| - defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
| + defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
|
|
| - configs -= [ "//build/config/compiler:chromium_code" ]
|
| - configs += [ "//build/config/compiler:no_chromium_code" ]
|
| - configs += [ ":tools_config" ]
|
| - }
|
| + configs -= [ "//build/config/compiler:chromium_code" ]
|
| + configs += [ "//build/config/compiler:no_chromium_code" ]
|
| + configs += [ ":tools_config" ]
|
| + }
|
|
|
| - executable("microdump_stackwalk") {
|
| - sources = [
|
| - "src/processor/microdump.cc",
|
| - "src/processor/microdump_processor.cc",
|
| - "src/processor/microdump_stackwalk.cc",
|
| - ]
|
| + executable("microdump_stackwalk") {
|
| + sources = [
|
| + "src/processor/microdump.cc",
|
| + "src/processor/microdump_processor.cc",
|
| + "src/processor/microdump_stackwalk.cc",
|
| + ]
|
|
|
| - deps = [
|
| - ":stackwalk_common",
|
| - "//build/config/sanitizers:deps",
|
| - ]
|
| + deps = [
|
| + ":stackwalk_common",
|
| + "//build/config/sanitizers:deps",
|
| + ]
|
|
|
| - defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
| + defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
|
|
| - configs -= [ "//build/config/compiler:chromium_code" ]
|
| - configs += [ "//build/config/compiler:no_chromium_code" ]
|
| - configs += [ ":tools_config" ]
|
| - }
|
| + configs -= [ "//build/config/compiler:chromium_code" ]
|
| + configs += [ "//build/config/compiler:no_chromium_code" ]
|
| + configs += [ ":tools_config" ]
|
| + }
|
|
|
| - executable("minidump_stackwalk") {
|
| - sources = [
|
| - "src/processor/exploitability.cc",
|
| - "src/processor/minidump.cc",
|
| - "src/processor/minidump_processor.cc",
|
| - "src/processor/minidump_stackwalk.cc",
|
| - ]
|
| + executable("minidump_stackwalk") {
|
| + sources = [
|
| + "src/processor/exploitability.cc",
|
| + "src/processor/minidump.cc",
|
| + "src/processor/minidump_processor.cc",
|
| + "src/processor/minidump_stackwalk.cc",
|
| + ]
|
|
|
| - deps = [
|
| - ":stackwalk_common",
|
| - "//build/config/sanitizers:deps",
|
| - ]
|
| + deps = [
|
| + ":stackwalk_common",
|
| + "//build/config/sanitizers:deps",
|
| + ]
|
|
|
| - defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
| + defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
|
|
|
| - configs -= [ "//build/config/compiler:chromium_code" ]
|
| - configs += [ "//build/config/compiler:no_chromium_code" ]
|
| - configs += [ ":tools_config" ]
|
| + configs -= [ "//build/config/compiler:chromium_code" ]
|
| + configs += [ "//build/config/compiler:no_chromium_code" ]
|
| + configs += [ ":tools_config" ]
|
|
|
| - # Always want these files included regardless of platform.
|
| - set_sources_assignment_filter([])
|
| - sources += [
|
| - "src/processor/exploitability_linux.cc",
|
| - "src/processor/exploitability_linux.h",
|
| - "src/processor/exploitability_win.cc",
|
| - "src/processor/exploitability_win.h",
|
| - "src/processor/symbolic_constants_win.cc",
|
| - "src/processor/symbolic_constants_win.h",
|
| - ]
|
| - }
|
| + # Always want these files included regardless of platform.
|
| + set_sources_assignment_filter([])
|
| + sources += [
|
| + "src/processor/exploitability_linux.cc",
|
| + "src/processor/exploitability_linux.h",
|
| + "src/processor/exploitability_win.cc",
|
| + "src/processor/exploitability_win.h",
|
| + "src/processor/symbolic_constants_win.cc",
|
| + "src/processor/symbolic_constants_win.h",
|
| + ]
|
| + }
|
|
|
| - executable("minidump_dump") {
|
| - set_sources_assignment_filter([])
|
| - sources = [
|
| - "src/processor/basic_code_module.h",
|
| - "src/processor/basic_code_modules.cc",
|
| - "src/processor/basic_code_modules.h",
|
| - "src/processor/dump_context.cc",
|
| - "src/processor/dump_object.cc",
|
| - "src/processor/logging.cc",
|
| - "src/processor/logging.h",
|
| - "src/processor/minidump.cc",
|
| - "src/processor/minidump_dump.cc",
|
| - "src/processor/pathname_stripper.cc",
|
| - "src/processor/pathname_stripper.h",
|
| - "src/processor/proc_maps_linux.cc",
|
| - ]
|
| + executable("minidump_dump") {
|
| + set_sources_assignment_filter([])
|
| + sources = [
|
| + "src/processor/basic_code_module.h",
|
| + "src/processor/basic_code_modules.cc",
|
| + "src/processor/basic_code_modules.h",
|
| + "src/processor/dump_context.cc",
|
| + "src/processor/dump_object.cc",
|
| + "src/processor/logging.cc",
|
| + "src/processor/logging.h",
|
| + "src/processor/minidump.cc",
|
| + "src/processor/minidump_dump.cc",
|
| + "src/processor/pathname_stripper.cc",
|
| + "src/processor/pathname_stripper.h",
|
| + "src/processor/proc_maps_linux.cc",
|
| + ]
|
|
|
| - configs += [ ":tools_config" ]
|
| + configs += [ ":tools_config" ]
|
|
|
| - # There are some warnings in this code.
|
| - configs -= [ "//build/config/compiler:chromium_code" ]
|
| - configs += [ "//build/config/compiler:no_chromium_code" ]
|
| + # There are some warnings in this code.
|
| + configs -= [ "//build/config/compiler:chromium_code" ]
|
| + configs += [ "//build/config/compiler:no_chromium_code" ]
|
|
|
| - deps = [
|
| - "//build/config/sanitizers:deps",
|
| - ]
|
| + deps = [
|
| + "//build/config/sanitizers:deps",
|
| + ]
|
| + }
|
| + } else {
|
| + # Aliases for convenience.
|
| + binary_symlink("microdump_stackwalk") {
|
| + binary_label = ":dump_syms($host_toolchain)"
|
| + }
|
| + binary_symlink("minidump_stackwalk") {
|
| + binary_label = ":dump_syms($host_toolchain)"
|
| + }
|
| + binary_symlink("minidump_dump") {
|
| + binary_label = ":$target_name($host_toolchain)"
|
| + }
|
| }
|
| }
|
|
|
| # Mac --------------------------------------------------------------------------
|
|
|
| -if (current_toolchain == host_toolchain && is_mac) {
|
| - # TODO(GYP) This should be only 64-bit on Mac. From .gypi:
|
| - # Like ld, dump_syms needs to operate on enough data that it may
|
| - # actually need to be able to address more than 4GB. Use x86_64.
|
| - # Don't worry! An x86_64 dump_syms is perfectly able to dump
|
| - # 32-bit files.
|
| - executable("dump_syms") {
|
| - sources = [
|
| - "src/common/dwarf/bytereader.cc",
|
| - "src/common/dwarf/dwarf2diehandler.cc",
|
| - "src/common/dwarf/dwarf2reader.cc",
|
| - "src/common/dwarf_cfi_to_module.cc",
|
| - "src/common/dwarf_cu_to_module.cc",
|
| - "src/common/dwarf_line_to_module.cc",
|
| - "src/common/language.cc",
|
| - "src/common/mac/arch_utilities.cc",
|
| - "src/common/mac/arch_utilities.h",
|
| - "src/common/mac/dump_syms.cc",
|
| - "src/common/mac/file_id.cc",
|
| - "src/common/mac/macho_id.cc",
|
| - "src/common/mac/macho_reader.cc",
|
| - "src/common/mac/macho_utilities.cc",
|
| - "src/common/mac/macho_walker.cc",
|
| - "src/common/md5.cc",
|
| - "src/common/module.cc",
|
| - "src/common/stabs_reader.cc",
|
| - "src/common/stabs_to_module.cc",
|
| - "src/tools/mac/dump_syms/dump_syms_tool.cc",
|
| - ]
|
| +if (is_mac) {
|
| + if (current_toolchain == host_toolchain) {
|
| + # TODO(GYP) This should be only 64-bit on Mac. From .gypi:
|
| + # Like ld, dump_syms needs to operate on enough data that it may
|
| + # actually need to be able to address more than 4GB. Use x86_64.
|
| + # Don't worry! An x86_64 dump_syms is perfectly able to dump
|
| + # 32-bit files.
|
| + executable("dump_syms") {
|
| + sources = [
|
| + "src/common/dwarf/bytereader.cc",
|
| + "src/common/dwarf/dwarf2diehandler.cc",
|
| + "src/common/dwarf/dwarf2reader.cc",
|
| + "src/common/dwarf_cfi_to_module.cc",
|
| + "src/common/dwarf_cu_to_module.cc",
|
| + "src/common/dwarf_line_to_module.cc",
|
| + "src/common/language.cc",
|
| + "src/common/mac/arch_utilities.cc",
|
| + "src/common/mac/arch_utilities.h",
|
| + "src/common/mac/dump_syms.cc",
|
| + "src/common/mac/file_id.cc",
|
| + "src/common/mac/macho_id.cc",
|
| + "src/common/mac/macho_reader.cc",
|
| + "src/common/mac/macho_utilities.cc",
|
| + "src/common/mac/macho_walker.cc",
|
| + "src/common/md5.cc",
|
| + "src/common/module.cc",
|
| + "src/common/stabs_reader.cc",
|
| + "src/common/stabs_to_module.cc",
|
| + "src/tools/mac/dump_syms/dump_syms_tool.cc",
|
| + ]
|
|
|
| - # For src/common/stabs_reader.h.
|
| - defines = [ "HAVE_MACH_O_NLIST_H" ]
|
| - include_dirs = [ "src/common/mac" ]
|
| + # For src/common/stabs_reader.h.
|
| + defines = [ "HAVE_MACH_O_NLIST_H" ]
|
| + include_dirs = [ "src/common/mac" ]
|
|
|
| - # The DWARF utilities require -funsigned-char.
|
| - cflags = [ "-funsigned-char" ]
|
| + # The DWARF utilities require -funsigned-char.
|
| + cflags = [ "-funsigned-char" ]
|
|
|
| - configs += [ ":internal_config" ]
|
| + configs += [ ":internal_config" ]
|
|
|
| - configs -= [ "//build/config/compiler:chromium_code" ]
|
| - configs += [ "//build/config/compiler:no_chromium_code" ]
|
| + configs -= [ "//build/config/compiler:chromium_code" ]
|
| + configs += [ "//build/config/compiler:no_chromium_code" ]
|
|
|
| - # dwarf2reader.cc uses dynamic_cast.
|
| - configs -= [ "//build/config/compiler:no_rtti" ]
|
| - configs += [ "//build/config/compiler:rtti" ]
|
| + # dwarf2reader.cc uses dynamic_cast.
|
| + configs -= [ "//build/config/compiler:no_rtti" ]
|
| + configs += [ "//build/config/compiler:rtti" ]
|
|
|
| - libs = [ "Foundation.framework" ]
|
| + libs = [ "Foundation.framework" ]
|
|
|
| - if (!is_debug) {
|
| - # dump_syms crashes when built at -O1, -O2, and -O3. It does
|
| - # not crash at -Os. To play it safe, dump_syms is always built
|
| - # at -O0 until this can be sorted out.
|
| - # http://code.google.com/p/google-breakpad/issues/detail?id=329
|
| - configs -= [ "//build/config/compiler:default_optimization" ]
|
| - cflags += [ "-O0" ]
|
| - }
|
| + if (!is_debug) {
|
| + # dump_syms crashes when built at -O1, -O2, and -O3. It does
|
| + # not crash at -Os. To play it safe, dump_syms is always built
|
| + # at -O0 until this can be sorted out.
|
| + # http://code.google.com/p/google-breakpad/issues/detail?id=329
|
| + configs -= [ "//build/config/compiler:default_optimization" ]
|
| + cflags += [ "-O0" ]
|
| + }
|
|
|
| - deps = [
|
| - "//build/config/sanitizers:deps",
|
| - ]
|
| - }
|
| + deps = [
|
| + "//build/config/sanitizers:deps",
|
| + ]
|
| + }
|
|
|
| - executable("symupload") {
|
| - sources = [
|
| - "src/common/mac/HTTPMultipartUpload.m",
|
| - "src/tools/mac/symupload/symupload.m",
|
| - ]
|
| + executable("symupload") {
|
| + sources = [
|
| + "src/common/mac/HTTPMultipartUpload.m",
|
| + "src/tools/mac/symupload/symupload.m",
|
| + ]
|
|
|
| - include_dirs = [ "src/common/mac" ]
|
| + include_dirs = [ "src/common/mac" ]
|
|
|
| - libs = [ "Foundation.framework" ]
|
| + libs = [ "Foundation.framework" ]
|
|
|
| - configs -= [ "//build/config/compiler:chromium_code" ]
|
| - configs += [ "//build/config/compiler:no_chromium_code" ]
|
| + configs -= [ "//build/config/compiler:chromium_code" ]
|
| + configs += [ "//build/config/compiler:no_chromium_code" ]
|
|
|
| - deps = [
|
| - "//build/config/sanitizers:deps",
|
| - ]
|
| + deps = [
|
| + "//build/config/sanitizers:deps",
|
| + ]
|
| + }
|
| + } else {
|
| + binary_symlink("dump_syms") {
|
| + binary_label = ":$target_name($host_toolchain)"
|
| + }
|
| + binary_symlink("symupload") {
|
| + binary_label = ":$target_name($host_toolchain)"
|
| + }
|
| }
|
| }
|
|
|
|
|