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