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/minidump_file_writer.cc", 71 "src/common/convert_UTF.cc", 72 "src/common/linux/breakpad_getcontext.S", 73 "src/common/linux/elf_core_dump.cc", 74 "src/common/linux/elfutils.cc", 75 "src/common/linux/file_id.cc", 76 "src/common/linux/guid_creator.cc", 77 "src/common/linux/linux_libc_support.cc", 78 "src/common/linux/memory_mapped_file.cc", 79 "src/common/linux/safe_readlink.cc", 80 "src/common/string_conversion.cc", 81 ], 82 export_include_dirs: ["src"], 83 cflags: [ 84 "-Wall", 85 "-Werror", 86 "-Wno-unused-parameter", 87 "-Wno-tautological-compare", 88 ], 89 target: { 90 bionic: { 91 local_include_dirs: [ 92 "src/common/android/include", 93 ], 94 }, 95 musl: { 96 local_include_dirs: [ 97 "src/common/musl/include", 98 ], 99 }, 100 }, 101 // Work around b/25435766 core2md segfault. 102 arch: { 103 x86: { 104 clang_cflags: ["-mno-stackrealign"], 105 }, 106 }, 107} 108 109// core2md binary. 110// ================================================= 111cc_binary { 112 name: "core2md", 113 host_supported: true, 114 srcs: [ 115 "src/common/convert_UTF.cc", 116 "src/common/path_helper.cc", 117 "src/tools/linux/core2md/core2md.cc", 118 ], 119 static_libs: ["breakpad_client"], 120 // Work around b/25435766 core2md segfault. 121 arch: { 122 x86: { 123 clang_cflags: ["-mno-stackrealign"], 124 }, 125 }, 126 cflags: [ 127 "-Wall", 128 "-Werror", 129 ], 130} 131 132// dump_syms host tool. 133// ================================================= 134cc_binary_host { 135 name: "dump_syms", 136 target: { 137 darwin: { 138 enabled: false, 139 }, 140 glibc: { 141 cppflags: [ 142 "-DHAVE_A_OUT_H", 143 ], 144 }, 145 musl: { 146 local_include_dirs: [ 147 "src/common/musl/include", 148 ], 149 }, 150 host_linux: { 151 cppflags: [ 152 "-Wno-unused-parameter", 153 ], 154 srcs: [ 155 "src/common/dwarf/elf_reader.cc", 156 "src/common/dwarf_range_list_handler.cc", 157 "src/common/linux/crc32.cc", 158 "src/common/linux/dump_symbols.cc", 159 "src/common/linux/elfutils.cc", 160 "src/common/linux/elf_symbols_to_module.cc", 161 "src/common/linux/file_id.cc", 162 "src/common/linux/linux_libc_support.cc", 163 "src/common/linux/memory_mapped_file.cc", 164 "src/common/path_helper.cc", 165 "src/tools/linux/dump_syms/dump_syms.cc", 166 ], 167 }, 168 }, 169 local_include_dirs: ["src"], 170 srcs: [ 171 "src/common/dwarf/bytereader.cc", 172 "src/common/dwarf/dwarf2diehandler.cc", 173 "src/common/dwarf/dwarf2reader.cc", 174 "src/common/dwarf_cfi_to_module.cc", 175 "src/common/dwarf_cu_to_module.cc", 176 "src/common/dwarf_line_to_module.cc", 177 "src/common/language.cc", 178 "src/common/module.cc", 179 "src/common/stabs_reader.cc", 180 "src/common/stabs_to_module.cc", 181 ], 182 183 cflags: [ 184 "-Wall", 185 "-Werror", 186 "-Wno-unused-local-typedef", 187 "-Wno-unused-private-field", 188 "-Wno-unused-result", 189 ], 190} 191 192// sym_upload host tool. 193// ================================================= 194cc_binary_host { 195 name: "sym_upload", 196 target: { 197 darwin: { 198 enabled: false, 199 }, 200 host_linux: { 201 srcs: [ 202 "src/common/linux/http_upload.cc", 203 "src/common/linux/libcurl_wrapper.cc", 204 "src/common/linux/symbol_collector_client.cc", 205 "src/common/linux/symbol_upload.cc", 206 "src/tools/linux/symupload/sym_upload.cc", 207 ], 208 }, 209 }, 210 local_include_dirs: ["src"], 211 cflags: [ 212 "-Wall", 213 "-Werror", 214 "-Wno-unused-parameter", 215 ], 216} 217 218// libdisasm static library. 219// ================================================= 220cc_library_host_static { 221 name: "libdisasm", 222 target: { 223 darwin: { 224 enabled: false, 225 }, 226 host_linux: { 227 cflags: [ 228 "-Wno-missing-field-initializers", 229 "-Wno-pointer-arith", 230 "-Wno-tautological-constant-out-of-range-compare", 231 "-Wno-unused-parameter", 232 ], 233 }, 234 }, 235 export_include_dirs: ["src/third_party/libdisasm"], 236 srcs: [ 237 "src/third_party/libdisasm/ia32_implicit.c", 238 "src/third_party/libdisasm/ia32_insn.c", 239 "src/third_party/libdisasm/ia32_invariant.c", 240 "src/third_party/libdisasm/ia32_modrm.c", 241 "src/third_party/libdisasm/ia32_opcode_tables.c", 242 "src/third_party/libdisasm/ia32_operand.c", 243 "src/third_party/libdisasm/ia32_reg.c", 244 "src/third_party/libdisasm/ia32_settings.c", 245 "src/third_party/libdisasm/x86_disasm.c", 246 "src/third_party/libdisasm/x86_format.c", 247 "src/third_party/libdisasm/x86_imm.c", 248 "src/third_party/libdisasm/x86_insn.c", 249 "src/third_party/libdisasm/x86_misc.c", 250 "src/third_party/libdisasm/x86_operand_list.c", 251 ], 252} 253 254// minidump_stackwalk host tool. 255// ================================================= 256cc_binary_host { 257 name: "minidump_stackwalk", 258 target: { 259 darwin: { 260 enabled: false, 261 }, 262 host_linux: { 263 cppflags: [ 264 "-DHAVE_A_OUT_H", 265 "-Wno-implicit-fallthrough", 266 // minidump_processor.cc:853, minidump.cc:4228 have fallthrough. 267 "-Wno-unused-function", 268 "-Wno-unused-parameter", 269 ], 270 srcs: [ 271 "src/common/path_helper.cc", 272 "src/processor/basic_code_modules.cc", 273 "src/processor/basic_source_line_resolver.cc", 274 "src/processor/call_stack.cc", 275 "src/processor/cfi_frame_info.cc", 276 "src/processor/convert_old_arm64_context.cc", 277 "src/processor/disassembler_x86.cc", 278 "src/processor/dump_context.cc", 279 "src/processor/dump_object.cc", 280 "src/processor/exploitability.cc", 281 "src/processor/exploitability_linux.cc", 282 "src/processor/exploitability_win.cc", 283 "src/processor/logging.cc", 284 "src/processor/microdump.cc", 285 "src/processor/microdump_processor.cc", 286 "src/processor/minidump.cc", 287 "src/processor/minidump_processor.cc", 288 "src/processor/minidump_stackwalk.cc", 289 "src/processor/pathname_stripper.cc", 290 "src/processor/process_state.cc", 291 "src/processor/proc_maps_linux.cc", 292 "src/processor/simple_symbol_supplier.cc", 293 "src/processor/source_line_resolver_base.cc", 294 "src/processor/stack_frame_symbolizer.cc", 295 "src/processor/stackwalk_common.cc", 296 "src/processor/stackwalker.cc", 297 "src/processor/stackwalker_amd64.cc", 298 "src/processor/stackwalker_arm.cc", 299 "src/processor/stackwalker_arm64.cc", 300 "src/processor/stackwalker_mips.cc", 301 "src/processor/stackwalker_ppc.cc", 302 "src/processor/stackwalker_ppc64.cc", 303 "src/processor/stackwalker_sparc.cc", 304 "src/processor/stackwalker_x86.cc", 305 "src/processor/symbolic_constants_win.cc", 306 "src/processor/tokenize.cc", 307 ], 308 }, 309 }, 310 local_include_dirs: ["src"], 311 static_libs: ["libdisasm"], 312} 313