0

Add host symlinks for microdump_stackwalk, minidump_*

It's not obvious how to build non-default-toolchain targets in ninja.
Creating a wrapper alleviates the problem.

BUG=none

Review URL: https://codereview.chromium.org/1822743002

Cr-Commit-Position: refs/heads/master@{#382611}
This commit is contained in:
agrieve
2016-03-22 11:08:07 -07:00
committed by Commit bot
parent 99a69c51e9
commit a218d2dade

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