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)" |
+ } |
} |
} |