blob: c365cac523ccec7ed2bdd630e73e5cb6c83d8d39 [file] [log] [blame]
Bob Badourd69ad692021-02-16 19:02:14 -08001package {
Elliott Hughes813fd6d2021-06-25 14:42:51 -07002 default_applicable_licenses: ["Android-Apache-2.0"],
Bob Badourd69ad692021-02-16 19:02:14 -08003}
4
Josh Gaocbe70cb2016-10-18 18:17:52 -07005cc_defaults {
6 name: "debuggerd_defaults",
7 cflags: [
8 "-Wall",
9 "-Wextra",
Josh Gaoc7fe0602017-03-13 14:13:29 -070010 "-Werror",
Kalesh Singha9ea7e52021-06-17 15:49:50 -040011 "-Wno-gcc-compat",
Josh Gao2b2ae0c2017-08-21 14:31:17 -070012 "-Wno-unused-argument",
13 "-Wno-unused-function",
Josh Gaocbe70cb2016-10-18 18:17:52 -070014 "-Wno-nullability-completeness",
Christopher Ferrisf58b0092023-09-12 13:01:10 -070015 "-Wno-reorder-init-list",
Josh Gaocbe70cb2016-10-18 18:17:52 -070016 "-Os",
Yabin Cuie90a9442021-08-11 13:21:11 -070017 "-fno-finite-loops",
Alessandra Loro7bd6dca2022-09-01 10:33:35 +000018 "-DANDROID_DEBUGGABLE=0",
Josh Gaocbe70cb2016-10-18 18:17:52 -070019 ],
20
21 local_include_dirs: ["include"],
Alessandra Loro7bd6dca2022-09-01 10:33:35 +000022 product_variables: {
23 debuggable: {
Christopher Ferris2bf7db32024-02-26 13:29:20 -080024 cflags: [
25 "-UANDROID_DEBUGGABLE",
26 "-DANDROID_DEBUGGABLE=1",
27 ],
28 },
Alessandra Loro7bd6dca2022-09-01 10:33:35 +000029 },
Josh Gaocbe70cb2016-10-18 18:17:52 -070030}
31
Narayan Kamatha73df602017-05-24 15:07:25 +010032cc_library_headers {
33 name: "libdebuggerd_common_headers",
Elliott Hughesdc699a22018-02-16 17:58:14 -080034 export_include_dirs: ["common/include"],
Jiyong Parka0e75042018-05-24 14:11:00 +090035 recovery_available: true,
Yifan Hong2ec92cf2020-10-27 16:25:45 -070036 vendor_ramdisk_available: true,
Shikha Panwar757f2992022-03-25 19:43:14 +000037 apex_available: [
Spandan Dase6bc0262024-01-02 22:39:00 +000038 "com.android.runtime",
Shikha Panwar757f2992022-03-25 19:43:14 +000039 "com.android.virt",
40 "//apex_available:platform",
Spandan Dase6bc0262024-01-02 22:39:00 +000041 ],
Narayan Kamatha73df602017-05-24 15:07:25 +010042}
43
Narayan Kamath2d377cd2017-05-10 10:58:59 +010044cc_library_shared {
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080045 name: "libtombstoned_client",
46 defaults: ["debuggerd_defaults"],
47 srcs: [
Narayan Kamath2d377cd2017-05-10 10:58:59 +010048 "tombstoned/tombstoned_client.cpp",
49 "util.cpp",
50 ],
51
Narayan Kamatha73df602017-05-24 15:07:25 +010052 header_libs: ["libdebuggerd_common_headers"],
53
Narayan Kamath2d377cd2017-05-10 10:58:59 +010054 static_libs: [
Narayan Kamatha73df602017-05-24 15:07:25 +010055 "libasync_safe",
Narayan Kamath2d377cd2017-05-10 10:58:59 +010056 ],
57
58 shared_libs: [
Narayan Kamath2d377cd2017-05-10 10:58:59 +010059 "libbase",
Narayan Kamatha73df602017-05-24 15:07:25 +010060 "libcutils",
Narayan Kamath2d377cd2017-05-10 10:58:59 +010061 ],
Shikha Panwar757f2992022-03-25 19:43:14 +000062 apex_available: [
63 "com.android.virt",
64 "//apex_available:platform",
65 ],
Narayan Kamath2d377cd2017-05-10 10:58:59 +010066
Narayan Kamatha73df602017-05-24 15:07:25 +010067 export_header_lib_headers: ["libdebuggerd_common_headers"],
Elliott Hughesdc699a22018-02-16 17:58:14 -080068 export_include_dirs: ["tombstoned/include"],
Narayan Kamath2d377cd2017-05-10 10:58:59 +010069}
70
Josh Gao9da1f512018-08-06 15:38:29 -070071// Utility library to talk to tombstoned and get an output fd.
Narayan Kamath2d377cd2017-05-10 10:58:59 +010072cc_library_static {
73 name: "libtombstoned_client_static",
74 defaults: ["debuggerd_defaults"],
Jiyong Park011ee122018-05-29 16:41:30 +090075 recovery_available: true,
Yifan Hong2ec92cf2020-10-27 16:25:45 -070076 vendor_ramdisk_available: true,
Narayan Kamath2d377cd2017-05-10 10:58:59 +010077 srcs: [
78 "tombstoned/tombstoned_client.cpp",
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080079 "util.cpp",
80 ],
81
Narayan Kamatha73df602017-05-24 15:07:25 +010082 header_libs: ["libdebuggerd_common_headers"],
83
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080084 whole_static_libs: [
Christopher Ferrisac225782017-04-25 11:23:10 -070085 "libasync_safe",
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080086 "libcutils",
87 "libbase",
88 ],
Narayan Kamath2d377cd2017-05-10 10:58:59 +010089
Narayan Kamatha73df602017-05-24 15:07:25 +010090 export_header_lib_headers: ["libdebuggerd_common_headers"],
Elliott Hughesdc699a22018-02-16 17:58:14 -080091 export_include_dirs: ["tombstoned/include"],
Spandan Das2e5cfbc2024-01-04 01:34:40 +000092 apex_available: ["com.android.runtime"],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -080093}
94
95// Core implementation, linked into libdebuggerd_handler and the dynamic linker.
Josh Gao9c02dc52016-06-15 17:29:00 -070096cc_library_static {
Josh Gaoe73c9322017-02-08 16:06:26 -080097 name: "libdebuggerd_handler_core",
Josh Gaocbe70cb2016-10-18 18:17:52 -070098 defaults: ["debuggerd_defaults"],
Jiyong Parka0e75042018-05-24 14:11:00 +090099 recovery_available: true,
Yifan Hong2ec92cf2020-10-27 16:25:45 -0700100 vendor_ramdisk_available: true,
Josh Gaocbe70cb2016-10-18 18:17:52 -0700101 srcs: ["handler/debuggerd_handler.cpp"],
Josh Gao9c02dc52016-06-15 17:29:00 -0700102
Josh Gaofdf832d2017-08-25 18:00:18 -0700103 header_libs: [
104 "libbase_headers",
105 "libdebuggerd_common_headers",
Josh Gaoa48b41b2019-12-13 14:11:04 -0800106 "bionic_libc_platform_headers",
Mitch Phillips18ce5422023-01-19 14:23:49 -0800107 "gwp_asan_headers",
Josh Gaofdf832d2017-08-25 18:00:18 -0700108 ],
Narayan Kamatha73df602017-05-24 15:07:25 +0100109
Josh Gaoe73c9322017-02-08 16:06:26 -0800110 whole_static_libs: [
Christopher Ferrisac225782017-04-25 11:23:10 -0700111 "libasync_safe",
Josh Gao2b2ae0c2017-08-21 14:31:17 -0700112 "libcutils",
Josh Gaoe73c9322017-02-08 16:06:26 -0800113 "libdebuggerd",
114 ],
115
Narayan Kamatha73df602017-05-24 15:07:25 +0100116 export_header_lib_headers: ["libdebuggerd_common_headers"],
Josh Gaoe73c9322017-02-08 16:06:26 -0800117 export_include_dirs: ["include"],
Spandan Dase6bc0262024-01-02 22:39:00 +0000118 apex_available: [
119 "com.android.runtime",
120 ],
Josh Gaoe73c9322017-02-08 16:06:26 -0800121}
122
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800123// Implementation with a no-op fallback.
Josh Gaoe73c9322017-02-08 16:06:26 -0800124cc_library_static {
125 name: "libdebuggerd_handler",
126 defaults: ["debuggerd_defaults"],
127 srcs: ["handler/debuggerd_fallback_nop.cpp"],
128
Josh Gaoa48b41b2019-12-13 14:11:04 -0800129 header_libs: ["bionic_libc_platform_headers"],
130 export_header_lib_headers: ["bionic_libc_platform_headers"],
131
Josh Gaoe73c9322017-02-08 16:06:26 -0800132 whole_static_libs: [
133 "libdebuggerd_handler_core",
134 ],
135
136 export_include_dirs: ["include"],
137}
138
Martin Stjernholma2cc8932019-10-23 21:32:43 +0100139// Fallback implementation, for use in the Bionic linker only.
Josh Gaoe73c9322017-02-08 16:06:26 -0800140cc_library_static {
141 name: "libdebuggerd_handler_fallback",
Martin Stjernholma2cc8932019-10-23 21:32:43 +0100142 visibility: ["//bionic/linker"],
143 apex_available: [
144 "com.android.runtime",
145 "//apex_available:platform",
146 ],
Josh Gaoe73c9322017-02-08 16:06:26 -0800147 defaults: ["debuggerd_defaults"],
Jiyong Park011ee122018-05-29 16:41:30 +0900148 recovery_available: true,
Yifan Hong2ec92cf2020-10-27 16:25:45 -0700149 vendor_ramdisk_available: true,
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800150 srcs: [
151 "handler/debuggerd_fallback.cpp",
152 ],
Josh Gaoe73c9322017-02-08 16:06:26 -0800153
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800154 whole_static_libs: [
155 "libdebuggerd_handler_core",
Narayan Kamath2d377cd2017-05-10 10:58:59 +0100156 "libtombstoned_client_static",
Christopher Ferrisac225782017-04-25 11:23:10 -0700157 "libasync_safe",
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800158 "libbase",
Josh Gaoe73c9322017-02-08 16:06:26 -0800159 "libdebuggerd",
Martin Stjernholma2cc8932019-10-23 21:32:43 +0100160 "libunwindstack_no_dex",
Josh Gaoe73c9322017-02-08 16:06:26 -0800161 "liblzma",
162 "libcutils",
163 ],
Josh Gaoa48b41b2019-12-13 14:11:04 -0800164
165 header_libs: ["bionic_libc_platform_headers"],
166 export_header_lib_headers: ["bionic_libc_platform_headers"],
167
Josh Gaocbe70cb2016-10-18 18:17:52 -0700168 export_include_dirs: ["include"],
169}
170
171cc_library {
172 name: "libdebuggerd_client",
173 defaults: ["debuggerd_defaults"],
174 srcs: [
175 "client/debuggerd_client.cpp",
176 "util.cpp",
177 ],
178
179 shared_libs: [
180 "libbase",
181 "libcutils",
Josh Gao4175cee2019-01-04 13:57:09 -0800182 "libprocinfo",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700183 ],
Josh Gaoe1aa0ca2017-03-01 17:23:22 -0800184
Josh Gaoa48b41b2019-12-13 14:11:04 -0800185 header_libs: [
186 "libdebuggerd_common_headers",
187 "bionic_libc_platform_headers",
188 ],
189 export_header_lib_headers: [
190 "libdebuggerd_common_headers",
191 "bionic_libc_platform_headers",
192 ],
193
Josh Gaocbe70cb2016-10-18 18:17:52 -0700194 export_include_dirs: ["include"],
195}
196
Siim Sammulc08a34e2023-11-17 17:06:15 +0000197cc_library {
198 name: "libdebuggerd_tombstone_proto_to_text",
199 defaults: ["debuggerd_defaults"],
200 ramdisk_available: true,
201 recovery_available: true,
202 vendor_ramdisk_available: true,
203
204 local_include_dirs: ["libdebuggerd/include"],
205 export_include_dirs: ["libdebuggerd/include"],
206
207 srcs: [
208 "libdebuggerd/tombstone_proto_to_text.cpp",
209 ],
210
211 header_libs: [
212 "bionic_libc_platform_headers",
213 ],
214
215 static_libs: [
216 "libbase",
217 "liblog_for_runtime_apex",
218 "libunwindstack",
219 ],
220
221 whole_static_libs: [
222 "libtombstone_proto",
223 "libprotobuf-cpp-lite",
224 ],
225
226 apex_available: [
227 "//apex_available:platform",
228 "com.android.runtime",
229 ],
230}
231
Josh Gaoe73c9322017-02-08 16:06:26 -0800232cc_library_static {
Josh Gaocbe70cb2016-10-18 18:17:52 -0700233 name: "libdebuggerd",
234 defaults: ["debuggerd_defaults"],
Christopher Ferris48d6e042023-07-31 14:24:01 -0700235 ramdisk_available: true,
Jiyong Parka0e75042018-05-24 14:11:00 +0900236 recovery_available: true,
Yifan Hong2ec92cf2020-10-27 16:25:45 -0700237 vendor_ramdisk_available: true,
Josh Gaocbe70cb2016-10-18 18:17:52 -0700238
239 srcs: [
240 "libdebuggerd/backtrace.cpp",
Mitch Phillipse0b4bb12020-02-14 14:54:31 -0800241 "libdebuggerd/gwp_asan.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700242 "libdebuggerd/open_files_list.cpp",
Christopher Ferris1c46a002024-04-23 17:24:26 -0700243 "libdebuggerd/scudo.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700244 "libdebuggerd/tombstone.cpp",
Josh Gao76e1e302021-01-26 15:53:11 -0800245 "libdebuggerd/tombstone_proto.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700246 "libdebuggerd/utility.cpp",
247 ],
248
Christopher Ferris1c46a002024-04-23 17:24:26 -0700249 cflags: [
250 "-DUSE_SCUDO",
251 ],
252
Josh Gaocbe70cb2016-10-18 18:17:52 -0700253 local_include_dirs: ["libdebuggerd/include"],
254 export_include_dirs: ["libdebuggerd/include"],
Josh Gao9c02dc52016-06-15 17:29:00 -0700255
Peter Collingbournef8622522020-04-07 14:07:32 -0700256 include_dirs: [
257 // Needed for private/bionic_fdsan.h
258 "bionic/libc",
Peter Collingbournef8622522020-04-07 14:07:32 -0700259 ],
Mitch Phillipse0b4bb12020-02-14 14:54:31 -0800260 header_libs: [
261 "bionic_libc_platform_headers",
262 "gwp_asan_headers",
Jiyong Parkeb769d62022-08-19 13:21:02 +0900263 "liblog_headers",
Christopher Ferris1c46a002024-04-23 17:24:26 -0700264 "scudo_headers",
Mitch Phillipse0b4bb12020-02-14 14:54:31 -0800265 ],
Josh Gaoce841d92018-08-06 18:26:42 -0700266
Josh Gaoe73c9322017-02-08 16:06:26 -0800267 static_libs: [
Christopher Ferris2bf7db32024-02-26 13:29:20 -0800268 "libdexfile_support", // libunwindstack dependency
Christopher Ferris9a8c8552017-08-11 15:29:19 -0700269 "libunwindstack",
Josh Gaoe73c9322017-02-08 16:06:26 -0800270 "liblzma",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700271 "libbase",
272 "libcutils",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700273 ],
Josh Gaoa48b41b2019-12-13 14:11:04 -0800274
Peter Collingbournef8622522020-04-07 14:07:32 -0700275 whole_static_libs: [
Siim Sammulc08a34e2023-11-17 17:06:15 +0000276 "libdebuggerd_tombstone_proto_to_text",
Josh Gao618cea32021-01-26 17:45:43 -0800277 "libasync_safe",
Peter Collingbournef8622522020-04-07 14:07:32 -0700278 "gwp_asan_crash_handler",
Josh Gao76e1e302021-01-26 15:53:11 -0800279 "libtombstone_proto",
Josh Gaodbb83de2021-03-01 23:13:13 -0800280 "libprocinfo",
Josh Gao76e1e302021-01-26 15:53:11 -0800281 "libprotobuf-cpp-lite",
Christopher Ferris1c46a002024-04-23 17:24:26 -0700282 "libscudo",
Peter Collingbournef8622522020-04-07 14:07:32 -0700283 ],
Mitch Phillipse0b4bb12020-02-14 14:54:31 -0800284
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000285 target: {
286 recovery: {
287 exclude_static_libs: [
Martin Stjernholma2cc8932019-10-23 21:32:43 +0100288 "libdexfile_support",
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000289 ],
Martin Stjernholm3784b9d2021-08-26 21:18:43 +0100290 exclude_runtime_libs: [
291 "libdexfile",
292 ],
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000293 },
Yifan Hong2ec92cf2020-10-27 16:25:45 -0700294 vendor_ramdisk: {
295 exclude_static_libs: [
296 "libdexfile_support",
297 ],
Martin Stjernholm3784b9d2021-08-26 21:18:43 +0100298 exclude_runtime_libs: [
299 "libdexfile",
300 ],
Yifan Hong2ec92cf2020-10-27 16:25:45 -0700301 },
Christopher Ferris48d6e042023-07-31 14:24:01 -0700302 ramdisk: {
303 exclude_static_libs: [
304 "libdexfile_support",
305 ],
306 exclude_runtime_libs: [
307 "libdexfile",
308 ],
309 },
310 android: {
311 runtime_libs: [
Christopher Ferris2bf7db32024-02-26 13:29:20 -0800312 "libdexfile", // libdexfile_support dependency
Christopher Ferris48d6e042023-07-31 14:24:01 -0700313 ],
314 },
Martin Stjernholmbb4f2b42018-12-19 14:28:33 +0000315 },
Christopher Ferris4ae266c2019-04-03 09:27:12 -0700316
317 product_variables: {
318 debuggable: {
319 cflags: ["-DROOT_POSSIBLE"],
320 },
Christopher Ferris7aad2562021-09-24 00:06:38 -0700321
Christopher Ferris1c46a002024-04-23 17:24:26 -0700322 malloc_low_memory: {
323 cflags: ["-UUSE_SCUDO"],
324 exclude_static_libs: ["libscudo"],
Christopher Ferris7aad2562021-09-24 00:06:38 -0700325 },
Christopher Ferris4ae266c2019-04-03 09:27:12 -0700326 },
Spandan Dase6bc0262024-01-02 22:39:00 +0000327 apex_available: [
328 "com.android.runtime",
329 ],
Josh Gaocbe70cb2016-10-18 18:17:52 -0700330}
331
Josh Gao76e1e302021-01-26 15:53:11 -0800332cc_binary {
333 name: "pbtombstone",
334 defaults: ["debuggerd_defaults"],
335 srcs: ["pbtombstone.cpp"],
336 static_libs: [
337 "libbase",
338 "libdebuggerd",
339 "liblog",
340 "libprotobuf-cpp-lite",
341 "libtombstone_proto",
342 "libunwindstack",
343 ],
344}
345
Christopher Ferrisfe751c52021-04-16 09:40:40 -0700346cc_test_library {
347 name: "libcrash_test",
348 defaults: ["debuggerd_defaults"],
349 srcs: ["crash_test.cpp"],
350}
351
Josh Gaocbe70cb2016-10-18 18:17:52 -0700352cc_test {
353 name: "debuggerd_test",
354 defaults: ["debuggerd_defaults"],
Josh Gao6cad1392019-08-27 16:02:38 -0700355 require_root: true,
Josh Gaocbe70cb2016-10-18 18:17:52 -0700356
357 cflags: ["-Wno-missing-field-initializers"],
358 srcs: [
359 "libdebuggerd/test/dump_memory_test.cpp",
360 "libdebuggerd/test/elf_fake.cpp",
361 "libdebuggerd/test/log_fake.cpp",
Florian Mayere3e7bc72024-04-26 09:38:50 -0700362 "libdebuggerd/test/mte_stack_record_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700363 "libdebuggerd/test/open_files_list_test.cpp",
Siim Sammulc08a34e2023-11-17 17:06:15 +0000364 "libdebuggerd/test/tombstone_proto_to_text_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700365 ],
366
367 target: {
368 android: {
369 srcs: [
Josh Gaoae9d7672017-03-24 16:26:03 -0700370 "client/debuggerd_client_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700371 "debuggerd_test.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700372 ],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800373 static_libs: [
374 "libasync_safe",
375 "libtombstoned_client_static",
376 ],
Josh Gaocbe70cb2016-10-18 18:17:52 -0700377 },
378 },
379
Florian Mayere6462f92024-02-28 11:12:11 -0800380 sanitize: {
381 memtag_heap: true,
Florian Mayere6462f92024-02-28 11:12:11 -0800382 },
383
Josh Gaocbe70cb2016-10-18 18:17:52 -0700384 shared_libs: [
Josh Gaocbe70cb2016-10-18 18:17:52 -0700385 "libbase",
386 "libcutils",
Josh Gaoae9d7672017-03-24 16:26:03 -0700387 "libdebuggerd_client",
Narayan Kamatha73df602017-05-24 15:07:25 +0100388 "liblog",
Elliott Hughesdc699a22018-02-16 17:58:14 -0800389 "libnativehelper",
Martin Stjernholm852b64e2019-02-20 17:01:24 +0000390 "libunwindstack",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700391 ],
392
393 static_libs: [
Josh Gao352a8452017-03-30 16:46:21 -0700394 "libdebuggerd",
Mitch Phillipse0b4bb12020-02-14 14:54:31 -0800395 "libgmock",
Peter Collingbourned00a5772020-07-20 23:11:16 -0700396 "libminijail",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700397 ],
398
Josh Gaoa48b41b2019-12-13 14:11:04 -0800399 header_libs: [
400 "bionic_libc_platform_headers",
Mitch Phillipse0b4bb12020-02-14 14:54:31 -0800401 "gwp_asan_headers",
Josh Gaoa48b41b2019-12-13 14:11:04 -0800402 ],
403
Josh Gaocbe70cb2016-10-18 18:17:52 -0700404 local_include_dirs: [
405 "libdebuggerd",
406 ],
407
408 compile_multilib: "both",
409 multilib: {
410 lib32: {
411 stem: "debuggerd_test32",
412 },
413 lib64: {
414 stem: "debuggerd_test64",
415 },
416 },
Elliott Hughes40fdf3f2018-04-27 16:12:06 -0700417
Christopher Ferrisfe751c52021-04-16 09:40:40 -0700418 data: [
419 ":libcrash_test",
420 ],
421
Elliott Hughes40fdf3f2018-04-27 16:12:06 -0700422 test_suites: ["device-tests"],
Josh Gaocbe70cb2016-10-18 18:17:52 -0700423}
424
Josh Gaoa42314e2017-12-19 15:08:19 -0800425cc_benchmark {
426 name: "debuggerd_benchmark",
427 defaults: ["debuggerd_defaults"],
428 srcs: ["debuggerd_benchmark.cpp"],
429 shared_libs: [
430 "libbase",
431 "libdebuggerd_client",
432 ],
433}
434
Josh Gaocbe70cb2016-10-18 18:17:52 -0700435cc_binary {
436 name: "crash_dump",
437 srcs: [
438 "crash_dump.cpp",
Shikha Panwarabde59e2023-02-03 15:05:18 +0000439 "tombstone_handler.cpp",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700440 "util.cpp",
441 ],
442 defaults: ["debuggerd_defaults"],
443
444 compile_multilib: "both",
445 multilib: {
446 lib32: {
447 suffix: "32",
448 },
449 lib64: {
450 suffix: "64",
451 },
452 },
453
Josh Gaoa48b41b2019-12-13 14:11:04 -0800454 header_libs: [
455 "bionic_libc_platform_headers",
Sijie Chencb53fe12024-05-10 18:40:48 +0000456 "libnative_bridge_support_accessor_headers",
Josh Gaoa48b41b2019-12-13 14:11:04 -0800457 ],
458
Josh Gaoe73c9322017-02-08 16:06:26 -0800459 static_libs: [
Narayan Kamath2d377cd2017-05-10 10:58:59 +0100460 "libtombstoned_client_static",
Josh Gaoe73c9322017-02-08 16:06:26 -0800461 "libdebuggerd",
462 "libcutils",
Josh Gao76e1e302021-01-26 15:53:11 -0800463
464 "libtombstone_proto",
465 "libprotobuf-cpp-lite",
Sijie Chencb53fe12024-05-10 18:40:48 +0000466
467 "libnative_bridge_guest_state_accessor",
Josh Gaoe73c9322017-02-08 16:06:26 -0800468 ],
469
Josh Gaocbe70cb2016-10-18 18:17:52 -0700470 shared_libs: [
Josh Gaocbe70cb2016-10-18 18:17:52 -0700471 "libbase",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700472 "liblog",
473 "libprocinfo",
Josh Gao2b2ae0c2017-08-21 14:31:17 -0700474 "libunwindstack",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700475 ],
Peter Collingbourneb72e7482020-03-16 18:14:13 -0700476
477 apex_available: [
478 "com.android.runtime",
479 ],
Peter Collingbournea2739da2022-02-02 17:00:42 -0800480
481 // Required for tests.
482 required: ["crash_dump.policy"],
Sijie Chencb53fe12024-05-10 18:40:48 +0000483
484 target: {
485 android: {
486 header_libs: [
487 "libnative_bridge_support_accessor_headers", // For dlext_namespaces.h
488 ],
489 shared_libs: ["libdl_android"], // For android_get_exported_namespace implementation
490 },
491 },
Josh Gaocbe70cb2016-10-18 18:17:52 -0700492}
493
494cc_binary {
495 name: "debuggerd",
496 srcs: [
497 "debuggerd.cpp",
498 ],
499 defaults: ["debuggerd_defaults"],
500
501 shared_libs: [
502 "libbase",
503 "libdebuggerd_client",
504 "liblog",
Josh Gao0915f232017-06-27 14:08:05 -0700505 "libprocinfo",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700506 ],
507
508 local_include_dirs: ["include"],
509}
510
Nikita Ioffe75be7842022-10-24 15:31:11 +0100511cc_defaults {
512 name: "tombstoned_defaults",
Josh Gaocbe70cb2016-10-18 18:17:52 -0700513 srcs: [
514 "util.cpp",
515 "tombstoned/intercept_manager.cpp",
516 "tombstoned/tombstoned.cpp",
517 ],
518 defaults: ["debuggerd_defaults"],
519
Josh Gaoa48b41b2019-12-13 14:11:04 -0800520 header_libs: [
521 "bionic_libc_platform_headers",
Christopher Ferris2bf7db32024-02-26 13:29:20 -0800522 "libdebuggerd_common_headers",
Josh Gaoa48b41b2019-12-13 14:11:04 -0800523 ],
Narayan Kamatha73df602017-05-24 15:07:25 +0100524
Josh Gaocbe70cb2016-10-18 18:17:52 -0700525 static_libs: [
526 "libbase",
527 "libcutils",
528 "libevent",
529 "liblog",
530 ],
Nikita Ioffe75be7842022-10-24 15:31:11 +0100531}
Josh Gaocbe70cb2016-10-18 18:17:52 -0700532
Nikita Ioffe75be7842022-10-24 15:31:11 +0100533cc_binary {
534 name: "tombstoned",
535 defaults: ["tombstoned_defaults"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800536 init_rc: ["tombstoned/tombstoned.rc"],
Josh Gao9c02dc52016-06-15 17:29:00 -0700537}
Ray Essickbd3ba782020-01-21 15:21:08 -0800538
Nikita Ioffe75be7842022-10-24 15:31:11 +0100539cc_binary {
540 name: "tombstoned.microdroid",
541 defaults: ["tombstoned_defaults"],
542 init_rc: ["tombstoned/tombstoned.microdroid.rc"],
543}
544
Ray Essickbd3ba782020-01-21 15:21:08 -0800545prebuilt_etc {
546 name: "crash_dump.policy",
547 sub_dir: "seccomp_policy",
548 filename_from_src: true,
549 arch: {
550 arm: {
551 src: "seccomp_policy/crash_dump.arm.policy",
Elliott Hughes2f883312022-11-14 20:02:28 +0000552 required: [
553 "crash_dump.policy_other",
554 ],
Ray Essickbd3ba782020-01-21 15:21:08 -0800555 },
556 arm64: {
557 src: "seccomp_policy/crash_dump.arm64.policy",
Elliott Hughes2f883312022-11-14 20:02:28 +0000558 required: [
559 "crash_dump.policy_other",
560 ],
Ray Essickbd3ba782020-01-21 15:21:08 -0800561 },
Chen Guoyina22af662022-10-12 22:32:55 +0800562 riscv64: {
563 src: "seccomp_policy/crash_dump.riscv64.policy",
564 },
Ray Essickbd3ba782020-01-21 15:21:08 -0800565 x86: {
566 src: "seccomp_policy/crash_dump.x86.policy",
Elliott Hughes2f883312022-11-14 20:02:28 +0000567 required: [
568 "crash_dump.policy_other",
569 ],
Ray Essickbd3ba782020-01-21 15:21:08 -0800570 },
571 x86_64: {
572 src: "seccomp_policy/crash_dump.x86_64.policy",
Elliott Hughes2f883312022-11-14 20:02:28 +0000573 required: [
574 "crash_dump.policy_other",
575 ],
Ray Essickbd3ba782020-01-21 15:21:08 -0800576 },
577 },
Ray Essickbd3ba782020-01-21 15:21:08 -0800578}
579
Elliott Hughes2f883312022-11-14 20:02:28 +0000580// This installs the "other" architecture (so 32-bit on 64-bit device).
Ray Essickbd3ba782020-01-21 15:21:08 -0800581prebuilt_etc {
582 name: "crash_dump.policy_other",
583 sub_dir: "seccomp_policy",
584 filename_from_src: true,
585 arch: {
586 arm: {
587 src: "seccomp_policy/crash_dump.arm64.policy",
588 },
589 arm64: {
590 src: "seccomp_policy/crash_dump.arm.policy",
591 },
Elliott Hughes857e29c2023-03-20 15:48:30 -0700592 riscv64: {
593 enabled: false,
594 },
Ray Essickbd3ba782020-01-21 15:21:08 -0800595 x86: {
596 src: "seccomp_policy/crash_dump.x86_64.policy",
597 },
598 x86_64: {
599 src: "seccomp_policy/crash_dump.x86.policy",
600 },
601 },
602}