xref: /aosp_15_r20/system/core/debuggerd/Android.bp (revision 00c7fec1bb09f3284aad6a6f96d2f63dfc3650ad)
1*00c7fec1SAndroid Build Coastguard Workerpackage {
2*00c7fec1SAndroid Build Coastguard Worker    default_applicable_licenses: ["Android-Apache-2.0"],
3*00c7fec1SAndroid Build Coastguard Worker}
4*00c7fec1SAndroid Build Coastguard Worker
5*00c7fec1SAndroid Build Coastguard Workercc_defaults {
6*00c7fec1SAndroid Build Coastguard Worker    name: "debuggerd_defaults",
7*00c7fec1SAndroid Build Coastguard Worker    cflags: [
8*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
9*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
10*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
11*00c7fec1SAndroid Build Coastguard Worker        "-Wno-gcc-compat",
12*00c7fec1SAndroid Build Coastguard Worker        "-Wno-unused-argument",
13*00c7fec1SAndroid Build Coastguard Worker        "-Wno-unused-function",
14*00c7fec1SAndroid Build Coastguard Worker        "-Wno-nullability-completeness",
15*00c7fec1SAndroid Build Coastguard Worker        "-Wno-reorder-init-list",
16*00c7fec1SAndroid Build Coastguard Worker        "-Os",
17*00c7fec1SAndroid Build Coastguard Worker        "-fno-finite-loops",
18*00c7fec1SAndroid Build Coastguard Worker        "-DANDROID_DEBUGGABLE=0",
19*00c7fec1SAndroid Build Coastguard Worker    ],
20*00c7fec1SAndroid Build Coastguard Worker
21*00c7fec1SAndroid Build Coastguard Worker    local_include_dirs: ["include"],
22*00c7fec1SAndroid Build Coastguard Worker    product_variables: {
23*00c7fec1SAndroid Build Coastguard Worker        debuggable: {
24*00c7fec1SAndroid Build Coastguard Worker            cflags: [
25*00c7fec1SAndroid Build Coastguard Worker                "-UANDROID_DEBUGGABLE",
26*00c7fec1SAndroid Build Coastguard Worker                "-DANDROID_DEBUGGABLE=1",
27*00c7fec1SAndroid Build Coastguard Worker            ],
28*00c7fec1SAndroid Build Coastguard Worker        },
29*00c7fec1SAndroid Build Coastguard Worker    },
30*00c7fec1SAndroid Build Coastguard Worker}
31*00c7fec1SAndroid Build Coastguard Worker
32*00c7fec1SAndroid Build Coastguard Workercc_library_headers {
33*00c7fec1SAndroid Build Coastguard Worker    name: "libdebuggerd_common_headers",
34*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["common/include"],
35*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
36*00c7fec1SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
37*00c7fec1SAndroid Build Coastguard Worker    apex_available: [
38*00c7fec1SAndroid Build Coastguard Worker        "com.android.runtime",
39*00c7fec1SAndroid Build Coastguard Worker        "com.android.virt",
40*00c7fec1SAndroid Build Coastguard Worker        "//apex_available:platform",
41*00c7fec1SAndroid Build Coastguard Worker    ],
42*00c7fec1SAndroid Build Coastguard Worker}
43*00c7fec1SAndroid Build Coastguard Worker
44*00c7fec1SAndroid Build Coastguard Workercc_library_shared {
45*00c7fec1SAndroid Build Coastguard Worker    name: "libtombstoned_client",
46*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
47*00c7fec1SAndroid Build Coastguard Worker    srcs: [
48*00c7fec1SAndroid Build Coastguard Worker        "tombstoned/tombstoned_client.cpp",
49*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
50*00c7fec1SAndroid Build Coastguard Worker    ],
51*00c7fec1SAndroid Build Coastguard Worker
52*00c7fec1SAndroid Build Coastguard Worker    header_libs: ["libdebuggerd_common_headers"],
53*00c7fec1SAndroid Build Coastguard Worker
54*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
55*00c7fec1SAndroid Build Coastguard Worker        "libasync_safe",
56*00c7fec1SAndroid Build Coastguard Worker    ],
57*00c7fec1SAndroid Build Coastguard Worker
58*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
59*00c7fec1SAndroid Build Coastguard Worker        "libbase",
60*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
61*00c7fec1SAndroid Build Coastguard Worker    ],
62*00c7fec1SAndroid Build Coastguard Worker    apex_available: [
63*00c7fec1SAndroid Build Coastguard Worker        "com.android.virt",
64*00c7fec1SAndroid Build Coastguard Worker        "//apex_available:platform",
65*00c7fec1SAndroid Build Coastguard Worker    ],
66*00c7fec1SAndroid Build Coastguard Worker
67*00c7fec1SAndroid Build Coastguard Worker    export_header_lib_headers: ["libdebuggerd_common_headers"],
68*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["tombstoned/include"],
69*00c7fec1SAndroid Build Coastguard Worker}
70*00c7fec1SAndroid Build Coastguard Worker
71*00c7fec1SAndroid Build Coastguard Worker// Utility library to talk to tombstoned and get an output fd.
72*00c7fec1SAndroid Build Coastguard Workercc_library_static {
73*00c7fec1SAndroid Build Coastguard Worker    name: "libtombstoned_client_static",
74*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
75*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
76*00c7fec1SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
77*00c7fec1SAndroid Build Coastguard Worker    srcs: [
78*00c7fec1SAndroid Build Coastguard Worker        "tombstoned/tombstoned_client.cpp",
79*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
80*00c7fec1SAndroid Build Coastguard Worker    ],
81*00c7fec1SAndroid Build Coastguard Worker
82*00c7fec1SAndroid Build Coastguard Worker    header_libs: ["libdebuggerd_common_headers"],
83*00c7fec1SAndroid Build Coastguard Worker
84*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
85*00c7fec1SAndroid Build Coastguard Worker        "libasync_safe",
86*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
87*00c7fec1SAndroid Build Coastguard Worker        "libbase",
88*00c7fec1SAndroid Build Coastguard Worker    ],
89*00c7fec1SAndroid Build Coastguard Worker
90*00c7fec1SAndroid Build Coastguard Worker    export_header_lib_headers: ["libdebuggerd_common_headers"],
91*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["tombstoned/include"],
92*00c7fec1SAndroid Build Coastguard Worker    apex_available: ["com.android.runtime"],
93*00c7fec1SAndroid Build Coastguard Worker}
94*00c7fec1SAndroid Build Coastguard Worker
95*00c7fec1SAndroid Build Coastguard Worker// Core implementation, linked into libdebuggerd_handler and the dynamic linker.
96*00c7fec1SAndroid Build Coastguard Workercc_library_static {
97*00c7fec1SAndroid Build Coastguard Worker    name: "libdebuggerd_handler_core",
98*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
99*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
100*00c7fec1SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
101*00c7fec1SAndroid Build Coastguard Worker    srcs: ["handler/debuggerd_handler.cpp"],
102*00c7fec1SAndroid Build Coastguard Worker
103*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
104*00c7fec1SAndroid Build Coastguard Worker        "libbase_headers",
105*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_common_headers",
106*00c7fec1SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
107*00c7fec1SAndroid Build Coastguard Worker        "gwp_asan_headers",
108*00c7fec1SAndroid Build Coastguard Worker    ],
109*00c7fec1SAndroid Build Coastguard Worker
110*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
111*00c7fec1SAndroid Build Coastguard Worker        "libasync_safe",
112*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
113*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd",
114*00c7fec1SAndroid Build Coastguard Worker    ],
115*00c7fec1SAndroid Build Coastguard Worker
116*00c7fec1SAndroid Build Coastguard Worker    export_header_lib_headers: ["libdebuggerd_common_headers"],
117*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
118*00c7fec1SAndroid Build Coastguard Worker    apex_available: [
119*00c7fec1SAndroid Build Coastguard Worker        "com.android.runtime",
120*00c7fec1SAndroid Build Coastguard Worker    ],
121*00c7fec1SAndroid Build Coastguard Worker}
122*00c7fec1SAndroid Build Coastguard Worker
123*00c7fec1SAndroid Build Coastguard Worker// Implementation with a no-op fallback.
124*00c7fec1SAndroid Build Coastguard Workercc_library_static {
125*00c7fec1SAndroid Build Coastguard Worker    name: "libdebuggerd_handler",
126*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
127*00c7fec1SAndroid Build Coastguard Worker    srcs: ["handler/debuggerd_fallback_nop.cpp"],
128*00c7fec1SAndroid Build Coastguard Worker
129*00c7fec1SAndroid Build Coastguard Worker    header_libs: ["bionic_libc_platform_headers"],
130*00c7fec1SAndroid Build Coastguard Worker    export_header_lib_headers: ["bionic_libc_platform_headers"],
131*00c7fec1SAndroid Build Coastguard Worker
132*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
133*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_handler_core",
134*00c7fec1SAndroid Build Coastguard Worker    ],
135*00c7fec1SAndroid Build Coastguard Worker
136*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
137*00c7fec1SAndroid Build Coastguard Worker}
138*00c7fec1SAndroid Build Coastguard Worker
139*00c7fec1SAndroid Build Coastguard Worker// Fallback implementation, for use in the Bionic linker only.
140*00c7fec1SAndroid Build Coastguard Workercc_library_static {
141*00c7fec1SAndroid Build Coastguard Worker    name: "libdebuggerd_handler_fallback",
142*00c7fec1SAndroid Build Coastguard Worker    visibility: ["//bionic/linker"],
143*00c7fec1SAndroid Build Coastguard Worker    apex_available: [
144*00c7fec1SAndroid Build Coastguard Worker        "com.android.runtime",
145*00c7fec1SAndroid Build Coastguard Worker        "//apex_available:platform",
146*00c7fec1SAndroid Build Coastguard Worker    ],
147*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
148*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
149*00c7fec1SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
150*00c7fec1SAndroid Build Coastguard Worker    srcs: [
151*00c7fec1SAndroid Build Coastguard Worker        "handler/debuggerd_fallback.cpp",
152*00c7fec1SAndroid Build Coastguard Worker    ],
153*00c7fec1SAndroid Build Coastguard Worker
154*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
155*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_handler_core",
156*00c7fec1SAndroid Build Coastguard Worker        "libtombstoned_client_static",
157*00c7fec1SAndroid Build Coastguard Worker        "libasync_safe",
158*00c7fec1SAndroid Build Coastguard Worker        "libbase",
159*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd",
160*00c7fec1SAndroid Build Coastguard Worker        "libunwindstack_no_dex",
161*00c7fec1SAndroid Build Coastguard Worker        "liblzma",
162*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
163*00c7fec1SAndroid Build Coastguard Worker    ],
164*00c7fec1SAndroid Build Coastguard Worker
165*00c7fec1SAndroid Build Coastguard Worker    header_libs: ["bionic_libc_platform_headers"],
166*00c7fec1SAndroid Build Coastguard Worker    export_header_lib_headers: ["bionic_libc_platform_headers"],
167*00c7fec1SAndroid Build Coastguard Worker
168*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
169*00c7fec1SAndroid Build Coastguard Worker}
170*00c7fec1SAndroid Build Coastguard Worker
171*00c7fec1SAndroid Build Coastguard Workercc_library {
172*00c7fec1SAndroid Build Coastguard Worker    name: "libdebuggerd_client",
173*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
174*00c7fec1SAndroid Build Coastguard Worker    srcs: [
175*00c7fec1SAndroid Build Coastguard Worker        "client/debuggerd_client.cpp",
176*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
177*00c7fec1SAndroid Build Coastguard Worker    ],
178*00c7fec1SAndroid Build Coastguard Worker
179*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
180*00c7fec1SAndroid Build Coastguard Worker        "libbase",
181*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
182*00c7fec1SAndroid Build Coastguard Worker        "libprocinfo",
183*00c7fec1SAndroid Build Coastguard Worker    ],
184*00c7fec1SAndroid Build Coastguard Worker
185*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
186*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_common_headers",
187*00c7fec1SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
188*00c7fec1SAndroid Build Coastguard Worker    ],
189*00c7fec1SAndroid Build Coastguard Worker    export_header_lib_headers: [
190*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_common_headers",
191*00c7fec1SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
192*00c7fec1SAndroid Build Coastguard Worker    ],
193*00c7fec1SAndroid Build Coastguard Worker
194*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
195*00c7fec1SAndroid Build Coastguard Worker}
196*00c7fec1SAndroid Build Coastguard Worker
197*00c7fec1SAndroid Build Coastguard Workercc_library {
198*00c7fec1SAndroid Build Coastguard Worker    name: "libdebuggerd_tombstone_proto_to_text",
199*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
200*00c7fec1SAndroid Build Coastguard Worker    ramdisk_available: true,
201*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
202*00c7fec1SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
203*00c7fec1SAndroid Build Coastguard Worker    host_supported: true,
204*00c7fec1SAndroid Build Coastguard Worker
205*00c7fec1SAndroid Build Coastguard Worker    local_include_dirs: ["libdebuggerd/include"],
206*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["libdebuggerd/include"],
207*00c7fec1SAndroid Build Coastguard Worker
208*00c7fec1SAndroid Build Coastguard Worker    srcs: [
209*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/tombstone_proto_to_text.cpp",
210*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/utility_host.cpp",
211*00c7fec1SAndroid Build Coastguard Worker    ],
212*00c7fec1SAndroid Build Coastguard Worker
213*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
214*00c7fec1SAndroid Build Coastguard Worker        "libbase",
215*00c7fec1SAndroid Build Coastguard Worker    ],
216*00c7fec1SAndroid Build Coastguard Worker
217*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
218*00c7fec1SAndroid Build Coastguard Worker        "libtombstone_proto",
219*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
220*00c7fec1SAndroid Build Coastguard Worker    ],
221*00c7fec1SAndroid Build Coastguard Worker
222*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
223*00c7fec1SAndroid Build Coastguard Worker        "liblog",
224*00c7fec1SAndroid Build Coastguard Worker    ],
225*00c7fec1SAndroid Build Coastguard Worker
226*00c7fec1SAndroid Build Coastguard Worker    apex_available: [
227*00c7fec1SAndroid Build Coastguard Worker        "//apex_available:platform",
228*00c7fec1SAndroid Build Coastguard Worker        "com.android.runtime",
229*00c7fec1SAndroid Build Coastguard Worker    ],
230*00c7fec1SAndroid Build Coastguard Worker}
231*00c7fec1SAndroid Build Coastguard Worker
232*00c7fec1SAndroid Build Coastguard Workercc_library_static {
233*00c7fec1SAndroid Build Coastguard Worker    name: "libdebuggerd",
234*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
235*00c7fec1SAndroid Build Coastguard Worker    ramdisk_available: true,
236*00c7fec1SAndroid Build Coastguard Worker    recovery_available: true,
237*00c7fec1SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
238*00c7fec1SAndroid Build Coastguard Worker
239*00c7fec1SAndroid Build Coastguard Worker    srcs: [
240*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/backtrace.cpp",
241*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/gwp_asan.cpp",
242*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/open_files_list.cpp",
243*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/scudo.cpp",
244*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/tombstone.cpp",
245*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/tombstone_proto.cpp",
246*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/utility.cpp",
247*00c7fec1SAndroid Build Coastguard Worker    ],
248*00c7fec1SAndroid Build Coastguard Worker
249*00c7fec1SAndroid Build Coastguard Worker    cflags: [
250*00c7fec1SAndroid Build Coastguard Worker        "-DUSE_SCUDO",
251*00c7fec1SAndroid Build Coastguard Worker    ],
252*00c7fec1SAndroid Build Coastguard Worker
253*00c7fec1SAndroid Build Coastguard Worker    local_include_dirs: ["libdebuggerd/include"],
254*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["libdebuggerd/include"],
255*00c7fec1SAndroid Build Coastguard Worker
256*00c7fec1SAndroid Build Coastguard Worker    include_dirs: [
257*00c7fec1SAndroid Build Coastguard Worker        // Needed for private/bionic_fdsan.h
258*00c7fec1SAndroid Build Coastguard Worker        "bionic/libc",
259*00c7fec1SAndroid Build Coastguard Worker    ],
260*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
261*00c7fec1SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
262*00c7fec1SAndroid Build Coastguard Worker        "gwp_asan_headers",
263*00c7fec1SAndroid Build Coastguard Worker        "liblog_headers",
264*00c7fec1SAndroid Build Coastguard Worker        "scudo_headers",
265*00c7fec1SAndroid Build Coastguard Worker    ],
266*00c7fec1SAndroid Build Coastguard Worker
267*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
268*00c7fec1SAndroid Build Coastguard Worker        "libdexfile_support", // libunwindstack dependency
269*00c7fec1SAndroid Build Coastguard Worker        "libunwindstack",
270*00c7fec1SAndroid Build Coastguard Worker        "liblzma",
271*00c7fec1SAndroid Build Coastguard Worker        "libbase",
272*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
273*00c7fec1SAndroid Build Coastguard Worker    ],
274*00c7fec1SAndroid Build Coastguard Worker
275*00c7fec1SAndroid Build Coastguard Worker    whole_static_libs: [
276*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_tombstone_proto_to_text",
277*00c7fec1SAndroid Build Coastguard Worker        "libasync_safe",
278*00c7fec1SAndroid Build Coastguard Worker        "gwp_asan_crash_handler",
279*00c7fec1SAndroid Build Coastguard Worker        "libtombstone_proto",
280*00c7fec1SAndroid Build Coastguard Worker        "libprocinfo",
281*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
282*00c7fec1SAndroid Build Coastguard Worker        "libscudo",
283*00c7fec1SAndroid Build Coastguard Worker    ],
284*00c7fec1SAndroid Build Coastguard Worker
285*00c7fec1SAndroid Build Coastguard Worker    target: {
286*00c7fec1SAndroid Build Coastguard Worker        recovery: {
287*00c7fec1SAndroid Build Coastguard Worker            exclude_static_libs: [
288*00c7fec1SAndroid Build Coastguard Worker                "libdexfile_support",
289*00c7fec1SAndroid Build Coastguard Worker            ],
290*00c7fec1SAndroid Build Coastguard Worker            exclude_runtime_libs: [
291*00c7fec1SAndroid Build Coastguard Worker                "libdexfile",
292*00c7fec1SAndroid Build Coastguard Worker            ],
293*00c7fec1SAndroid Build Coastguard Worker        },
294*00c7fec1SAndroid Build Coastguard Worker        vendor_ramdisk: {
295*00c7fec1SAndroid Build Coastguard Worker            exclude_static_libs: [
296*00c7fec1SAndroid Build Coastguard Worker                "libdexfile_support",
297*00c7fec1SAndroid Build Coastguard Worker            ],
298*00c7fec1SAndroid Build Coastguard Worker            exclude_runtime_libs: [
299*00c7fec1SAndroid Build Coastguard Worker                "libdexfile",
300*00c7fec1SAndroid Build Coastguard Worker            ],
301*00c7fec1SAndroid Build Coastguard Worker        },
302*00c7fec1SAndroid Build Coastguard Worker        ramdisk: {
303*00c7fec1SAndroid Build Coastguard Worker            exclude_static_libs: [
304*00c7fec1SAndroid Build Coastguard Worker                "libdexfile_support",
305*00c7fec1SAndroid Build Coastguard Worker            ],
306*00c7fec1SAndroid Build Coastguard Worker            exclude_runtime_libs: [
307*00c7fec1SAndroid Build Coastguard Worker                "libdexfile",
308*00c7fec1SAndroid Build Coastguard Worker            ],
309*00c7fec1SAndroid Build Coastguard Worker        },
310*00c7fec1SAndroid Build Coastguard Worker        android: {
311*00c7fec1SAndroid Build Coastguard Worker            runtime_libs: [
312*00c7fec1SAndroid Build Coastguard Worker                "libdexfile", // libdexfile_support dependency
313*00c7fec1SAndroid Build Coastguard Worker            ],
314*00c7fec1SAndroid Build Coastguard Worker        },
315*00c7fec1SAndroid Build Coastguard Worker    },
316*00c7fec1SAndroid Build Coastguard Worker
317*00c7fec1SAndroid Build Coastguard Worker    product_variables: {
318*00c7fec1SAndroid Build Coastguard Worker        debuggable: {
319*00c7fec1SAndroid Build Coastguard Worker            cflags: ["-DROOT_POSSIBLE"],
320*00c7fec1SAndroid Build Coastguard Worker        },
321*00c7fec1SAndroid Build Coastguard Worker
322*00c7fec1SAndroid Build Coastguard Worker        malloc_low_memory: {
323*00c7fec1SAndroid Build Coastguard Worker            cflags: ["-UUSE_SCUDO"],
324*00c7fec1SAndroid Build Coastguard Worker            exclude_static_libs: ["libscudo"],
325*00c7fec1SAndroid Build Coastguard Worker        },
326*00c7fec1SAndroid Build Coastguard Worker    },
327*00c7fec1SAndroid Build Coastguard Worker    apex_available: [
328*00c7fec1SAndroid Build Coastguard Worker        "com.android.runtime",
329*00c7fec1SAndroid Build Coastguard Worker    ],
330*00c7fec1SAndroid Build Coastguard Worker}
331*00c7fec1SAndroid Build Coastguard Worker
332*00c7fec1SAndroid Build Coastguard Workercc_binary {
333*00c7fec1SAndroid Build Coastguard Worker    name: "pbtombstone",
334*00c7fec1SAndroid Build Coastguard Worker    host_supported: true,
335*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
336*00c7fec1SAndroid Build Coastguard Worker    srcs: [
337*00c7fec1SAndroid Build Coastguard Worker        "pbtombstone.cpp",
338*00c7fec1SAndroid Build Coastguard Worker        "tombstone_symbolize.cpp",
339*00c7fec1SAndroid Build Coastguard Worker    ],
340*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
341*00c7fec1SAndroid Build Coastguard Worker        "libbase",
342*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_tombstone_proto_to_text",
343*00c7fec1SAndroid Build Coastguard Worker        "liblog",
344*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
345*00c7fec1SAndroid Build Coastguard Worker        "libtombstone_proto",
346*00c7fec1SAndroid Build Coastguard Worker    ],
347*00c7fec1SAndroid Build Coastguard Worker}
348*00c7fec1SAndroid Build Coastguard Worker
349*00c7fec1SAndroid Build Coastguard Workercc_test_library {
350*00c7fec1SAndroid Build Coastguard Worker    name: "libcrash_test",
351*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
352*00c7fec1SAndroid Build Coastguard Worker    srcs: ["crash_test.cpp"],
353*00c7fec1SAndroid Build Coastguard Worker}
354*00c7fec1SAndroid Build Coastguard Worker
355*00c7fec1SAndroid Build Coastguard Workercc_test {
356*00c7fec1SAndroid Build Coastguard Worker    name: "debuggerd_test",
357*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
358*00c7fec1SAndroid Build Coastguard Worker    require_root: true,
359*00c7fec1SAndroid Build Coastguard Worker
360*00c7fec1SAndroid Build Coastguard Worker    cflags: ["-Wno-missing-field-initializers"],
361*00c7fec1SAndroid Build Coastguard Worker    srcs: [
362*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/test/dump_memory_test.cpp",
363*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/test/elf_fake.cpp",
364*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/test/log_fake.cpp",
365*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/test/mte_stack_record_test.cpp",
366*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/test/open_files_list_test.cpp",
367*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd/test/tombstone_proto_to_text_test.cpp",
368*00c7fec1SAndroid Build Coastguard Worker    ],
369*00c7fec1SAndroid Build Coastguard Worker
370*00c7fec1SAndroid Build Coastguard Worker    target: {
371*00c7fec1SAndroid Build Coastguard Worker        android: {
372*00c7fec1SAndroid Build Coastguard Worker            srcs: [
373*00c7fec1SAndroid Build Coastguard Worker                "client/debuggerd_client_test.cpp",
374*00c7fec1SAndroid Build Coastguard Worker                "debuggerd_test.cpp",
375*00c7fec1SAndroid Build Coastguard Worker            ],
376*00c7fec1SAndroid Build Coastguard Worker            static_libs: [
377*00c7fec1SAndroid Build Coastguard Worker                "libasync_safe",
378*00c7fec1SAndroid Build Coastguard Worker                "libtombstoned_client_static",
379*00c7fec1SAndroid Build Coastguard Worker            ],
380*00c7fec1SAndroid Build Coastguard Worker        },
381*00c7fec1SAndroid Build Coastguard Worker    },
382*00c7fec1SAndroid Build Coastguard Worker
383*00c7fec1SAndroid Build Coastguard Worker    sanitize: {
384*00c7fec1SAndroid Build Coastguard Worker        memtag_heap: true,
385*00c7fec1SAndroid Build Coastguard Worker    },
386*00c7fec1SAndroid Build Coastguard Worker
387*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
388*00c7fec1SAndroid Build Coastguard Worker        "libbase",
389*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
390*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_client",
391*00c7fec1SAndroid Build Coastguard Worker        "liblog",
392*00c7fec1SAndroid Build Coastguard Worker        "libnativehelper",
393*00c7fec1SAndroid Build Coastguard Worker        "libunwindstack",
394*00c7fec1SAndroid Build Coastguard Worker    ],
395*00c7fec1SAndroid Build Coastguard Worker
396*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
397*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd",
398*00c7fec1SAndroid Build Coastguard Worker        "libgmock",
399*00c7fec1SAndroid Build Coastguard Worker        "libminijail",
400*00c7fec1SAndroid Build Coastguard Worker    ],
401*00c7fec1SAndroid Build Coastguard Worker
402*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
403*00c7fec1SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
404*00c7fec1SAndroid Build Coastguard Worker        "gwp_asan_headers",
405*00c7fec1SAndroid Build Coastguard Worker    ],
406*00c7fec1SAndroid Build Coastguard Worker
407*00c7fec1SAndroid Build Coastguard Worker    local_include_dirs: [
408*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd",
409*00c7fec1SAndroid Build Coastguard Worker    ],
410*00c7fec1SAndroid Build Coastguard Worker
411*00c7fec1SAndroid Build Coastguard Worker    compile_multilib: "both",
412*00c7fec1SAndroid Build Coastguard Worker    multilib: {
413*00c7fec1SAndroid Build Coastguard Worker        lib32: {
414*00c7fec1SAndroid Build Coastguard Worker            stem: "debuggerd_test32",
415*00c7fec1SAndroid Build Coastguard Worker        },
416*00c7fec1SAndroid Build Coastguard Worker        lib64: {
417*00c7fec1SAndroid Build Coastguard Worker            stem: "debuggerd_test64",
418*00c7fec1SAndroid Build Coastguard Worker        },
419*00c7fec1SAndroid Build Coastguard Worker    },
420*00c7fec1SAndroid Build Coastguard Worker
421*00c7fec1SAndroid Build Coastguard Worker    data: [
422*00c7fec1SAndroid Build Coastguard Worker        ":libcrash_test",
423*00c7fec1SAndroid Build Coastguard Worker    ],
424*00c7fec1SAndroid Build Coastguard Worker
425*00c7fec1SAndroid Build Coastguard Worker    test_suites: ["device-tests"],
426*00c7fec1SAndroid Build Coastguard Worker}
427*00c7fec1SAndroid Build Coastguard Worker
428*00c7fec1SAndroid Build Coastguard Workercc_benchmark {
429*00c7fec1SAndroid Build Coastguard Worker    name: "debuggerd_benchmark",
430*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
431*00c7fec1SAndroid Build Coastguard Worker    srcs: ["debuggerd_benchmark.cpp"],
432*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
433*00c7fec1SAndroid Build Coastguard Worker        "libbase",
434*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_client",
435*00c7fec1SAndroid Build Coastguard Worker    ],
436*00c7fec1SAndroid Build Coastguard Worker}
437*00c7fec1SAndroid Build Coastguard Worker
438*00c7fec1SAndroid Build Coastguard Workercc_binary {
439*00c7fec1SAndroid Build Coastguard Worker    name: "crash_dump",
440*00c7fec1SAndroid Build Coastguard Worker    srcs: [
441*00c7fec1SAndroid Build Coastguard Worker        "crash_dump.cpp",
442*00c7fec1SAndroid Build Coastguard Worker        "tombstone_handler.cpp",
443*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
444*00c7fec1SAndroid Build Coastguard Worker    ],
445*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
446*00c7fec1SAndroid Build Coastguard Worker
447*00c7fec1SAndroid Build Coastguard Worker    compile_multilib: "both",
448*00c7fec1SAndroid Build Coastguard Worker    multilib: {
449*00c7fec1SAndroid Build Coastguard Worker        lib32: {
450*00c7fec1SAndroid Build Coastguard Worker            suffix: "32",
451*00c7fec1SAndroid Build Coastguard Worker        },
452*00c7fec1SAndroid Build Coastguard Worker        lib64: {
453*00c7fec1SAndroid Build Coastguard Worker            suffix: "64",
454*00c7fec1SAndroid Build Coastguard Worker        },
455*00c7fec1SAndroid Build Coastguard Worker    },
456*00c7fec1SAndroid Build Coastguard Worker
457*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
458*00c7fec1SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
459*00c7fec1SAndroid Build Coastguard Worker        "libnative_bridge_support_accessor_headers",
460*00c7fec1SAndroid Build Coastguard Worker    ],
461*00c7fec1SAndroid Build Coastguard Worker
462*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
463*00c7fec1SAndroid Build Coastguard Worker        "libtombstoned_client_static",
464*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd",
465*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
466*00c7fec1SAndroid Build Coastguard Worker
467*00c7fec1SAndroid Build Coastguard Worker        "libtombstone_proto",
468*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
469*00c7fec1SAndroid Build Coastguard Worker
470*00c7fec1SAndroid Build Coastguard Worker        "libnative_bridge_guest_state_accessor",
471*00c7fec1SAndroid Build Coastguard Worker    ],
472*00c7fec1SAndroid Build Coastguard Worker
473*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
474*00c7fec1SAndroid Build Coastguard Worker        "libbase",
475*00c7fec1SAndroid Build Coastguard Worker        "liblog",
476*00c7fec1SAndroid Build Coastguard Worker        "libprocinfo",
477*00c7fec1SAndroid Build Coastguard Worker        "libunwindstack",
478*00c7fec1SAndroid Build Coastguard Worker    ],
479*00c7fec1SAndroid Build Coastguard Worker
480*00c7fec1SAndroid Build Coastguard Worker    apex_available: [
481*00c7fec1SAndroid Build Coastguard Worker        "com.android.runtime",
482*00c7fec1SAndroid Build Coastguard Worker    ],
483*00c7fec1SAndroid Build Coastguard Worker
484*00c7fec1SAndroid Build Coastguard Worker    // Required for tests.
485*00c7fec1SAndroid Build Coastguard Worker    required: ["crash_dump.policy"],
486*00c7fec1SAndroid Build Coastguard Worker
487*00c7fec1SAndroid Build Coastguard Worker    target: {
488*00c7fec1SAndroid Build Coastguard Worker        android: {
489*00c7fec1SAndroid Build Coastguard Worker            header_libs: [
490*00c7fec1SAndroid Build Coastguard Worker                "libnative_bridge_support_accessor_headers", // For dlext_namespaces.h
491*00c7fec1SAndroid Build Coastguard Worker            ],
492*00c7fec1SAndroid Build Coastguard Worker            shared_libs: ["libdl_android"], // For android_get_exported_namespace implementation
493*00c7fec1SAndroid Build Coastguard Worker        },
494*00c7fec1SAndroid Build Coastguard Worker    },
495*00c7fec1SAndroid Build Coastguard Worker}
496*00c7fec1SAndroid Build Coastguard Worker
497*00c7fec1SAndroid Build Coastguard Workercc_binary {
498*00c7fec1SAndroid Build Coastguard Worker    name: "debuggerd",
499*00c7fec1SAndroid Build Coastguard Worker    srcs: [
500*00c7fec1SAndroid Build Coastguard Worker        "debuggerd.cpp",
501*00c7fec1SAndroid Build Coastguard Worker    ],
502*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
503*00c7fec1SAndroid Build Coastguard Worker
504*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
505*00c7fec1SAndroid Build Coastguard Worker        "libbase",
506*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_client",
507*00c7fec1SAndroid Build Coastguard Worker        "liblog",
508*00c7fec1SAndroid Build Coastguard Worker        "libprocessgroup",
509*00c7fec1SAndroid Build Coastguard Worker        "libprocinfo",
510*00c7fec1SAndroid Build Coastguard Worker    ],
511*00c7fec1SAndroid Build Coastguard Worker
512*00c7fec1SAndroid Build Coastguard Worker    local_include_dirs: ["include"],
513*00c7fec1SAndroid Build Coastguard Worker}
514*00c7fec1SAndroid Build Coastguard Worker
515*00c7fec1SAndroid Build Coastguard Workercc_defaults {
516*00c7fec1SAndroid Build Coastguard Worker    name: "tombstoned_defaults",
517*00c7fec1SAndroid Build Coastguard Worker    srcs: [
518*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
519*00c7fec1SAndroid Build Coastguard Worker        "tombstoned/intercept_manager.cpp",
520*00c7fec1SAndroid Build Coastguard Worker        "tombstoned/tombstoned.cpp",
521*00c7fec1SAndroid Build Coastguard Worker    ],
522*00c7fec1SAndroid Build Coastguard Worker    defaults: ["debuggerd_defaults"],
523*00c7fec1SAndroid Build Coastguard Worker
524*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
525*00c7fec1SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
526*00c7fec1SAndroid Build Coastguard Worker        "libdebuggerd_common_headers",
527*00c7fec1SAndroid Build Coastguard Worker    ],
528*00c7fec1SAndroid Build Coastguard Worker
529*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
530*00c7fec1SAndroid Build Coastguard Worker        "libbase",
531*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
532*00c7fec1SAndroid Build Coastguard Worker        "libevent",
533*00c7fec1SAndroid Build Coastguard Worker        "liblog",
534*00c7fec1SAndroid Build Coastguard Worker    ],
535*00c7fec1SAndroid Build Coastguard Worker}
536*00c7fec1SAndroid Build Coastguard Worker
537*00c7fec1SAndroid Build Coastguard Workercc_binary {
538*00c7fec1SAndroid Build Coastguard Worker    name: "tombstoned",
539*00c7fec1SAndroid Build Coastguard Worker    defaults: ["tombstoned_defaults"],
540*00c7fec1SAndroid Build Coastguard Worker    init_rc: ["tombstoned/tombstoned.rc"],
541*00c7fec1SAndroid Build Coastguard Worker}
542*00c7fec1SAndroid Build Coastguard Worker
543*00c7fec1SAndroid Build Coastguard Workercc_binary {
544*00c7fec1SAndroid Build Coastguard Worker    name: "tombstoned.microdroid",
545*00c7fec1SAndroid Build Coastguard Worker    defaults: ["tombstoned_defaults"],
546*00c7fec1SAndroid Build Coastguard Worker    init_rc: ["tombstoned/tombstoned.microdroid.rc"],
547*00c7fec1SAndroid Build Coastguard Worker}
548*00c7fec1SAndroid Build Coastguard Worker
549*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
550*00c7fec1SAndroid Build Coastguard Worker    name: "crash_dump.policy",
551*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "seccomp_policy",
552*00c7fec1SAndroid Build Coastguard Worker    filename_from_src: true,
553*00c7fec1SAndroid Build Coastguard Worker    arch: {
554*00c7fec1SAndroid Build Coastguard Worker        arm: {
555*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.arm.policy",
556*00c7fec1SAndroid Build Coastguard Worker            required: [
557*00c7fec1SAndroid Build Coastguard Worker                "crash_dump.policy_other",
558*00c7fec1SAndroid Build Coastguard Worker            ],
559*00c7fec1SAndroid Build Coastguard Worker        },
560*00c7fec1SAndroid Build Coastguard Worker        arm64: {
561*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.arm64.policy",
562*00c7fec1SAndroid Build Coastguard Worker            required: [
563*00c7fec1SAndroid Build Coastguard Worker                "crash_dump.policy_other",
564*00c7fec1SAndroid Build Coastguard Worker            ],
565*00c7fec1SAndroid Build Coastguard Worker        },
566*00c7fec1SAndroid Build Coastguard Worker        riscv64: {
567*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.riscv64.policy",
568*00c7fec1SAndroid Build Coastguard Worker        },
569*00c7fec1SAndroid Build Coastguard Worker        x86: {
570*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.x86.policy",
571*00c7fec1SAndroid Build Coastguard Worker            required: [
572*00c7fec1SAndroid Build Coastguard Worker                "crash_dump.policy_other",
573*00c7fec1SAndroid Build Coastguard Worker            ],
574*00c7fec1SAndroid Build Coastguard Worker        },
575*00c7fec1SAndroid Build Coastguard Worker        x86_64: {
576*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.x86_64.policy",
577*00c7fec1SAndroid Build Coastguard Worker            required: [
578*00c7fec1SAndroid Build Coastguard Worker                "crash_dump.policy_other",
579*00c7fec1SAndroid Build Coastguard Worker            ],
580*00c7fec1SAndroid Build Coastguard Worker        },
581*00c7fec1SAndroid Build Coastguard Worker    },
582*00c7fec1SAndroid Build Coastguard Worker}
583*00c7fec1SAndroid Build Coastguard Worker
584*00c7fec1SAndroid Build Coastguard Worker// This installs the "other" architecture (so 32-bit on 64-bit device).
585*00c7fec1SAndroid Build Coastguard Workerprebuilt_etc {
586*00c7fec1SAndroid Build Coastguard Worker    name: "crash_dump.policy_other",
587*00c7fec1SAndroid Build Coastguard Worker    sub_dir: "seccomp_policy",
588*00c7fec1SAndroid Build Coastguard Worker    filename_from_src: true,
589*00c7fec1SAndroid Build Coastguard Worker    arch: {
590*00c7fec1SAndroid Build Coastguard Worker        arm: {
591*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.arm64.policy",
592*00c7fec1SAndroid Build Coastguard Worker        },
593*00c7fec1SAndroid Build Coastguard Worker        arm64: {
594*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.arm.policy",
595*00c7fec1SAndroid Build Coastguard Worker        },
596*00c7fec1SAndroid Build Coastguard Worker        riscv64: {
597*00c7fec1SAndroid Build Coastguard Worker            enabled: false,
598*00c7fec1SAndroid Build Coastguard Worker        },
599*00c7fec1SAndroid Build Coastguard Worker        x86: {
600*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.x86_64.policy",
601*00c7fec1SAndroid Build Coastguard Worker        },
602*00c7fec1SAndroid Build Coastguard Worker        x86_64: {
603*00c7fec1SAndroid Build Coastguard Worker            src: "seccomp_policy/crash_dump.x86.policy",
604*00c7fec1SAndroid Build Coastguard Worker        },
605*00c7fec1SAndroid Build Coastguard Worker    },
606*00c7fec1SAndroid Build Coastguard Worker}
607