xref: /aosp_15_r20/system/unwinding/libunwindstack/Android.bp (revision eb293b8f56ee8303637c5595cfcdeef8039e85c6)
1*eb293b8fSAndroid Build Coastguard Worker//
2*eb293b8fSAndroid Build Coastguard Worker// Copyright (C) 2017 The Android Open Source Project
3*eb293b8fSAndroid Build Coastguard Worker//
4*eb293b8fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*eb293b8fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*eb293b8fSAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*eb293b8fSAndroid Build Coastguard Worker//
8*eb293b8fSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*eb293b8fSAndroid Build Coastguard Worker//
10*eb293b8fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*eb293b8fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*eb293b8fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*eb293b8fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*eb293b8fSAndroid Build Coastguard Worker// limitations under the License.
15*eb293b8fSAndroid Build Coastguard Worker//
16*eb293b8fSAndroid Build Coastguard Worker
17*eb293b8fSAndroid Build Coastguard Workerpackage {
18*eb293b8fSAndroid Build Coastguard Worker    default_team: "trendy_team_native_tools_libraries",
19*eb293b8fSAndroid Build Coastguard Worker    default_applicable_licenses: [
20*eb293b8fSAndroid Build Coastguard Worker        "Android-Apache-2.0",
21*eb293b8fSAndroid Build Coastguard Worker        "system_unwinding_libunwindstack_license",
22*eb293b8fSAndroid Build Coastguard Worker    ],
23*eb293b8fSAndroid Build Coastguard Worker}
24*eb293b8fSAndroid Build Coastguard Worker
25*eb293b8fSAndroid Build Coastguard Workerlicense {
26*eb293b8fSAndroid Build Coastguard Worker    name: "system_unwinding_libunwindstack_license",
27*eb293b8fSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
28*eb293b8fSAndroid Build Coastguard Worker    license_kinds: [
29*eb293b8fSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
30*eb293b8fSAndroid Build Coastguard Worker    ],
31*eb293b8fSAndroid Build Coastguard Worker    license_text: ["LICENSE_BSD"],
32*eb293b8fSAndroid Build Coastguard Worker}
33*eb293b8fSAndroid Build Coastguard Worker
34*eb293b8fSAndroid Build Coastguard Workercc_defaults {
35*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_flags",
36*eb293b8fSAndroid Build Coastguard Worker
37*eb293b8fSAndroid Build Coastguard Worker    host_supported: true,
38*eb293b8fSAndroid Build Coastguard Worker
39*eb293b8fSAndroid Build Coastguard Worker    cflags: [
40*eb293b8fSAndroid Build Coastguard Worker        "-Wall",
41*eb293b8fSAndroid Build Coastguard Worker        "-Werror",
42*eb293b8fSAndroid Build Coastguard Worker        "-Wextra",
43*eb293b8fSAndroid Build Coastguard Worker        "-Wno-deprecated-volatile",
44*eb293b8fSAndroid Build Coastguard Worker        // Disable this warning, it doesn't provide any useful data.
45*eb293b8fSAndroid Build Coastguard Worker        "-Wno-reorder-init-list",
46*eb293b8fSAndroid Build Coastguard Worker    ],
47*eb293b8fSAndroid Build Coastguard Worker
48*eb293b8fSAndroid Build Coastguard Worker    target: {
49*eb293b8fSAndroid Build Coastguard Worker        darwin: {
50*eb293b8fSAndroid Build Coastguard Worker            enabled: false,
51*eb293b8fSAndroid Build Coastguard Worker        },
52*eb293b8fSAndroid Build Coastguard Worker        linux_bionic: {
53*eb293b8fSAndroid Build Coastguard Worker            enabled: true,
54*eb293b8fSAndroid Build Coastguard Worker        },
55*eb293b8fSAndroid Build Coastguard Worker    },
56*eb293b8fSAndroid Build Coastguard Worker}
57*eb293b8fSAndroid Build Coastguard Worker
58*eb293b8fSAndroid Build Coastguard Workerlibunwindstack_common_src_files = [
59*eb293b8fSAndroid Build Coastguard Worker    "AndroidUnwinder.cpp",
60*eb293b8fSAndroid Build Coastguard Worker    "ArmExidx.cpp",
61*eb293b8fSAndroid Build Coastguard Worker    "Demangle.cpp",
62*eb293b8fSAndroid Build Coastguard Worker    "DexFiles.cpp",
63*eb293b8fSAndroid Build Coastguard Worker    "DwarfCfa.cpp",
64*eb293b8fSAndroid Build Coastguard Worker    "DwarfEhFrameWithHdr.cpp",
65*eb293b8fSAndroid Build Coastguard Worker    "DwarfMemory.cpp",
66*eb293b8fSAndroid Build Coastguard Worker    "DwarfOp.cpp",
67*eb293b8fSAndroid Build Coastguard Worker    "DwarfSection.cpp",
68*eb293b8fSAndroid Build Coastguard Worker    "Elf.cpp",
69*eb293b8fSAndroid Build Coastguard Worker    "ElfInterface.cpp",
70*eb293b8fSAndroid Build Coastguard Worker    "ElfInterfaceArm.cpp",
71*eb293b8fSAndroid Build Coastguard Worker    "Global.cpp",
72*eb293b8fSAndroid Build Coastguard Worker    "JitDebug.cpp",
73*eb293b8fSAndroid Build Coastguard Worker    "MapInfo.cpp",
74*eb293b8fSAndroid Build Coastguard Worker    "Maps.cpp",
75*eb293b8fSAndroid Build Coastguard Worker    "Memory.cpp",
76*eb293b8fSAndroid Build Coastguard Worker    "MemoryMte.cpp",
77*eb293b8fSAndroid Build Coastguard Worker    "MemoryXz.cpp",
78*eb293b8fSAndroid Build Coastguard Worker    "Regs.cpp",
79*eb293b8fSAndroid Build Coastguard Worker    "RegsArm.cpp",
80*eb293b8fSAndroid Build Coastguard Worker    "RegsArm64.cpp",
81*eb293b8fSAndroid Build Coastguard Worker    "RegsX86.cpp",
82*eb293b8fSAndroid Build Coastguard Worker    "RegsX86_64.cpp",
83*eb293b8fSAndroid Build Coastguard Worker    "RegsRiscv64.cpp",
84*eb293b8fSAndroid Build Coastguard Worker    "Symbols.cpp",
85*eb293b8fSAndroid Build Coastguard Worker    "ThreadEntry.cpp",
86*eb293b8fSAndroid Build Coastguard Worker    "ThreadUnwinder.cpp",
87*eb293b8fSAndroid Build Coastguard Worker    "Unwinder.cpp",
88*eb293b8fSAndroid Build Coastguard Worker]
89*eb293b8fSAndroid Build Coastguard Worker
90*eb293b8fSAndroid Build Coastguard Workercc_defaults {
91*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_defaults",
92*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
93*eb293b8fSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
94*eb293b8fSAndroid Build Coastguard Worker
95*eb293b8fSAndroid Build Coastguard Worker    srcs: libunwindstack_common_src_files,
96*eb293b8fSAndroid Build Coastguard Worker
97*eb293b8fSAndroid Build Coastguard Worker    cflags: [
98*eb293b8fSAndroid Build Coastguard Worker        "-Wexit-time-destructors",
99*eb293b8fSAndroid Build Coastguard Worker        "-fno-c++-static-destructors",
100*eb293b8fSAndroid Build Coastguard Worker    ],
101*eb293b8fSAndroid Build Coastguard Worker
102*eb293b8fSAndroid Build Coastguard Worker    target: {
103*eb293b8fSAndroid Build Coastguard Worker        host: {
104*eb293b8fSAndroid Build Coastguard Worker            // Always disable optimizations for host to make it easier to debug.
105*eb293b8fSAndroid Build Coastguard Worker            cflags: [
106*eb293b8fSAndroid Build Coastguard Worker                "-O0",
107*eb293b8fSAndroid Build Coastguard Worker                "-g",
108*eb293b8fSAndroid Build Coastguard Worker            ],
109*eb293b8fSAndroid Build Coastguard Worker        },
110*eb293b8fSAndroid Build Coastguard Worker        bionic: {
111*eb293b8fSAndroid Build Coastguard Worker            header_libs: ["bionic_libc_platform_headers"],
112*eb293b8fSAndroid Build Coastguard Worker            whole_static_libs: ["libasync_safe"],
113*eb293b8fSAndroid Build Coastguard Worker        },
114*eb293b8fSAndroid Build Coastguard Worker    },
115*eb293b8fSAndroid Build Coastguard Worker
116*eb293b8fSAndroid Build Coastguard Worker    arch: {
117*eb293b8fSAndroid Build Coastguard Worker        x86: {
118*eb293b8fSAndroid Build Coastguard Worker            srcs: ["AsmGetRegsX86.S"],
119*eb293b8fSAndroid Build Coastguard Worker        },
120*eb293b8fSAndroid Build Coastguard Worker        x86_64: {
121*eb293b8fSAndroid Build Coastguard Worker            srcs: ["AsmGetRegsX86_64.S"],
122*eb293b8fSAndroid Build Coastguard Worker        },
123*eb293b8fSAndroid Build Coastguard Worker    },
124*eb293b8fSAndroid Build Coastguard Worker
125*eb293b8fSAndroid Build Coastguard Worker    static_libs: [
126*eb293b8fSAndroid Build Coastguard Worker        "libprocinfo",
127*eb293b8fSAndroid Build Coastguard Worker    ],
128*eb293b8fSAndroid Build Coastguard Worker
129*eb293b8fSAndroid Build Coastguard Worker    whole_static_libs: [
130*eb293b8fSAndroid Build Coastguard Worker        "librustc_demangle_static",
131*eb293b8fSAndroid Build Coastguard Worker        "libzstd",
132*eb293b8fSAndroid Build Coastguard Worker    ],
133*eb293b8fSAndroid Build Coastguard Worker
134*eb293b8fSAndroid Build Coastguard Worker    shared_libs: [
135*eb293b8fSAndroid Build Coastguard Worker        "libbase",
136*eb293b8fSAndroid Build Coastguard Worker        "liblog",
137*eb293b8fSAndroid Build Coastguard Worker        "liblzma",
138*eb293b8fSAndroid Build Coastguard Worker        "libz",
139*eb293b8fSAndroid Build Coastguard Worker    ],
140*eb293b8fSAndroid Build Coastguard Worker}
141*eb293b8fSAndroid Build Coastguard Worker
142*eb293b8fSAndroid Build Coastguard Workercc_library {
143*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack",
144*eb293b8fSAndroid Build Coastguard Worker    ramdisk_available: true,
145*eb293b8fSAndroid Build Coastguard Worker    vendor_available: true,
146*eb293b8fSAndroid Build Coastguard Worker    product_available: true,
147*eb293b8fSAndroid Build Coastguard Worker    recovery_available: true,
148*eb293b8fSAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
149*eb293b8fSAndroid Build Coastguard Worker    // TODO(b/153609531): remove when no longer needed.
150*eb293b8fSAndroid Build Coastguard Worker    native_bridge_supported: true,
151*eb293b8fSAndroid Build Coastguard Worker    double_loadable: true,
152*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_defaults"],
153*eb293b8fSAndroid Build Coastguard Worker    srcs: [
154*eb293b8fSAndroid Build Coastguard Worker        "DexFile.cpp",
155*eb293b8fSAndroid Build Coastguard Worker        "LogAndroid.cpp",
156*eb293b8fSAndroid Build Coastguard Worker    ],
157*eb293b8fSAndroid Build Coastguard Worker    cflags: ["-DDEXFILE_SUPPORT"],
158*eb293b8fSAndroid Build Coastguard Worker    static_libs: ["libdexfile_support"],
159*eb293b8fSAndroid Build Coastguard Worker
160*eb293b8fSAndroid Build Coastguard Worker    target: {
161*eb293b8fSAndroid Build Coastguard Worker        vendor: {
162*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-UDEXFILE_SUPPORT"],
163*eb293b8fSAndroid Build Coastguard Worker            exclude_srcs: ["DexFile.cpp"],
164*eb293b8fSAndroid Build Coastguard Worker            exclude_static_libs: ["libdexfile_support"],
165*eb293b8fSAndroid Build Coastguard Worker            exclude_runtime_libs: ["libdexfile"],
166*eb293b8fSAndroid Build Coastguard Worker        },
167*eb293b8fSAndroid Build Coastguard Worker        product: {
168*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-UDEXFILE_SUPPORT"],
169*eb293b8fSAndroid Build Coastguard Worker            exclude_srcs: ["DexFile.cpp"],
170*eb293b8fSAndroid Build Coastguard Worker            exclude_static_libs: ["libdexfile_support"],
171*eb293b8fSAndroid Build Coastguard Worker            exclude_runtime_libs: ["libdexfile"],
172*eb293b8fSAndroid Build Coastguard Worker        },
173*eb293b8fSAndroid Build Coastguard Worker        recovery: {
174*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-UDEXFILE_SUPPORT"],
175*eb293b8fSAndroid Build Coastguard Worker            exclude_srcs: ["DexFile.cpp"],
176*eb293b8fSAndroid Build Coastguard Worker            exclude_static_libs: ["libdexfile_support"],
177*eb293b8fSAndroid Build Coastguard Worker            exclude_runtime_libs: ["libdexfile"],
178*eb293b8fSAndroid Build Coastguard Worker        },
179*eb293b8fSAndroid Build Coastguard Worker        vendor_ramdisk: {
180*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-UDEXFILE_SUPPORT"],
181*eb293b8fSAndroid Build Coastguard Worker            exclude_srcs: ["DexFile.cpp"],
182*eb293b8fSAndroid Build Coastguard Worker            exclude_static_libs: ["libdexfile_support"],
183*eb293b8fSAndroid Build Coastguard Worker            exclude_runtime_libs: ["libdexfile"],
184*eb293b8fSAndroid Build Coastguard Worker        },
185*eb293b8fSAndroid Build Coastguard Worker        ramdisk: {
186*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-UDEXFILE_SUPPORT"],
187*eb293b8fSAndroid Build Coastguard Worker            exclude_srcs: ["DexFile.cpp"],
188*eb293b8fSAndroid Build Coastguard Worker            exclude_static_libs: ["libdexfile_support"],
189*eb293b8fSAndroid Build Coastguard Worker            exclude_runtime_libs: ["libdexfile"],
190*eb293b8fSAndroid Build Coastguard Worker        },
191*eb293b8fSAndroid Build Coastguard Worker        native_bridge: {
192*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-UDEXFILE_SUPPORT"],
193*eb293b8fSAndroid Build Coastguard Worker            exclude_srcs: ["DexFile.cpp"],
194*eb293b8fSAndroid Build Coastguard Worker            exclude_static_libs: ["libdexfile_support"],
195*eb293b8fSAndroid Build Coastguard Worker            exclude_runtime_libs: ["libdexfile"],
196*eb293b8fSAndroid Build Coastguard Worker        },
197*eb293b8fSAndroid Build Coastguard Worker        android: {
198*eb293b8fSAndroid Build Coastguard Worker            runtime_libs: ["libdexfile"], // libdexfile_support dependency
199*eb293b8fSAndroid Build Coastguard Worker        },
200*eb293b8fSAndroid Build Coastguard Worker        linux: {
201*eb293b8fSAndroid Build Coastguard Worker            runtime_libs: ["libdexfile"], // libdexfile_support dependency
202*eb293b8fSAndroid Build Coastguard Worker        },
203*eb293b8fSAndroid Build Coastguard Worker        musl: {
204*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-DNT_RISCV_VECTOR=0x901"],
205*eb293b8fSAndroid Build Coastguard Worker        },
206*eb293b8fSAndroid Build Coastguard Worker    },
207*eb293b8fSAndroid Build Coastguard Worker
208*eb293b8fSAndroid Build Coastguard Worker    arch: {
209*eb293b8fSAndroid Build Coastguard Worker        arm: {
210*eb293b8fSAndroid Build Coastguard Worker            version_script: "exported.map",
211*eb293b8fSAndroid Build Coastguard Worker        },
212*eb293b8fSAndroid Build Coastguard Worker        arm64: {
213*eb293b8fSAndroid Build Coastguard Worker            version_script: "exported.map",
214*eb293b8fSAndroid Build Coastguard Worker        },
215*eb293b8fSAndroid Build Coastguard Worker        riscv64: {
216*eb293b8fSAndroid Build Coastguard Worker            version_script: "exported.map",
217*eb293b8fSAndroid Build Coastguard Worker        },
218*eb293b8fSAndroid Build Coastguard Worker        x86: {
219*eb293b8fSAndroid Build Coastguard Worker            version_script: "exported_x86.map",
220*eb293b8fSAndroid Build Coastguard Worker        },
221*eb293b8fSAndroid Build Coastguard Worker        x86_64: {
222*eb293b8fSAndroid Build Coastguard Worker            version_script: "exported_x86.map",
223*eb293b8fSAndroid Build Coastguard Worker        },
224*eb293b8fSAndroid Build Coastguard Worker    },
225*eb293b8fSAndroid Build Coastguard Worker
226*eb293b8fSAndroid Build Coastguard Worker    apex_available: [
227*eb293b8fSAndroid Build Coastguard Worker        "//apex_available:platform",
228*eb293b8fSAndroid Build Coastguard Worker        "com.android.art",
229*eb293b8fSAndroid Build Coastguard Worker        "com.android.art.debug",
230*eb293b8fSAndroid Build Coastguard Worker        "com.android.runtime",
231*eb293b8fSAndroid Build Coastguard Worker    ],
232*eb293b8fSAndroid Build Coastguard Worker    min_sdk_version: "29",
233*eb293b8fSAndroid Build Coastguard Worker}
234*eb293b8fSAndroid Build Coastguard Worker
235*eb293b8fSAndroid Build Coastguard Worker// Make sure that the code can be compiled without Android Logging.
236*eb293b8fSAndroid Build Coastguard Workercc_library_static {
237*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_stdout_log",
238*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_defaults"],
239*eb293b8fSAndroid Build Coastguard Worker    srcs: [
240*eb293b8fSAndroid Build Coastguard Worker        "LogStdout.cpp",
241*eb293b8fSAndroid Build Coastguard Worker    ],
242*eb293b8fSAndroid Build Coastguard Worker    target: {
243*eb293b8fSAndroid Build Coastguard Worker        android: {
244*eb293b8fSAndroid Build Coastguard Worker            srcs: [
245*eb293b8fSAndroid Build Coastguard Worker                "AndroidLogStdout.cpp",
246*eb293b8fSAndroid Build Coastguard Worker                "DexFile.cpp",
247*eb293b8fSAndroid Build Coastguard Worker            ],
248*eb293b8fSAndroid Build Coastguard Worker            cflags: ["-DDEXFILE_SUPPORT"],
249*eb293b8fSAndroid Build Coastguard Worker            whole_static_libs: ["libdexfile_support"],
250*eb293b8fSAndroid Build Coastguard Worker        },
251*eb293b8fSAndroid Build Coastguard Worker    },
252*eb293b8fSAndroid Build Coastguard Worker    whole_static_libs: [
253*eb293b8fSAndroid Build Coastguard Worker        "liblzma",
254*eb293b8fSAndroid Build Coastguard Worker        "libz",
255*eb293b8fSAndroid Build Coastguard Worker    ],
256*eb293b8fSAndroid Build Coastguard Worker}
257*eb293b8fSAndroid Build Coastguard Worker
258*eb293b8fSAndroid Build Coastguard Worker// Static library without DEX support to avoid dependencies on the ART APEX.
259*eb293b8fSAndroid Build Coastguard Workercc_library_static {
260*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_no_dex",
261*eb293b8fSAndroid Build Coastguard Worker    ramdisk_available: true,
262*eb293b8fSAndroid Build Coastguard Worker    recovery_available: true,
263*eb293b8fSAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
264*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_defaults"],
265*eb293b8fSAndroid Build Coastguard Worker    srcs: ["LogAndroid.cpp"],
266*eb293b8fSAndroid Build Coastguard Worker
267*eb293b8fSAndroid Build Coastguard Worker    visibility: [
268*eb293b8fSAndroid Build Coastguard Worker        "//external/gwp_asan",
269*eb293b8fSAndroid Build Coastguard Worker        "//system/core/debuggerd",
270*eb293b8fSAndroid Build Coastguard Worker        "//system/core/init",
271*eb293b8fSAndroid Build Coastguard Worker        "//system/core/libutils",
272*eb293b8fSAndroid Build Coastguard Worker        "//system/unwinding/libbacktrace",
273*eb293b8fSAndroid Build Coastguard Worker    ],
274*eb293b8fSAndroid Build Coastguard Worker    apex_available: [
275*eb293b8fSAndroid Build Coastguard Worker        "//apex_available:platform",
276*eb293b8fSAndroid Build Coastguard Worker        "com.android.runtime",
277*eb293b8fSAndroid Build Coastguard Worker    ],
278*eb293b8fSAndroid Build Coastguard Worker}
279*eb293b8fSAndroid Build Coastguard Worker
280*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
281*eb293b8fSAndroid Build Coastguard Worker// Utils
282*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
283*eb293b8fSAndroid Build Coastguard Workercc_library {
284*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_utils",
285*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
286*eb293b8fSAndroid Build Coastguard Worker    export_include_dirs: ["utils"],
287*eb293b8fSAndroid Build Coastguard Worker    shared_libs: [
288*eb293b8fSAndroid Build Coastguard Worker        "libbase",
289*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack",
290*eb293b8fSAndroid Build Coastguard Worker    ],
291*eb293b8fSAndroid Build Coastguard Worker    whole_static_libs: [
292*eb293b8fSAndroid Build Coastguard Worker        "libprocinfo",
293*eb293b8fSAndroid Build Coastguard Worker        "libz",
294*eb293b8fSAndroid Build Coastguard Worker    ],
295*eb293b8fSAndroid Build Coastguard Worker    srcs: [
296*eb293b8fSAndroid Build Coastguard Worker        "utils/MemoryFake.cpp",
297*eb293b8fSAndroid Build Coastguard Worker        "utils/OfflineUnwindUtils.cpp",
298*eb293b8fSAndroid Build Coastguard Worker        "utils/PidUtils.cpp",
299*eb293b8fSAndroid Build Coastguard Worker        "utils/ProcessTracer.cpp",
300*eb293b8fSAndroid Build Coastguard Worker    ],
301*eb293b8fSAndroid Build Coastguard Worker}
302*eb293b8fSAndroid Build Coastguard Worker
303*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
304*eb293b8fSAndroid Build Coastguard Worker// Unit Tests
305*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
306*eb293b8fSAndroid Build Coastguard Workercc_library_shared {
307*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_local",
308*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
309*eb293b8fSAndroid Build Coastguard Worker    srcs: ["tests/TestLocal.cpp"],
310*eb293b8fSAndroid Build Coastguard Worker
311*eb293b8fSAndroid Build Coastguard Worker    cflags: [
312*eb293b8fSAndroid Build Coastguard Worker        "-O0",
313*eb293b8fSAndroid Build Coastguard Worker        "-g",
314*eb293b8fSAndroid Build Coastguard Worker    ],
315*eb293b8fSAndroid Build Coastguard Worker
316*eb293b8fSAndroid Build Coastguard Worker    shared_libs: [
317*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack",
318*eb293b8fSAndroid Build Coastguard Worker    ],
319*eb293b8fSAndroid Build Coastguard Worker}
320*eb293b8fSAndroid Build Coastguard Worker
321*eb293b8fSAndroid Build Coastguard Workercc_defaults {
322*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_testlib_flags",
323*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
324*eb293b8fSAndroid Build Coastguard Worker
325*eb293b8fSAndroid Build Coastguard Worker    srcs: [
326*eb293b8fSAndroid Build Coastguard Worker        "tests/AndroidUnwinderTest.cpp",
327*eb293b8fSAndroid Build Coastguard Worker        "tests/ArmExidxDecodeTest.cpp",
328*eb293b8fSAndroid Build Coastguard Worker        "tests/ArmExidxExtractTest.cpp",
329*eb293b8fSAndroid Build Coastguard Worker        "tests/DemangleTest.cpp",
330*eb293b8fSAndroid Build Coastguard Worker        "tests/DexFileTest.cpp",
331*eb293b8fSAndroid Build Coastguard Worker        "tests/DexFilesTest.cpp",
332*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfCfaLogTest.cpp",
333*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfCfaTest.cpp",
334*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfDebugFrameTest.cpp",
335*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfEhFrameTest.cpp",
336*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfEhFrameWithHdrTest.cpp",
337*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfMemoryTest.cpp",
338*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfOpLogTest.cpp",
339*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfOpTest.cpp",
340*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfSectionTest.cpp",
341*eb293b8fSAndroid Build Coastguard Worker        "tests/DwarfSectionImplTest.cpp",
342*eb293b8fSAndroid Build Coastguard Worker        "tests/ElfCacheTest.cpp",
343*eb293b8fSAndroid Build Coastguard Worker        "tests/ElfFake.cpp",
344*eb293b8fSAndroid Build Coastguard Worker        "tests/ElfInterfaceArmTest.cpp",
345*eb293b8fSAndroid Build Coastguard Worker        "tests/ElfInterfaceTest.cpp",
346*eb293b8fSAndroid Build Coastguard Worker        "tests/ElfTest.cpp",
347*eb293b8fSAndroid Build Coastguard Worker        "tests/ElfTestUtils.cpp",
348*eb293b8fSAndroid Build Coastguard Worker        "tests/GlobalDebugImplTest.cpp",
349*eb293b8fSAndroid Build Coastguard Worker        "tests/GlobalTest.cpp",
350*eb293b8fSAndroid Build Coastguard Worker        "tests/IsolatedSettings.cpp",
351*eb293b8fSAndroid Build Coastguard Worker        "tests/JitDebugTest.cpp",
352*eb293b8fSAndroid Build Coastguard Worker        "tests/LocalUpdatableMapsTest.cpp",
353*eb293b8fSAndroid Build Coastguard Worker        "tests/LogFake.cpp",
354*eb293b8fSAndroid Build Coastguard Worker        "tests/MapInfoCreateMemoryTest.cpp",
355*eb293b8fSAndroid Build Coastguard Worker        "tests/MapInfoGetBuildIDTest.cpp",
356*eb293b8fSAndroid Build Coastguard Worker        "tests/MapInfoGetElfTest.cpp",
357*eb293b8fSAndroid Build Coastguard Worker        "tests/MapInfoGetLoadBiasTest.cpp",
358*eb293b8fSAndroid Build Coastguard Worker        "tests/MapInfoTest.cpp",
359*eb293b8fSAndroid Build Coastguard Worker        "tests/MapsTest.cpp",
360*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryBufferTest.cpp",
361*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryCacheTest.cpp",
362*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryFileTest.cpp",
363*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryLocalTest.cpp",
364*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryLocalUnsafeTest.cpp",
365*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryOfflineBufferTest.cpp",
366*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryOfflineTest.cpp",
367*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryRangeTest.cpp",
368*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryRangesTest.cpp",
369*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryRemoteTest.cpp",
370*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryTest.cpp",
371*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryThreadCacheTest.cpp",
372*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryMteTest.cpp",
373*eb293b8fSAndroid Build Coastguard Worker        "tests/MemoryXzTest.cpp",
374*eb293b8fSAndroid Build Coastguard Worker        "tests/RegsInfoTest.cpp",
375*eb293b8fSAndroid Build Coastguard Worker        "tests/RegsIterateTest.cpp",
376*eb293b8fSAndroid Build Coastguard Worker        "tests/RegsRemoteTest.cpp",
377*eb293b8fSAndroid Build Coastguard Worker        "tests/RegsStepIfSignalHandlerTest.cpp",
378*eb293b8fSAndroid Build Coastguard Worker        "tests/RegsTest.cpp",
379*eb293b8fSAndroid Build Coastguard Worker        "tests/SymbolsTest.cpp",
380*eb293b8fSAndroid Build Coastguard Worker        "tests/TestUtils.cpp",
381*eb293b8fSAndroid Build Coastguard Worker        "tests/UnwindOfflineTest.cpp",
382*eb293b8fSAndroid Build Coastguard Worker        "tests/UnwindTest.cpp",
383*eb293b8fSAndroid Build Coastguard Worker        "tests/UnwinderTest.cpp",
384*eb293b8fSAndroid Build Coastguard Worker        "tests/VerifyBionicTerminationTest.cpp",
385*eb293b8fSAndroid Build Coastguard Worker        "utils/tests/ProcessTracerTest.cpp",
386*eb293b8fSAndroid Build Coastguard Worker    ],
387*eb293b8fSAndroid Build Coastguard Worker
388*eb293b8fSAndroid Build Coastguard Worker    cflags: [
389*eb293b8fSAndroid Build Coastguard Worker        "-O0",
390*eb293b8fSAndroid Build Coastguard Worker        "-g",
391*eb293b8fSAndroid Build Coastguard Worker    ],
392*eb293b8fSAndroid Build Coastguard Worker
393*eb293b8fSAndroid Build Coastguard Worker    shared_libs: [
394*eb293b8fSAndroid Build Coastguard Worker        "libbase",
395*eb293b8fSAndroid Build Coastguard Worker        "liblog",
396*eb293b8fSAndroid Build Coastguard Worker        "liblzma",
397*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack",
398*eb293b8fSAndroid Build Coastguard Worker    ],
399*eb293b8fSAndroid Build Coastguard Worker
400*eb293b8fSAndroid Build Coastguard Worker    static_libs: [
401*eb293b8fSAndroid Build Coastguard Worker        "libdexfile_support",
402*eb293b8fSAndroid Build Coastguard Worker        "libgmock",
403*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack_utils",
404*eb293b8fSAndroid Build Coastguard Worker    ],
405*eb293b8fSAndroid Build Coastguard Worker
406*eb293b8fSAndroid Build Coastguard Worker    test_suites: ["device-tests"],
407*eb293b8fSAndroid Build Coastguard Worker    data: [
408*eb293b8fSAndroid Build Coastguard Worker        "tests/files/boot_arm.oat.gnu_debugdata",
409*eb293b8fSAndroid Build Coastguard Worker        "tests/files/boot_arm.oat.gnu_debugdata.xz",
410*eb293b8fSAndroid Build Coastguard Worker        "tests/files/boot_arm.oat.gnu_debugdata.xz.non-power",
411*eb293b8fSAndroid Build Coastguard Worker        "tests/files/boot_arm.oat.gnu_debugdata.xz.odd-sizes",
412*eb293b8fSAndroid Build Coastguard Worker        "tests/files/boot_arm.oat.gnu_debugdata.xz.one-block",
413*eb293b8fSAndroid Build Coastguard Worker        "tests/files/elf32.xz",
414*eb293b8fSAndroid Build Coastguard Worker        "tests/files/elf64.xz",
415*eb293b8fSAndroid Build Coastguard Worker        "tests/files/libs/*",
416*eb293b8fSAndroid Build Coastguard Worker        "offline_files/common/*",
417*eb293b8fSAndroid Build Coastguard Worker        "offline_files/apk_rorx_arm64/*",
418*eb293b8fSAndroid Build Coastguard Worker        "offline_files/apk_rorx_unreadable_arm64/*",
419*eb293b8fSAndroid Build Coastguard Worker        "offline_files/apk_rx_arm64/*",
420*eb293b8fSAndroid Build Coastguard Worker        "offline_files/apk_rx_unreadable_arm64/*",
421*eb293b8fSAndroid Build Coastguard Worker        "offline_files/apk_soname_at_end_arm64/*",
422*eb293b8fSAndroid Build Coastguard Worker        "offline_files/art_quick_osr_stub_arm/*",
423*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bad_eh_frame_hdr_arm64/*",
424*eb293b8fSAndroid Build Coastguard Worker        "offline_files/debug_frame_first_x86/*",
425*eb293b8fSAndroid Build Coastguard Worker        "offline_files/debug_frame_load_bias_arm/*",
426*eb293b8fSAndroid Build Coastguard Worker        "offline_files/eh_frame_bias_x86/*",
427*eb293b8fSAndroid Build Coastguard Worker        "offline_files/eh_frame_hdr_begin_x86_64/*",
428*eb293b8fSAndroid Build Coastguard Worker        "offline_files/empty_arm64/*",
429*eb293b8fSAndroid Build Coastguard Worker        "offline_files/invalid_elf_offset_arm/*",
430*eb293b8fSAndroid Build Coastguard Worker        "offline_files/jit_debug_arm/*",
431*eb293b8fSAndroid Build Coastguard Worker        "offline_files/jit_map_arm/*",
432*eb293b8fSAndroid Build Coastguard Worker        "offline_files/gnu_debugdata_arm/*",
433*eb293b8fSAndroid Build Coastguard Worker        "offline_files/load_bias_different_section_bias_arm64/*",
434*eb293b8fSAndroid Build Coastguard Worker        "offline_files/load_bias_ro_rx_x86_64/*",
435*eb293b8fSAndroid Build Coastguard Worker        "offline_files/offset_arm/*",
436*eb293b8fSAndroid Build Coastguard Worker        "offline_files/pauth_pc_arm64/*",
437*eb293b8fSAndroid Build Coastguard Worker        "offline_files/shared_lib_in_apk_arm64/*",
438*eb293b8fSAndroid Build Coastguard Worker        "offline_files/shared_lib_in_apk_memory_only_arm64/*",
439*eb293b8fSAndroid Build Coastguard Worker        "offline_files/shared_lib_in_apk_single_map_arm64/*",
440*eb293b8fSAndroid Build Coastguard Worker        "offline_files/signal_load_bias_arm/*",
441*eb293b8fSAndroid Build Coastguard Worker        "offline_files/signal_fde_x86/*",
442*eb293b8fSAndroid Build Coastguard Worker        "offline_files/signal_fde_x86_64/*",
443*eb293b8fSAndroid Build Coastguard Worker        "offline_files/straddle_arm/*",
444*eb293b8fSAndroid Build Coastguard Worker        "offline_files/jit_debug_x86/*",
445*eb293b8fSAndroid Build Coastguard Worker        "offline_files/straddle_arm64/*",
446*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_1/*",
447*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_2/*",
448*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_3/*",
449*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_4/*",
450*eb293b8fSAndroid Build Coastguard Worker        "offline_files/photos_reset_arm64/*",
451*eb293b8fSAndroid Build Coastguard Worker        "offline_files/youtube_compiled_arm64/*",
452*eb293b8fSAndroid Build Coastguard Worker        "offline_files/yt_music_arm64/*",
453*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28613_main-thread/*",
454*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28644/*",
455*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28648/*",
456*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28656_oat_odex_jar/*",
457*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28667/*",
458*eb293b8fSAndroid Build Coastguard Worker        "offline_files/vlenb_riscv64/*",
459*eb293b8fSAndroid Build Coastguard Worker        "offline_files/zlib_compress_arm/*",
460*eb293b8fSAndroid Build Coastguard Worker        "offline_files/zstd_compress_arm/*",
461*eb293b8fSAndroid Build Coastguard Worker    ],
462*eb293b8fSAndroid Build Coastguard Worker
463*eb293b8fSAndroid Build Coastguard Worker    target: {
464*eb293b8fSAndroid Build Coastguard Worker        android: {
465*eb293b8fSAndroid Build Coastguard Worker            header_libs: ["bionic_libc_platform_headers"],
466*eb293b8fSAndroid Build Coastguard Worker        },
467*eb293b8fSAndroid Build Coastguard Worker        linux_bionic: {
468*eb293b8fSAndroid Build Coastguard Worker            header_libs: ["bionic_libc_platform_headers"],
469*eb293b8fSAndroid Build Coastguard Worker        },
470*eb293b8fSAndroid Build Coastguard Worker    },
471*eb293b8fSAndroid Build Coastguard Worker}
472*eb293b8fSAndroid Build Coastguard Worker
473*eb293b8fSAndroid Build Coastguard Workercc_test {
474*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_unit_test",
475*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_testlib_flags"],
476*eb293b8fSAndroid Build Coastguard Worker    isolated: true,
477*eb293b8fSAndroid Build Coastguard Worker    data: [
478*eb293b8fSAndroid Build Coastguard Worker        ":libunwindstack_local",
479*eb293b8fSAndroid Build Coastguard Worker    ],
480*eb293b8fSAndroid Build Coastguard Worker}
481*eb293b8fSAndroid Build Coastguard Worker
482*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
483*eb293b8fSAndroid Build Coastguard Worker// Fuzzers
484*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
485*eb293b8fSAndroid Build Coastguard Workercc_defaults {
486*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_fuzz_defaults",
487*eb293b8fSAndroid Build Coastguard Worker    host_supported: true,
488*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
489*eb293b8fSAndroid Build Coastguard Worker    cflags: [
490*eb293b8fSAndroid Build Coastguard Worker        "-Wexit-time-destructors",
491*eb293b8fSAndroid Build Coastguard Worker        "-fno-c++-static-destructors",
492*eb293b8fSAndroid Build Coastguard Worker        "-g",
493*eb293b8fSAndroid Build Coastguard Worker    ],
494*eb293b8fSAndroid Build Coastguard Worker    shared_libs: [
495*eb293b8fSAndroid Build Coastguard Worker        "libbase",
496*eb293b8fSAndroid Build Coastguard Worker        "liblog",
497*eb293b8fSAndroid Build Coastguard Worker        "liblzma",
498*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack",
499*eb293b8fSAndroid Build Coastguard Worker    ],
500*eb293b8fSAndroid Build Coastguard Worker    static_libs: [
501*eb293b8fSAndroid Build Coastguard Worker        "libdexfile_support",
502*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack_utils",
503*eb293b8fSAndroid Build Coastguard Worker    ],
504*eb293b8fSAndroid Build Coastguard Worker}
505*eb293b8fSAndroid Build Coastguard Worker
506*eb293b8fSAndroid Build Coastguard Workercc_fuzz {
507*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_fuzz_unwinder",
508*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_fuzz_defaults"],
509*eb293b8fSAndroid Build Coastguard Worker    srcs: [
510*eb293b8fSAndroid Build Coastguard Worker        "tests/ElfFake.cpp",
511*eb293b8fSAndroid Build Coastguard Worker        "tests/fuzz/UnwinderComponentCreator.cpp",
512*eb293b8fSAndroid Build Coastguard Worker        "tests/fuzz/UnwinderFuzz.cpp",
513*eb293b8fSAndroid Build Coastguard Worker    ],
514*eb293b8fSAndroid Build Coastguard Worker}
515*eb293b8fSAndroid Build Coastguard Worker
516*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
517*eb293b8fSAndroid Build Coastguard Worker// Tools
518*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
519*eb293b8fSAndroid Build Coastguard Workercc_defaults {
520*eb293b8fSAndroid Build Coastguard Worker    name: "libunwindstack_tools",
521*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
522*eb293b8fSAndroid Build Coastguard Worker
523*eb293b8fSAndroid Build Coastguard Worker    shared_libs: [
524*eb293b8fSAndroid Build Coastguard Worker        "libbase",
525*eb293b8fSAndroid Build Coastguard Worker        "liblzma",
526*eb293b8fSAndroid Build Coastguard Worker    ],
527*eb293b8fSAndroid Build Coastguard Worker    static_libs: [
528*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack_stdout_log",
529*eb293b8fSAndroid Build Coastguard Worker    ],
530*eb293b8fSAndroid Build Coastguard Worker    target: {
531*eb293b8fSAndroid Build Coastguard Worker        // Always disable optimizations for host to make it easier to debug.
532*eb293b8fSAndroid Build Coastguard Worker        host: {
533*eb293b8fSAndroid Build Coastguard Worker            cflags: [
534*eb293b8fSAndroid Build Coastguard Worker                "-O0",
535*eb293b8fSAndroid Build Coastguard Worker                "-g",
536*eb293b8fSAndroid Build Coastguard Worker            ],
537*eb293b8fSAndroid Build Coastguard Worker        },
538*eb293b8fSAndroid Build Coastguard Worker    },
539*eb293b8fSAndroid Build Coastguard Worker}
540*eb293b8fSAndroid Build Coastguard Worker
541*eb293b8fSAndroid Build Coastguard Workercc_binary {
542*eb293b8fSAndroid Build Coastguard Worker    name: "unwind",
543*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_tools"],
544*eb293b8fSAndroid Build Coastguard Worker
545*eb293b8fSAndroid Build Coastguard Worker    srcs: [
546*eb293b8fSAndroid Build Coastguard Worker        "tools/unwind.cpp",
547*eb293b8fSAndroid Build Coastguard Worker    ],
548*eb293b8fSAndroid Build Coastguard Worker}
549*eb293b8fSAndroid Build Coastguard Worker
550*eb293b8fSAndroid Build Coastguard Workercc_binary {
551*eb293b8fSAndroid Build Coastguard Worker    name: "unwind_info",
552*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_tools"],
553*eb293b8fSAndroid Build Coastguard Worker
554*eb293b8fSAndroid Build Coastguard Worker    srcs: [
555*eb293b8fSAndroid Build Coastguard Worker        "tools/unwind_info.cpp",
556*eb293b8fSAndroid Build Coastguard Worker    ],
557*eb293b8fSAndroid Build Coastguard Worker}
558*eb293b8fSAndroid Build Coastguard Worker
559*eb293b8fSAndroid Build Coastguard Workercc_binary {
560*eb293b8fSAndroid Build Coastguard Worker    name: "unwind_symbols",
561*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_tools"],
562*eb293b8fSAndroid Build Coastguard Worker
563*eb293b8fSAndroid Build Coastguard Worker    srcs: [
564*eb293b8fSAndroid Build Coastguard Worker        "tools/unwind_symbols.cpp",
565*eb293b8fSAndroid Build Coastguard Worker    ],
566*eb293b8fSAndroid Build Coastguard Worker}
567*eb293b8fSAndroid Build Coastguard Worker
568*eb293b8fSAndroid Build Coastguard Workercc_binary {
569*eb293b8fSAndroid Build Coastguard Worker    name: "unwind_for_offline",
570*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_tools"],
571*eb293b8fSAndroid Build Coastguard Worker    static_libs: [
572*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack_utils",
573*eb293b8fSAndroid Build Coastguard Worker    ],
574*eb293b8fSAndroid Build Coastguard Worker
575*eb293b8fSAndroid Build Coastguard Worker    srcs: [
576*eb293b8fSAndroid Build Coastguard Worker        "tools/unwind_for_offline.cpp",
577*eb293b8fSAndroid Build Coastguard Worker    ],
578*eb293b8fSAndroid Build Coastguard Worker}
579*eb293b8fSAndroid Build Coastguard Worker
580*eb293b8fSAndroid Build Coastguard Workercc_binary {
581*eb293b8fSAndroid Build Coastguard Worker    name: "unwind_reg_info",
582*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_tools"],
583*eb293b8fSAndroid Build Coastguard Worker
584*eb293b8fSAndroid Build Coastguard Worker    srcs: [
585*eb293b8fSAndroid Build Coastguard Worker        "tools/unwind_reg_info.cpp",
586*eb293b8fSAndroid Build Coastguard Worker    ],
587*eb293b8fSAndroid Build Coastguard Worker}
588*eb293b8fSAndroid Build Coastguard Worker
589*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
590*eb293b8fSAndroid Build Coastguard Worker// Benchmarks
591*eb293b8fSAndroid Build Coastguard Worker//-------------------------------------------------------------------------
592*eb293b8fSAndroid Build Coastguard Workercc_benchmark {
593*eb293b8fSAndroid Build Coastguard Worker    name: "unwind_benchmarks",
594*eb293b8fSAndroid Build Coastguard Worker    host_supported: true,
595*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
596*eb293b8fSAndroid Build Coastguard Worker
597*eb293b8fSAndroid Build Coastguard Worker    // Disable optimizations so that all of the calls are not optimized away.
598*eb293b8fSAndroid Build Coastguard Worker    cflags: [
599*eb293b8fSAndroid Build Coastguard Worker        "-O0",
600*eb293b8fSAndroid Build Coastguard Worker    ],
601*eb293b8fSAndroid Build Coastguard Worker
602*eb293b8fSAndroid Build Coastguard Worker    srcs: [
603*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/ElfBenchmark.cpp",
604*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/MapsBenchmark.cpp",
605*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/SymbolBenchmark.cpp",
606*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/Utils.cpp",
607*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/local_unwind_benchmarks.cpp",
608*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/main.cpp",
609*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/remote_unwind_benchmarks.cpp",
610*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/thread_unwind_benchmarks.cpp",
611*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/OfflineUnwindBenchmarks.cpp",
612*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/EvalBenchmark.cpp",
613*eb293b8fSAndroid Build Coastguard Worker    ],
614*eb293b8fSAndroid Build Coastguard Worker
615*eb293b8fSAndroid Build Coastguard Worker    data: [
616*eb293b8fSAndroid Build Coastguard Worker        "benchmarks/files/*",
617*eb293b8fSAndroid Build Coastguard Worker        "offline_files/common/*",
618*eb293b8fSAndroid Build Coastguard Worker        "offline_files/jit_debug_arm/*",
619*eb293b8fSAndroid Build Coastguard Worker        "offline_files/straddle_arm64/*",
620*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_1/*",
621*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_2/*",
622*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_3/*",
623*eb293b8fSAndroid Build Coastguard Worker        "offline_files/bluetooth_arm64/pc_4/*",
624*eb293b8fSAndroid Build Coastguard Worker        "offline_files/photos_reset_arm64/*",
625*eb293b8fSAndroid Build Coastguard Worker        "offline_files/youtube_compiled_arm64/*",
626*eb293b8fSAndroid Build Coastguard Worker        "offline_files/yt_music_arm64/*",
627*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28613_main-thread/*",
628*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28644/*",
629*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28648/*",
630*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28656_oat_odex_jar/*",
631*eb293b8fSAndroid Build Coastguard Worker        "offline_files/maps_compiled_arm64/28667/*",
632*eb293b8fSAndroid Build Coastguard Worker    ],
633*eb293b8fSAndroid Build Coastguard Worker
634*eb293b8fSAndroid Build Coastguard Worker    shared_libs: [
635*eb293b8fSAndroid Build Coastguard Worker        "libbase",
636*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack",
637*eb293b8fSAndroid Build Coastguard Worker    ],
638*eb293b8fSAndroid Build Coastguard Worker
639*eb293b8fSAndroid Build Coastguard Worker    static_libs: [
640*eb293b8fSAndroid Build Coastguard Worker        "libprocinfo",
641*eb293b8fSAndroid Build Coastguard Worker        "libunwindstack_utils",
642*eb293b8fSAndroid Build Coastguard Worker    ],
643*eb293b8fSAndroid Build Coastguard Worker
644*eb293b8fSAndroid Build Coastguard Worker    target: {
645*eb293b8fSAndroid Build Coastguard Worker        android: {
646*eb293b8fSAndroid Build Coastguard Worker            static_libs: [
647*eb293b8fSAndroid Build Coastguard Worker                "libmeminfo",
648*eb293b8fSAndroid Build Coastguard Worker            ],
649*eb293b8fSAndroid Build Coastguard Worker        },
650*eb293b8fSAndroid Build Coastguard Worker    },
651*eb293b8fSAndroid Build Coastguard Worker}
652*eb293b8fSAndroid Build Coastguard Worker
653*eb293b8fSAndroid Build Coastguard Worker// Generates the elf data for use in the tests for .gnu_debugdata frames.
654*eb293b8fSAndroid Build Coastguard Worker// Once these files are generated, use the xz command to compress the data.
655*eb293b8fSAndroid Build Coastguard Workercc_binary_host {
656*eb293b8fSAndroid Build Coastguard Worker    name: "gen_gnudebugdata",
657*eb293b8fSAndroid Build Coastguard Worker    defaults: ["libunwindstack_flags"],
658*eb293b8fSAndroid Build Coastguard Worker
659*eb293b8fSAndroid Build Coastguard Worker    srcs: [
660*eb293b8fSAndroid Build Coastguard Worker        "tests/GenGnuDebugdata.cpp",
661*eb293b8fSAndroid Build Coastguard Worker    ],
662*eb293b8fSAndroid Build Coastguard Worker}
663