xref: /aosp_15_r20/bionic/libc/malloc_debug/Android.bp (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
2*8d67ca89SAndroid Build Coastguard Worker// libc_malloc_debug_backtrace.a
3*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
4*8d67ca89SAndroid Build Coastguard Worker// Used by libmemunreachable
5*8d67ca89SAndroid Build Coastguard Workerpackage {
6*8d67ca89SAndroid Build Coastguard Worker    default_team: "trendy_team_native_tools_libraries",
7*8d67ca89SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
8*8d67ca89SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
9*8d67ca89SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "bionic_libc_license"
10*8d67ca89SAndroid Build Coastguard Worker    // to get the below license kinds:
11*8d67ca89SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
12*8d67ca89SAndroid Build Coastguard Worker    //   SPDX-license-identifier-BSD
13*8d67ca89SAndroid Build Coastguard Worker    default_applicable_licenses: ["bionic_libc_license"],
14*8d67ca89SAndroid Build Coastguard Worker}
15*8d67ca89SAndroid Build Coastguard Worker
16*8d67ca89SAndroid Build Coastguard Workercc_library_static {
17*8d67ca89SAndroid Build Coastguard Worker    name: "libc_malloc_debug_backtrace",
18*8d67ca89SAndroid Build Coastguard Worker    vendor_available: true,
19*8d67ca89SAndroid Build Coastguard Worker
20*8d67ca89SAndroid Build Coastguard Worker    srcs: [
21*8d67ca89SAndroid Build Coastguard Worker        "backtrace.cpp",
22*8d67ca89SAndroid Build Coastguard Worker        "MapData.cpp",
23*8d67ca89SAndroid Build Coastguard Worker    ],
24*8d67ca89SAndroid Build Coastguard Worker
25*8d67ca89SAndroid Build Coastguard Worker    stl: "libc++_static",
26*8d67ca89SAndroid Build Coastguard Worker
27*8d67ca89SAndroid Build Coastguard Worker    whole_static_libs: [
28*8d67ca89SAndroid Build Coastguard Worker        "libbase",
29*8d67ca89SAndroid Build Coastguard Worker        "libasync_safe",
30*8d67ca89SAndroid Build Coastguard Worker    ],
31*8d67ca89SAndroid Build Coastguard Worker
32*8d67ca89SAndroid Build Coastguard Worker    include_dirs: ["bionic/libc"],
33*8d67ca89SAndroid Build Coastguard Worker
34*8d67ca89SAndroid Build Coastguard Worker    export_include_dirs: ["."],
35*8d67ca89SAndroid Build Coastguard Worker
36*8d67ca89SAndroid Build Coastguard Worker    sanitize: {
37*8d67ca89SAndroid Build Coastguard Worker        never: true,
38*8d67ca89SAndroid Build Coastguard Worker    },
39*8d67ca89SAndroid Build Coastguard Worker    native_coverage: false,
40*8d67ca89SAndroid Build Coastguard Worker
41*8d67ca89SAndroid Build Coastguard Worker    // -Wno-error=format-zero-length needed for gcc to compile.
42*8d67ca89SAndroid Build Coastguard Worker    cflags: [
43*8d67ca89SAndroid Build Coastguard Worker        "-Wall",
44*8d67ca89SAndroid Build Coastguard Worker        "-Werror",
45*8d67ca89SAndroid Build Coastguard Worker        "-Wno-error=format-zero-length",
46*8d67ca89SAndroid Build Coastguard Worker    ],
47*8d67ca89SAndroid Build Coastguard Worker
48*8d67ca89SAndroid Build Coastguard Worker    apex_available: [
49*8d67ca89SAndroid Build Coastguard Worker        "//apex_available:platform",
50*8d67ca89SAndroid Build Coastguard Worker        "com.android.runtime",
51*8d67ca89SAndroid Build Coastguard Worker    ],
52*8d67ca89SAndroid Build Coastguard Worker}
53*8d67ca89SAndroid Build Coastguard Worker
54*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
55*8d67ca89SAndroid Build Coastguard Worker// libc_malloc_debug.so
56*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
57*8d67ca89SAndroid Build Coastguard Workercc_library {
58*8d67ca89SAndroid Build Coastguard Worker    name: "libc_malloc_debug",
59*8d67ca89SAndroid Build Coastguard Worker
60*8d67ca89SAndroid Build Coastguard Worker    srcs: [
61*8d67ca89SAndroid Build Coastguard Worker        "Config.cpp",
62*8d67ca89SAndroid Build Coastguard Worker        "DebugData.cpp",
63*8d67ca89SAndroid Build Coastguard Worker        "debug_disable.cpp",
64*8d67ca89SAndroid Build Coastguard Worker        "GuardData.cpp",
65*8d67ca89SAndroid Build Coastguard Worker        "LogAllocatorStats.cpp",
66*8d67ca89SAndroid Build Coastguard Worker        "malloc_debug.cpp",
67*8d67ca89SAndroid Build Coastguard Worker        "PointerData.cpp",
68*8d67ca89SAndroid Build Coastguard Worker        "RecordData.cpp",
69*8d67ca89SAndroid Build Coastguard Worker        "Unreachable.cpp",
70*8d67ca89SAndroid Build Coastguard Worker        "UnwindBacktrace.cpp",
71*8d67ca89SAndroid Build Coastguard Worker    ],
72*8d67ca89SAndroid Build Coastguard Worker
73*8d67ca89SAndroid Build Coastguard Worker    stl: "libc++_static",
74*8d67ca89SAndroid Build Coastguard Worker
75*8d67ca89SAndroid Build Coastguard Worker    static_libs: [
76*8d67ca89SAndroid Build Coastguard Worker        "libasync_safe",
77*8d67ca89SAndroid Build Coastguard Worker        "libbase",
78*8d67ca89SAndroid Build Coastguard Worker        "libc_malloc_debug_backtrace",
79*8d67ca89SAndroid Build Coastguard Worker        "libmemunreachable",
80*8d67ca89SAndroid Build Coastguard Worker    ],
81*8d67ca89SAndroid Build Coastguard Worker
82*8d67ca89SAndroid Build Coastguard Worker    whole_static_libs: [
83*8d67ca89SAndroid Build Coastguard Worker        "libmemory_trace",
84*8d67ca89SAndroid Build Coastguard Worker    ],
85*8d67ca89SAndroid Build Coastguard Worker
86*8d67ca89SAndroid Build Coastguard Worker    shared_libs: [
87*8d67ca89SAndroid Build Coastguard Worker        "libunwindstack",
88*8d67ca89SAndroid Build Coastguard Worker    ],
89*8d67ca89SAndroid Build Coastguard Worker
90*8d67ca89SAndroid Build Coastguard Worker    multilib: {
91*8d67ca89SAndroid Build Coastguard Worker        lib32: {
92*8d67ca89SAndroid Build Coastguard Worker            version_script: "exported32.map",
93*8d67ca89SAndroid Build Coastguard Worker        },
94*8d67ca89SAndroid Build Coastguard Worker        lib64: {
95*8d67ca89SAndroid Build Coastguard Worker            version_script: "exported64.map",
96*8d67ca89SAndroid Build Coastguard Worker        },
97*8d67ca89SAndroid Build Coastguard Worker    },
98*8d67ca89SAndroid Build Coastguard Worker    allow_undefined_symbols: true,
99*8d67ca89SAndroid Build Coastguard Worker    include_dirs: ["bionic/libc"],
100*8d67ca89SAndroid Build Coastguard Worker
101*8d67ca89SAndroid Build Coastguard Worker    sanitize: {
102*8d67ca89SAndroid Build Coastguard Worker        never: true,
103*8d67ca89SAndroid Build Coastguard Worker    },
104*8d67ca89SAndroid Build Coastguard Worker    native_coverage: false,
105*8d67ca89SAndroid Build Coastguard Worker
106*8d67ca89SAndroid Build Coastguard Worker    // -Wno-error=format-zero-length needed for gcc to compile.
107*8d67ca89SAndroid Build Coastguard Worker    cflags: [
108*8d67ca89SAndroid Build Coastguard Worker        "-Wall",
109*8d67ca89SAndroid Build Coastguard Worker        "-Werror",
110*8d67ca89SAndroid Build Coastguard Worker        "-fno-stack-protector",
111*8d67ca89SAndroid Build Coastguard Worker        "-Wno-error=format-zero-length",
112*8d67ca89SAndroid Build Coastguard Worker        "-Wthread-safety",
113*8d67ca89SAndroid Build Coastguard Worker    ],
114*8d67ca89SAndroid Build Coastguard Worker
115*8d67ca89SAndroid Build Coastguard Worker    apex_available: [
116*8d67ca89SAndroid Build Coastguard Worker        "com.android.runtime",
117*8d67ca89SAndroid Build Coastguard Worker    ],
118*8d67ca89SAndroid Build Coastguard Worker    static: {
119*8d67ca89SAndroid Build Coastguard Worker        apex_available: [
120*8d67ca89SAndroid Build Coastguard Worker            "//apex_available:platform",
121*8d67ca89SAndroid Build Coastguard Worker        ],
122*8d67ca89SAndroid Build Coastguard Worker    },
123*8d67ca89SAndroid Build Coastguard Worker}
124*8d67ca89SAndroid Build Coastguard Worker
125*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
126*8d67ca89SAndroid Build Coastguard Worker// Unit Tests
127*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
128*8d67ca89SAndroid Build Coastguard Workercc_test {
129*8d67ca89SAndroid Build Coastguard Worker    name: "malloc_debug_unit_tests",
130*8d67ca89SAndroid Build Coastguard Worker    test_suites: ["device-tests"],
131*8d67ca89SAndroid Build Coastguard Worker    isolated: true,
132*8d67ca89SAndroid Build Coastguard Worker
133*8d67ca89SAndroid Build Coastguard Worker    srcs: [
134*8d67ca89SAndroid Build Coastguard Worker        "tests/backtrace_fake.cpp",
135*8d67ca89SAndroid Build Coastguard Worker        "tests/log_fake.cpp",
136*8d67ca89SAndroid Build Coastguard Worker        "tests/libc_fake.cpp",
137*8d67ca89SAndroid Build Coastguard Worker        "tests/malloc_debug_config_tests.cpp",
138*8d67ca89SAndroid Build Coastguard Worker        "tests/malloc_debug_unit_tests.cpp",
139*8d67ca89SAndroid Build Coastguard Worker    ],
140*8d67ca89SAndroid Build Coastguard Worker
141*8d67ca89SAndroid Build Coastguard Worker    local_include_dirs: ["tests"],
142*8d67ca89SAndroid Build Coastguard Worker    include_dirs: [
143*8d67ca89SAndroid Build Coastguard Worker        "bionic/libc",
144*8d67ca89SAndroid Build Coastguard Worker        "bionic/libc/async_safe/include",
145*8d67ca89SAndroid Build Coastguard Worker    ],
146*8d67ca89SAndroid Build Coastguard Worker
147*8d67ca89SAndroid Build Coastguard Worker    header_libs: [
148*8d67ca89SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
149*8d67ca89SAndroid Build Coastguard Worker    ],
150*8d67ca89SAndroid Build Coastguard Worker
151*8d67ca89SAndroid Build Coastguard Worker    static_libs: [
152*8d67ca89SAndroid Build Coastguard Worker        "libc_malloc_debug",
153*8d67ca89SAndroid Build Coastguard Worker        "libtinyxml2",
154*8d67ca89SAndroid Build Coastguard Worker    ],
155*8d67ca89SAndroid Build Coastguard Worker
156*8d67ca89SAndroid Build Coastguard Worker    shared_libs: [
157*8d67ca89SAndroid Build Coastguard Worker        "libbase",
158*8d67ca89SAndroid Build Coastguard Worker        "libunwindstack",
159*8d67ca89SAndroid Build Coastguard Worker    ],
160*8d67ca89SAndroid Build Coastguard Worker
161*8d67ca89SAndroid Build Coastguard Worker    cflags: [
162*8d67ca89SAndroid Build Coastguard Worker        "-Wall",
163*8d67ca89SAndroid Build Coastguard Worker        "-Werror",
164*8d67ca89SAndroid Build Coastguard Worker        "-Wno-error=format-zero-length",
165*8d67ca89SAndroid Build Coastguard Worker        "-O0",
166*8d67ca89SAndroid Build Coastguard Worker    ],
167*8d67ca89SAndroid Build Coastguard Worker}
168*8d67ca89SAndroid Build Coastguard Worker
169*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
170*8d67ca89SAndroid Build Coastguard Worker// System Tests
171*8d67ca89SAndroid Build Coastguard Worker// ==============================================================
172*8d67ca89SAndroid Build Coastguard Workercc_test {
173*8d67ca89SAndroid Build Coastguard Worker    name: "malloc_debug_system_tests",
174*8d67ca89SAndroid Build Coastguard Worker    isolated: true,
175*8d67ca89SAndroid Build Coastguard Worker
176*8d67ca89SAndroid Build Coastguard Worker    include_dirs: [
177*8d67ca89SAndroid Build Coastguard Worker        "bionic/libc",
178*8d67ca89SAndroid Build Coastguard Worker        "bionic", // For SKIP_WITH_HWASAN.
179*8d67ca89SAndroid Build Coastguard Worker    ],
180*8d67ca89SAndroid Build Coastguard Worker
181*8d67ca89SAndroid Build Coastguard Worker    header_libs: [
182*8d67ca89SAndroid Build Coastguard Worker        "bionic_libc_platform_headers",
183*8d67ca89SAndroid Build Coastguard Worker    ],
184*8d67ca89SAndroid Build Coastguard Worker
185*8d67ca89SAndroid Build Coastguard Worker    // The clang-analyzer-unix.Malloc and other warnings in these
186*8d67ca89SAndroid Build Coastguard Worker    // unit tests are either false positive or in
187*8d67ca89SAndroid Build Coastguard Worker    // negative tests that can be ignored.
188*8d67ca89SAndroid Build Coastguard Worker    tidy: false,
189*8d67ca89SAndroid Build Coastguard Worker
190*8d67ca89SAndroid Build Coastguard Worker    srcs: [
191*8d67ca89SAndroid Build Coastguard Worker        "tests/malloc_debug_system_tests.cpp",
192*8d67ca89SAndroid Build Coastguard Worker    ],
193*8d67ca89SAndroid Build Coastguard Worker
194*8d67ca89SAndroid Build Coastguard Worker    shared_libs: [
195*8d67ca89SAndroid Build Coastguard Worker        "libbase",
196*8d67ca89SAndroid Build Coastguard Worker        "liblog",
197*8d67ca89SAndroid Build Coastguard Worker        "libunwindstack",
198*8d67ca89SAndroid Build Coastguard Worker    ],
199*8d67ca89SAndroid Build Coastguard Worker
200*8d67ca89SAndroid Build Coastguard Worker    cflags: [
201*8d67ca89SAndroid Build Coastguard Worker        "-Wall",
202*8d67ca89SAndroid Build Coastguard Worker        "-Werror",
203*8d67ca89SAndroid Build Coastguard Worker        "-O0",
204*8d67ca89SAndroid Build Coastguard Worker    ],
205*8d67ca89SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
206*8d67ca89SAndroid Build Coastguard Worker    test_config: "tests/AndroidTest.xml",
207*8d67ca89SAndroid Build Coastguard Worker}
208