1// Copyright (C) 2015 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Static library. 16// ================================================= 17cc_library_static { 18 name: "breakpad_client", 19 20 srcs: [ 21 "src/client/linux/dump_writer_common/seccomp_unwinder.cc", 22 "src/client/linux/dump_writer_common/thread_info.cc", 23 "src/client/linux/dump_writer_common/ucontext_reader.cc", 24 "src/client/linux/handler/minidump_descriptor.cc", 25 "src/client/linux/minidump_writer/linux_core_dumper.cc", 26 "src/client/linux/minidump_writer/linux_dumper.cc", 27 "src/client/linux/minidump_writer/linux_ptrace_dumper.cc", 28 "src/client/linux/minidump_writer/minidump_writer.cc", 29 "src/client/minidump_file_writer.cc", 30 "src/common/convert_UTF.c", 31 "src/common/linux/elf_core_dump.cc", 32 "src/common/linux/elfutils.cc", 33 "src/common/linux/file_id.cc", 34 "src/common/linux/guid_creator.cc", 35 "src/common/linux/linux_libc_support.cc", 36 "src/common/linux/memory_mapped_file.cc", 37 "src/common/linux/safe_readlink.cc", 38 "src/common/string_conversion.cc", 39 ], 40 41 export_include_dirs: [ 42 "src/common/android/include", 43 "src", 44 ], 45 46 cflags: [ 47 "-Wall", 48 "-Werror", 49 "-Wno-unused-parameter", 50 "-Wno-tautological-compare", 51 ], 52 53 // Work around b/25435766 core2md segfault. 54 arch: { 55 x86: { 56 clang_cflags: ["-mno-stackrealign"], 57 }, 58 }, 59} 60 61// core2md binary. 62// ================================================= 63cc_binary { 64 name: "core2md", 65 66 srcs: ["src/tools/linux/core2md/core2md.cc"], 67 68 static_libs: ["breakpad_client"], 69 70 // Work around b/25435766 core2md segfault. 71 arch: { 72 x86: { 73 clang_cflags: ["-mno-stackrealign"], 74 }, 75 }, 76 77 cflags: [ 78 "-Wall", 79 "-Werror", 80 ], 81} 82 83// dump_syms host tool. 84// ================================================= 85cc_binary_host { 86 name: "dump_syms", 87 target: { 88 darwin: { 89 enabled: false, 90 }, 91 92 linux_glibc: { 93 cppflags: [ 94 "-DHAVE_A_OUT_H", 95 "-Wno-unused-parameter", 96 ], 97 98 srcs: [ 99 "src/common/linux/crc32.cc", 100 "src/common/linux/dump_symbols.cc", 101 "src/common/linux/elfutils.cc", 102 "src/common/linux/elf_symbols_to_module.cc", 103 "src/common/linux/file_id.cc", 104 "src/common/linux/linux_libc_support.cc", 105 "src/common/linux/memory_mapped_file.cc", 106 "src/tools/linux/dump_syms/dump_syms.cc", 107 ], 108 }, 109 }, 110 111 local_include_dirs: ["src"], 112 srcs: [ 113 "src/common/dwarf/bytereader.cc", 114 "src/common/dwarf/dwarf2diehandler.cc", 115 "src/common/dwarf/dwarf2reader.cc", 116 "src/common/dwarf_cfi_to_module.cc", 117 "src/common/dwarf_cu_to_module.cc", 118 "src/common/dwarf_line_to_module.cc", 119 "src/common/language.cc", 120 "src/common/module.cc", 121 "src/common/stabs_reader.cc", 122 "src/common/stabs_to_module.cc", 123 ], 124 125 cflags: [ 126 "-Wall", 127 "-Werror", 128 "-Wno-unused-local-typedef", 129 "-Wno-unused-private-field", 130 "-Wno-unused-result", 131 ], 132} 133 134// sym_upload host tool. 135// ================================================= 136cc_binary_host { 137 name: "sym_upload", 138 target: { 139 darwin: { 140 enabled: false, 141 }, 142 143 linux_glibc: { 144 srcs: [ 145 "src/common/linux/http_upload.cc", 146 "src/tools/linux/symupload/sym_upload.cc", 147 ], 148 }, 149 }, 150 151 local_include_dirs: ["src"], 152 153 cflags: [ 154 "-Wall", 155 "-Werror", 156 "-Wno-unused-parameter", 157 ], 158} 159 160// libdisasm static library. 161// ================================================= 162cc_library_host_static { 163 name: "libdisasm", 164 target: { 165 darwin: { 166 enabled: false, 167 }, 168 169 linux_glibc: { 170 cflags: [ 171 "-Wno-missing-field-initializers", 172 "-Wno-pointer-arith", 173 "-Wno-tautological-constant-out-of-range-compare", 174 "-Wno-unused-parameter", 175 ], 176 }, 177 }, 178 179 export_include_dirs: ["src/third_party/libdisasm"], 180 srcs: [ 181 "src/third_party/libdisasm/ia32_implicit.c", 182 "src/third_party/libdisasm/ia32_insn.c", 183 "src/third_party/libdisasm/ia32_invariant.c", 184 "src/third_party/libdisasm/ia32_modrm.c", 185 "src/third_party/libdisasm/ia32_opcode_tables.c", 186 "src/third_party/libdisasm/ia32_operand.c", 187 "src/third_party/libdisasm/ia32_reg.c", 188 "src/third_party/libdisasm/ia32_settings.c", 189 "src/third_party/libdisasm/x86_disasm.c", 190 "src/third_party/libdisasm/x86_format.c", 191 "src/third_party/libdisasm/x86_imm.c", 192 "src/third_party/libdisasm/x86_insn.c", 193 "src/third_party/libdisasm/x86_misc.c", 194 "src/third_party/libdisasm/x86_operand_list.c", 195 ], 196} 197 198// minidump_stackwalk host tool. 199// ================================================= 200cc_binary_host { 201 name: "minidump_stackwalk", 202 target: { 203 darwin: { 204 enabled: false, 205 }, 206 207 linux_glibc: { 208 cppflags: [ 209 "-DHAVE_A_OUT_H", 210 "-Wno-implicit-fallthrough", 211 // minidump_processor.cc:853, minidump.cc:4228 have fallthrough. 212 "-Wno-unused-function", 213 "-Wno-unused-parameter", 214 ], 215 216 srcs: [ 217 "src/processor/basic_code_modules.cc", 218 "src/processor/basic_source_line_resolver.cc", 219 "src/processor/call_stack.cc", 220 "src/processor/cfi_frame_info.cc", 221 "src/processor/disassembler_x86.cc", 222 "src/processor/dump_context.cc", 223 "src/processor/dump_object.cc", 224 "src/processor/exploitability.cc", 225 "src/processor/exploitability_linux.cc", 226 "src/processor/exploitability_win.cc", 227 "src/processor/logging.cc", 228 "src/processor/microdump.cc", 229 "src/processor/microdump_processor.cc", 230 "src/processor/minidump.cc", 231 "src/processor/minidump_processor.cc", 232 "src/processor/minidump_stackwalk.cc", 233 "src/processor/pathname_stripper.cc", 234 "src/processor/process_state.cc", 235 "src/processor/simple_symbol_supplier.cc", 236 "src/processor/source_line_resolver_base.cc", 237 "src/processor/stack_frame_symbolizer.cc", 238 "src/processor/stackwalk_common.cc", 239 "src/processor/stackwalker.cc", 240 "src/processor/stackwalker_amd64.cc", 241 "src/processor/stackwalker_arm.cc", 242 "src/processor/stackwalker_arm64.cc", 243 "src/processor/stackwalker_mips.cc", 244 "src/processor/stackwalker_ppc.cc", 245 "src/processor/stackwalker_ppc64.cc", 246 "src/processor/stackwalker_sparc.cc", 247 "src/processor/stackwalker_x86.cc", 248 "src/processor/symbolic_constants_win.cc", 249 "src/processor/tokenize.cc", 250 ], 251 }, 252 }, 253 254 local_include_dirs: ["src"], 255 256 static_libs: ["libdisasm"], 257} 258