• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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