blob: e3ce5315f86c32b9fcea7bcd47ef5433961d1faa [file] [log] [blame]
Josh Gaocbe70cb2016-10-18 18:17:52 -07001cc_defaults {
2 name: "debuggerd_defaults",
3 cflags: [
4 "-Wall",
5 "-Wextra",
Josh Gaoc7fe0602017-03-13 14:13:29 -07006 "-Werror",
Josh Gao2b2ae0c2017-08-21 14:31:17 -07007 "-Wno-unused-argument",
8 "-Wno-unused-function",
Josh Gaocbe70cb2016-10-18 18:17:52 -07009 "-Wno-nullability-completeness",
10 "-Os",
11 ],
12
13 local_include_dirs: ["include"],
14}
15
Narayan Kamatha73df602017-05-24 15:07:25 +010016cc_library_headers {
17 name: "libdebuggerd_common_headers",
Elliott Hughesdc699a22018-02-16 17:58:14 -080018 export_include_dirs: ["common/include"],
Jiyong Parka0e75042018-05-24 14:11:00 +090019 recovery_available: true,
Narayan Kamatha73df602017-05-24 15:07:25 +010020}
21
Narayan Kamath2d377cd2017-05-10 10:58:59 +010022cc_library_shared {
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080023 name: "libtombstoned_client",
24 defaults: ["debuggerd_defaults"],
25 srcs: [
Narayan Kamath2d377cd2017-05-10 10:58:59 +010026 "tombstoned/tombstoned_client.cpp",
27 "util.cpp",
28 ],
29
Narayan Kamatha73df602017-05-24 15:07:25 +010030 header_libs: ["libdebuggerd_common_headers"],
31
Narayan Kamath2d377cd2017-05-10 10:58:59 +010032 static_libs: [
Narayan Kamatha73df602017-05-24 15:07:25 +010033 "libasync_safe",
Narayan Kamath2d377cd2017-05-10 10:58:59 +010034 ],
35
36 shared_libs: [
Narayan Kamath2d377cd2017-05-10 10:58:59 +010037 "libbase",
Narayan Kamatha73df602017-05-24 15:07:25 +010038 "libcutils",
Narayan Kamath2d377cd2017-05-10 10:58:59 +010039 ],
40
Narayan Kamatha73df602017-05-24 15:07:25 +010041 export_header_lib_headers: ["libdebuggerd_common_headers"],
Elliott Hughesdc699a22018-02-16 17:58:14 -080042 export_include_dirs: ["tombstoned/include"],
Narayan Kamath2d377cd2017-05-10 10:58:59 +010043}
44
Josh Gao9da1f512018-08-06 15:38:29 -070045// Utility library to talk to tombstoned and get an output fd.
Narayan Kamath2d377cd2017-05-10 10:58:59 +010046cc_library_static {
47 name: "libtombstoned_client_static",
48 defaults: ["debuggerd_defaults"],
Jiyong Park011ee122018-05-29 16:41:30 +090049 recovery_available: true,
Narayan Kamath2d377cd2017-05-10 10:58:59 +010050 srcs: [
51 "tombstoned/tombstoned_client.cpp",
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080052 "util.cpp",
53 ],
54
Narayan Kamatha73df602017-05-24 15:07:25 +010055 header_libs: ["libdebuggerd_common_headers"],
56
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080057 whole_static_libs: [
Christopher Ferrisac225782017-04-25 11:23:10 -070058 "libasync_safe",
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080059 "libcutils",
60 "libbase",
61 ],
Narayan Kamath2d377cd2017-05-10 10:58:59 +010062
Narayan Kamatha73df602017-05-24 15:07:25 +010063 export_header_lib_headers: ["libdebuggerd_common_headers"],
Elliott Hughesdc699a22018-02-16 17:58:14 -080064 export_include_dirs: ["tombstoned/include"],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080065}
66
67// Core implementation, linked into libdebuggerd_handler and the dynamic linker.
Josh Gao9c02dc52016-06-15 17:29:00 -070068cc_library_static {
Josh Gaoe73c9322017-02-08 16:06:26 -080069 name: "libdebuggerd_handler_core",
Josh Gaocbe70cb2016-10-18 18:17:52 -070070 defaults: ["debuggerd_defaults"],
Jiyong Parka0e75042018-05-24 14:11:00 +090071 recovery_available: true,
Josh Gaocbe70cb2016-10-18 18:17:52 -070072 srcs: ["handler/debuggerd_handler.cpp"],
Josh Gao9c02dc52016-06-15 17:29:00 -070073
Josh Gaofdf832d2017-08-25 18:00:18 -070074 header_libs: [
75 "libbase_headers",
76 "libdebuggerd_common_headers",
Josh Gaoa48b41b2019-12-13 14:11:04 -080077 "bionic_libc_platform_headers",
Josh Gaofdf832d2017-08-25 18:00:18 -070078 ],
Narayan Kamatha73df602017-05-24 15:07:25 +010079
Josh Gaoe73c9322017-02-08 16:06:26 -080080 whole_static_libs: [
Christopher Ferrisac225782017-04-25 11:23:10 -070081 "libasync_safe",
Josh Gao2b2ae0c2017-08-21 14:31:17 -070082 "libcutils",
Josh Gaoe73c9322017-02-08 16:06:26 -080083 "libdebuggerd",
84 ],
85
Narayan Kamatha73df602017-05-24 15:07:25 +010086 export_header_lib_headers: ["libdebuggerd_common_headers"],
Josh Gaoe73c9322017-02-08 16:06:26 -080087 export_include_dirs: ["include"],
88}
89
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080090// Implementation with a no-op fallback.
Josh Gaoe73c9322017-02-08 16:06:26 -080091cc_library_static {
92 name: "libdebuggerd_handler",
93 defaults: ["debuggerd_defaults"],
94 srcs: ["handler/debuggerd_fallback_nop.cpp"],
95
Josh Gaoa48b41b2019-12-13 14:11:04 -080096 header_libs: ["bionic_libc_platform_headers"],
97 export_header_lib_headers: ["bionic_libc_platform_headers"],
98
Josh Gaoe73c9322017-02-08 16:06:26 -080099 whole_static_libs: [
100 "libdebuggerd_handler_core",
101 ],
102
103 export_include_dirs: ["include"],
104}
105
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800106// Fallback implementation.
Josh Gaoe73c9322017-02-08 16:06:26 -0800107cc_library_static {
108 name: "libdebuggerd_handler_fallback",
109 defaults: ["debuggerd_defaults"],
Jiyong Park011ee122018-05-29 16:41:30 +0900110 recovery_available: true,
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800111 srcs: [
112 "handler/debuggerd_fallback.cpp",
113 ],
Josh Gaoe73c9322017-02-08 16:06:26 -0800114
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800115 whole_static_libs: [
116 "libdebuggerd_handler_core",
Narayan Kamath2d377cd2017-05-10 10:58:59 +0100117 "libtombstoned_client_static",
Christopher Ferrisac225782017-04-25 11:23:10 -0700118 "libasync_safe",
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800119 "libbase",
Josh Gaoe73c9322017-02-08 16:06:26 -0800120 "libdebuggerd",
Christopher Ferris9a8c8552017-08-11 15:29:19 -0700121 "libunwindstack",
Martin Stjernholme31cfb62019-02-05 04:59:07 +0000122 "libdexfile_support_static", // libunwindstack dependency
Josh Gaoe73c9322017-02-08 16:06:26 -0800123 "liblzma",
124 "libcutils",
125 ],
Josh Gaoa48b41b2019-12-13 14:11:04 -0800126
127 header_libs: ["bionic_libc_platform_headers"],
128 export_header_lib_headers: ["bionic_libc_platform_headers"],
129
Jiyong Park011ee122018-05-29 16:41:30 +0900130 target: {
131 recovery: {
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000132 exclude_static_libs: [
Martin Stjernholme31cfb62019-02-05 04:59:07 +0000133 "libdexfile_support_static",
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000134 ],
Jiyong Park011ee122018-05-29 16:41:30 +0900135 },
136 },
Josh Gao9c02dc52016-06-15 17:29:00 -0700137
Josh Gaocbe70cb2016-10-18 18:17:52 -0700138 export_include_dirs: ["include"],
139}
140
141cc_library {
142 name: "libdebuggerd_client",
143 defaults: ["debuggerd_defaults"],
144 srcs: [
145 "client/debuggerd_client.cpp",
146 "util.cpp",
147 ],
148
149 shared_libs: [
150 "libbase",
151 "libcutils",
Josh Gao4175cee2019-01-04 13:57:09 -0800152 "libprocinfo",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700153 ],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800154
Josh Gaoa48b41b2019-12-13 14:11:04 -0800155 header_libs: [
156 "libdebuggerd_common_headers",
157 "bionic_libc_platform_headers",
158 ],
159 export_header_lib_headers: [
160 "libdebuggerd_common_headers",
161 "bionic_libc_platform_headers",
162 ],
163
Josh Gaocbe70cb2016-10-18 18:17:52 -0700164 export_include_dirs: ["include"],
165}
166
Josh Gaoe73c9322017-02-08 16:06:26 -0800167cc_library_static {
Josh Gaocbe70cb2016-10-18 18:17:52 -0700168 name: "libdebuggerd",
169 defaults: ["debuggerd_defaults"],
Jiyong Parka0e75042018-05-24 14:11:00 +0900170 recovery_available: true,
Josh Gaocbe70cb2016-10-18 18:17:52 -0700171
172 srcs: [
173 "libdebuggerd/backtrace.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700174 "libdebuggerd/open_files_list.cpp",
175 "libdebuggerd/tombstone.cpp",
176 "libdebuggerd/utility.cpp",
177 ],
178
Josh Gaocbe70cb2016-10-18 18:17:52 -0700179 local_include_dirs: ["libdebuggerd/include"],
180 export_include_dirs: ["libdebuggerd/include"],
Josh Gao9c02dc52016-06-15 17:29:00 -0700181
Josh Gaoce841d92018-08-06 18:26:42 -0700182 // Needed for private/bionic_fdsan.h
183 include_dirs: ["bionic/libc"],
Josh Gaoa48b41b2019-12-13 14:11:04 -0800184 header_libs: ["bionic_libc_platform_headers"],
Josh Gaoce841d92018-08-06 18:26:42 -0700185
Josh Gaoe73c9322017-02-08 16:06:26 -0800186 static_libs: [
Martin Stjernholme31cfb62019-02-05 04:59:07 +0000187 "libdexfile_support_static", // libunwindstack dependency
Christopher Ferris9a8c8552017-08-11 15:29:19 -0700188 "libunwindstack",
Josh Gaoe73c9322017-02-08 16:06:26 -0800189 "liblzma",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700190 "libbase",
191 "libcutils",
192 "liblog",
193 ],
Josh Gaoa48b41b2019-12-13 14:11:04 -0800194
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000195 target: {
196 recovery: {
197 exclude_static_libs: [
Martin Stjernholme31cfb62019-02-05 04:59:07 +0000198 "libdexfile_support_static",
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000199 ],
200 },
201 },
Christopher Ferris4ae266c2019-04-03 09:27:12 -0700202
203 product_variables: {
204 debuggable: {
205 cflags: ["-DROOT_POSSIBLE"],
206 },
207 },
Josh Gaocbe70cb2016-10-18 18:17:52 -0700208}
209
210cc_test {
211 name: "debuggerd_test",
212 defaults: ["debuggerd_defaults"],
Josh Gao6cad1392019-08-27 16:02:38 -0700213 require_root: true,
Josh Gaocbe70cb2016-10-18 18:17:52 -0700214
215 cflags: ["-Wno-missing-field-initializers"],
216 srcs: [
217 "libdebuggerd/test/dump_memory_test.cpp",
218 "libdebuggerd/test/elf_fake.cpp",
219 "libdebuggerd/test/log_fake.cpp",
220 "libdebuggerd/test/open_files_list_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700221 "libdebuggerd/test/tombstone_test.cpp",
222 ],
223
224 target: {
225 android: {
226 srcs: [
Josh Gaoae9d7672017-03-24 16:26:03 -0700227 "client/debuggerd_client_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700228 "debuggerd_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700229 ],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800230 static_libs: [
231 "libasync_safe",
232 "libtombstoned_client_static",
233 ],
Josh Gaocbe70cb2016-10-18 18:17:52 -0700234 },
235 },
236
237 shared_libs: [
Josh Gaocbe70cb2016-10-18 18:17:52 -0700238 "libbase",
239 "libcutils",
Josh Gaoae9d7672017-03-24 16:26:03 -0700240 "libdebuggerd_client",
Narayan Kamatha73df602017-05-24 15:07:25 +0100241 "liblog",
Josh Gaoe04ca272018-01-16 15:38:17 -0800242 "libminijail",
Elliott Hughesdc699a22018-02-16 17:58:14 -0800243 "libnativehelper",
Martin Stjernholm852b64e2019-02-20 17:01:24 +0000244 "libunwindstack",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700245 ],
246
247 static_libs: [
Josh Gao352a8452017-03-30 16:46:21 -0700248 "libdebuggerd",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700249 ],
250
Josh Gaoa48b41b2019-12-13 14:11:04 -0800251 header_libs: [
252 "bionic_libc_platform_headers",
253 ],
254
Josh Gaocbe70cb2016-10-18 18:17:52 -0700255 local_include_dirs: [
256 "libdebuggerd",
257 ],
258
259 compile_multilib: "both",
260 multilib: {
261 lib32: {
262 stem: "debuggerd_test32",
263 },
264 lib64: {
265 stem: "debuggerd_test64",
266 },
267 },
Elliott Hughes40fdf3f2018-04-27 16:12:06 -0700268
269 test_suites: ["device-tests"],
Josh Gaocbe70cb2016-10-18 18:17:52 -0700270}
271
Josh Gaoa42314e2017-12-19 15:08:19 -0800272cc_benchmark {
273 name: "debuggerd_benchmark",
274 defaults: ["debuggerd_defaults"],
275 srcs: ["debuggerd_benchmark.cpp"],
276 shared_libs: [
277 "libbase",
278 "libdebuggerd_client",
279 ],
280}
281
Josh Gaocbe70cb2016-10-18 18:17:52 -0700282cc_binary {
283 name: "crash_dump",
284 srcs: [
285 "crash_dump.cpp",
286 "util.cpp",
287 ],
288 defaults: ["debuggerd_defaults"],
289
290 compile_multilib: "both",
291 multilib: {
292 lib32: {
293 suffix: "32",
294 },
295 lib64: {
296 suffix: "64",
297 },
298 },
299
Josh Gaoa48b41b2019-12-13 14:11:04 -0800300 header_libs: [
301 "bionic_libc_platform_headers",
302 ],
303
Josh Gaoe73c9322017-02-08 16:06:26 -0800304 static_libs: [
Narayan Kamath2d377cd2017-05-10 10:58:59 +0100305 "libtombstoned_client_static",
Josh Gaoe73c9322017-02-08 16:06:26 -0800306 "libdebuggerd",
307 "libcutils",
308 ],
309
Josh Gaocbe70cb2016-10-18 18:17:52 -0700310 shared_libs: [
Josh Gaocbe70cb2016-10-18 18:17:52 -0700311 "libbase",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700312 "liblog",
313 "libprocinfo",
Josh Gao2b2ae0c2017-08-21 14:31:17 -0700314 "libunwindstack",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700315 ],
316}
317
318cc_binary {
319 name: "debuggerd",
320 srcs: [
321 "debuggerd.cpp",
322 ],
323 defaults: ["debuggerd_defaults"],
324
325 shared_libs: [
326 "libbase",
327 "libdebuggerd_client",
328 "liblog",
Josh Gao0915f232017-06-27 14:08:05 -0700329 "libprocinfo",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700330 ],
331
332 local_include_dirs: ["include"],
333}
334
335cc_binary {
336 name: "tombstoned",
337 srcs: [
338 "util.cpp",
339 "tombstoned/intercept_manager.cpp",
340 "tombstoned/tombstoned.cpp",
341 ],
342 defaults: ["debuggerd_defaults"],
343
Josh Gaoa48b41b2019-12-13 14:11:04 -0800344 header_libs: [
345 "bionic_libc_platform_headers",
346 "libdebuggerd_common_headers"
347 ],
Narayan Kamatha73df602017-05-24 15:07:25 +0100348
Josh Gaocbe70cb2016-10-18 18:17:52 -0700349 static_libs: [
350 "libbase",
351 "libcutils",
352 "libevent",
353 "liblog",
354 ],
355
Elliott Hughesdc699a22018-02-16 17:58:14 -0800356 init_rc: ["tombstoned/tombstoned.rc"],
Josh Gao9c02dc52016-06-15 17:29:00 -0700357}
Ray Essickbd3ba782020-01-21 15:21:08 -0800358
359prebuilt_etc {
360 name: "crash_dump.policy",
361 sub_dir: "seccomp_policy",
362 filename_from_src: true,
363 arch: {
364 arm: {
365 src: "seccomp_policy/crash_dump.arm.policy",
366 },
367 arm64: {
368 src: "seccomp_policy/crash_dump.arm64.policy",
369 },
370 x86: {
371 src: "seccomp_policy/crash_dump.x86.policy",
372 },
373 x86_64: {
374 src: "seccomp_policy/crash_dump.x86_64.policy",
375 },
376 },
377 required: [
378 "crash_dump.policy_other",
379 ],
380}
381
382
383// NB -- this installs "the other" architecture. (puts 32 bit config in on 64 bit device)
384// or at least that is the intention so that we get both of them populated
385prebuilt_etc {
386 name: "crash_dump.policy_other",
387 sub_dir: "seccomp_policy",
388 filename_from_src: true,
389 arch: {
390 arm: {
391 src: "seccomp_policy/crash_dump.arm64.policy",
392 },
393 arm64: {
394 src: "seccomp_policy/crash_dump.arm.policy",
395 },
396 x86: {
397 src: "seccomp_policy/crash_dump.x86_64.policy",
398 },
399 x86_64: {
400 src: "seccomp_policy/crash_dump.x86.policy",
401 },
402 },
403}