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// ================================================= 17package { 18 default_applicable_licenses: ["external_google-breakpad_license"], 19} 20 21// Added automatically by a large-scale-change that took the approach of 22// 'apply every license found to every target'. While this makes sure we respect 23// every license restriction, it may not be entirely correct. 24// 25// e.g. GPL in an MIT project might only apply to the contrib/ directory. 26// 27// Please consider splitting the single license below into multiple licenses, 28// taking care not to lose any license_kind information, and overriding the 29// default license using the 'licenses: [...]' property on targets as needed. 30// 31// For unused files, consider creating a 'fileGroup' with "//visibility:private" 32// to attach the license to, and including a comment whether the files may be 33// used in the current project. 34// See: http://go/android-license-faq 35license { 36 name: "external_google-breakpad_license", 37 visibility: [":__subpackages__"], 38 license_kinds: [ 39 "SPDX-license-identifier-APSL-2.0", 40 "SPDX-license-identifier-Apache-2.0", 41 "SPDX-license-identifier-Artistic", 42 "SPDX-license-identifier-BSD", 43 "SPDX-license-identifier-FSFAP", 44 "SPDX-license-identifier-ISC", 45 "SPDX-license-identifier-MIT", 46 "SPDX-license-identifier-Unicode-DFS", 47 "legacy_notice", 48 "legacy_unencumbered", 49 ], 50 license_text: [ 51 "LICENSE", 52 ], 53} 54 55cc_library_static { 56 name: "breakpad_client", 57 host_supported: true, 58 srcs: [ 59 "src/client/linux/crash_generation/crash_generation_client.cc", 60 "src/client/linux/dump_writer_common/thread_info.cc", 61 "src/client/linux/dump_writer_common/ucontext_reader.cc", 62 "src/client/linux/handler/exception_handler.cc", 63 "src/client/linux/handler/minidump_descriptor.cc", 64 "src/client/linux/log/log.cc", 65 "src/client/linux/microdump_writer/microdump_writer.cc", 66 "src/client/linux/minidump_writer/linux_core_dumper.cc", 67 "src/client/linux/minidump_writer/linux_dumper.cc", 68 "src/client/linux/minidump_writer/linux_ptrace_dumper.cc", 69 "src/client/linux/minidump_writer/minidump_writer.cc", 70 "src/client/linux/minidump_writer/pe_file.cc", 71 "src/client/minidump_file_writer.cc", 72 "src/common/convert_UTF.cc", 73 "src/common/linux/breakpad_getcontext.S", 74 "src/common/linux/elf_core_dump.cc", 75 "src/common/linux/elfutils.cc", 76 "src/common/linux/file_id.cc", 77 "src/common/linux/guid_creator.cc", 78 "src/common/linux/linux_libc_support.cc", 79 "src/common/linux/memory_mapped_file.cc", 80 "src/common/linux/safe_readlink.cc", 81 "src/common/string_conversion.cc", 82 ], 83 export_include_dirs: ["src"], 84 cflags: [ 85 "-Wall", 86 "-Werror", 87 "-Wno-missing-field-initializers", 88 "-Wno-tautological-compare", 89 "-Wno-unused-parameter", 90 ], 91 target: { 92 bionic: { 93 local_include_dirs: [ 94 "src/common/android/include", 95 ], 96 }, 97 musl: { 98 local_include_dirs: [ 99 "src/common/musl/include", 100 ], 101 }, 102 }, 103 // Work around b/25435766 core2md segfault. 104 arch: { 105 x86: { 106 cflags: ["-mno-stackrealign"], 107 }, 108 }, 109} 110 111// core2md binary. 112// ================================================= 113cc_binary { 114 name: "core2md", 115 host_supported: true, 116 srcs: [ 117 "src/common/convert_UTF.cc", 118 "src/common/path_helper.cc", 119 "src/tools/linux/core2md/core2md.cc", 120 ], 121 static_libs: ["breakpad_client"], 122 // Work around b/25435766 core2md segfault. 123 arch: { 124 x86: { 125 cflags: ["-mno-stackrealign"], 126 }, 127 }, 128 cflags: [ 129 "-Wall", 130 "-Werror", 131 ], 132} 133 134// dump_syms host tool. 135// ================================================= 136cc_binary_host { 137 name: "dump_syms", 138 rtti: true, 139 target: { 140 darwin: { 141 enabled: false, 142 }, 143 glibc: { 144 cppflags: [ 145 "-DHAVE_A_OUT_H", 146 "-DSHF_COMPRESSED=0x800", 147 ], 148 }, 149 musl: { 150 local_include_dirs: [ 151 "src/common/musl/include", 152 ], 153 }, 154 host_linux: { 155 cppflags: [ 156 "-Wno-implicit-fallthrough", 157 "-Wno-unused-parameter", 158 ], 159 srcs: [ 160 "src/common/dwarf/elf_reader.cc", 161 "src/common/dwarf_range_list_handler.cc", 162 "src/common/linux/crc32.cc", 163 "src/common/linux/dump_symbols.cc", 164 "src/common/linux/elfutils.cc", 165 "src/common/linux/elf_symbols_to_module.cc", 166 "src/common/linux/file_id.cc", 167 "src/common/linux/linux_libc_support.cc", 168 "src/common/linux/memory_mapped_file.cc", 169 "src/common/path_helper.cc", 170 "src/tools/linux/dump_syms/dump_syms.cc", 171 ], 172 }, 173 }, 174 local_include_dirs: ["src"], 175 srcs: [ 176 "src/common/dwarf/bytereader.cc", 177 "src/common/dwarf/dwarf2diehandler.cc", 178 "src/common/dwarf/dwarf2reader.cc", 179 "src/common/dwarf_cfi_to_module.cc", 180 "src/common/dwarf_cu_to_module.cc", 181 "src/common/dwarf_line_to_module.cc", 182 "src/common/language.cc", 183 "src/common/module.cc", 184 "src/common/stabs_reader.cc", 185 "src/common/stabs_to_module.cc", 186 ], 187 shared_libs: [ 188 "libz", 189 ], 190 191 cflags: [ 192 "-Wall", 193 "-Werror", 194 "-Wno-unused-local-typedef", 195 "-Wno-unused-private-field", 196 "-Wno-unused-result", 197 ], 198} 199 200// sym_upload host tool. 201// ================================================= 202cc_binary_host { 203 name: "sym_upload", 204 target: { 205 darwin: { 206 enabled: false, 207 }, 208 host_linux: { 209 srcs: [ 210 "src/common/path_helper.cc", 211 "src/common/linux/http_upload.cc", 212 "src/common/linux/libcurl_wrapper.cc", 213 "src/common/linux/symbol_collector_client.cc", 214 "src/common/linux/symbol_upload.cc", 215 "src/tools/linux/symupload/sym_upload.cc", 216 ], 217 }, 218 }, 219 local_include_dirs: ["src"], 220 cflags: [ 221 "-Wall", 222 "-Werror", 223 "-Wno-unused-parameter", 224 ], 225} 226 227// libdisasm static library. 228// ================================================= 229cc_library_host_static { 230 name: "libdisasm", 231 target: { 232 darwin: { 233 enabled: false, 234 }, 235 host_linux: { 236 cflags: [ 237 "-Wno-missing-field-initializers", 238 "-Wno-pointer-arith", 239 "-Wno-tautological-constant-out-of-range-compare", 240 "-Wno-unused-parameter", 241 ], 242 }, 243 }, 244 export_include_dirs: ["src/third_party/libdisasm"], 245 srcs: [ 246 "src/third_party/libdisasm/ia32_implicit.c", 247 "src/third_party/libdisasm/ia32_insn.c", 248 "src/third_party/libdisasm/ia32_invariant.c", 249 "src/third_party/libdisasm/ia32_modrm.c", 250 "src/third_party/libdisasm/ia32_opcode_tables.c", 251 "src/third_party/libdisasm/ia32_operand.c", 252 "src/third_party/libdisasm/ia32_reg.c", 253 "src/third_party/libdisasm/ia32_settings.c", 254 "src/third_party/libdisasm/x86_disasm.c", 255 "src/third_party/libdisasm/x86_format.c", 256 "src/third_party/libdisasm/x86_imm.c", 257 "src/third_party/libdisasm/x86_insn.c", 258 "src/third_party/libdisasm/x86_misc.c", 259 "src/third_party/libdisasm/x86_operand_list.c", 260 ], 261} 262 263// minidump_stackwalk host tool. 264// ================================================= 265cc_binary_host { 266 name: "minidump_stackwalk", 267 target: { 268 darwin: { 269 enabled: false, 270 }, 271 host_linux: { 272 cppflags: [ 273 "-DHAVE_A_OUT_H", 274 // minidump_processor.cc:853, minidump.cc:4228 have fallthrough. 275 "-Wno-implicit-fallthrough", 276 "-Wno-missing-field-initializers", 277 "-Wno-unused-function", 278 "-Wno-unused-parameter", 279 ], 280 srcs: [ 281 "src/common/linux/scoped_pipe.cc", 282 "src/common/linux/scoped_tmpfile.cc", 283 "src/common/path_helper.cc", 284 "src/processor/basic_code_modules.cc", 285 "src/processor/basic_source_line_resolver.cc", 286 "src/processor/call_stack.cc", 287 "src/processor/cfi_frame_info.cc", 288 "src/processor/convert_old_arm64_context.cc", 289 "src/processor/disassembler_objdump.cc", 290 "src/processor/disassembler_x86.cc", 291 "src/processor/dump_context.cc", 292 "src/processor/dump_object.cc", 293 "src/processor/exploitability.cc", 294 "src/processor/exploitability_linux.cc", 295 "src/processor/exploitability_win.cc", 296 "src/processor/logging.cc", 297 "src/processor/microdump.cc", 298 "src/processor/microdump_processor.cc", 299 "src/processor/minidump.cc", 300 "src/processor/minidump_processor.cc", 301 "src/processor/minidump_stackwalk.cc", 302 "src/processor/pathname_stripper.cc", 303 "src/processor/process_state.cc", 304 "src/processor/proc_maps_linux.cc", 305 "src/processor/simple_symbol_supplier.cc", 306 "src/processor/source_line_resolver_base.cc", 307 "src/processor/stack_frame_symbolizer.cc", 308 "src/processor/stackwalk_common.cc", 309 "src/processor/stackwalker.cc", 310 "src/processor/stackwalker_amd64.cc", 311 "src/processor/stackwalker_arm.cc", 312 "src/processor/stackwalker_arm64.cc", 313 "src/processor/stackwalker_mips.cc", 314 "src/processor/stackwalker_ppc.cc", 315 "src/processor/stackwalker_ppc64.cc", 316 "src/processor/stackwalker_riscv.cc", 317 "src/processor/stackwalker_riscv64.cc", 318 "src/processor/stackwalker_sparc.cc", 319 "src/processor/stackwalker_x86.cc", 320 "src/processor/symbolic_constants_win.cc", 321 "src/processor/tokenize.cc", 322 ], 323 }, 324 }, 325 local_include_dirs: ["src"], 326 static_libs: ["libdisasm"], 327} 328