blob: 074fdaf5020f372f363e0b84c752413669b5bdcf [file] [log] [blame]
Colin Crossbf7382d2018-09-05 13:35:51 -07001// 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",
Chih-Hung Hsiehb5474aa2018-09-06 13:29:17 -0700210 "-Wno-implicit-fallthrough",
211 // minidump_processor.cc:853, minidump.cc:4228 have fallthrough.
Colin Crossbf7382d2018-09-05 13:35:51 -0700212 "-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}