xref: /aosp_15_r20/external/scudo/Android.bp (revision 76559068c068bd27e82aff38fac3bfc865233bca)
1*76559068SAndroid Build Coastguard Worker//
2*76559068SAndroid Build Coastguard Worker// Copyright (C) 2019 The Android Open Source Project
3*76559068SAndroid Build Coastguard Worker//
4*76559068SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*76559068SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*76559068SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*76559068SAndroid Build Coastguard Worker//
8*76559068SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*76559068SAndroid Build Coastguard Worker//
10*76559068SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*76559068SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*76559068SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*76559068SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*76559068SAndroid Build Coastguard Worker// limitations under the License.
15*76559068SAndroid Build Coastguard Worker//
16*76559068SAndroid Build Coastguard Worker
17*76559068SAndroid Build Coastguard Workerpackage {
18*76559068SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_scudo_license"],
19*76559068SAndroid Build Coastguard Worker}
20*76559068SAndroid Build Coastguard Worker
21*76559068SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
22*76559068SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
23*76559068SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
24*76559068SAndroid Build Coastguard Worker//
25*76559068SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
26*76559068SAndroid Build Coastguard Worker//
27*76559068SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
28*76559068SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
29*76559068SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
30*76559068SAndroid Build Coastguard Worker//
31*76559068SAndroid Build Coastguard Worker// For unused files, consider creating a 'filegroup' with "//visibility:private"
32*76559068SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
33*76559068SAndroid Build Coastguard Worker// used in the current project.
34*76559068SAndroid Build Coastguard Worker// http://go/android-license-faq
35*76559068SAndroid Build Coastguard Workerlicense {
36*76559068SAndroid Build Coastguard Worker    name: "external_scudo_license",
37*76559068SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
38*76559068SAndroid Build Coastguard Worker    license_kinds: [
39*76559068SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
40*76559068SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
41*76559068SAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
42*76559068SAndroid Build Coastguard Worker        "SPDX-license-identifier-NCSA",
43*76559068SAndroid Build Coastguard Worker    ],
44*76559068SAndroid Build Coastguard Worker    license_text: [
45*76559068SAndroid Build Coastguard Worker        "LICENSE.TXT",
46*76559068SAndroid Build Coastguard Worker    ],
47*76559068SAndroid Build Coastguard Worker}
48*76559068SAndroid Build Coastguard Worker
49*76559068SAndroid Build Coastguard Workercc_library_headers {
50*76559068SAndroid Build Coastguard Worker    name: "scudo_headers",
51*76559068SAndroid Build Coastguard Worker    ramdisk_available: true,
52*76559068SAndroid Build Coastguard Worker    recovery_available: true,
53*76559068SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
54*76559068SAndroid Build Coastguard Worker
55*76559068SAndroid Build Coastguard Worker    export_include_dirs: [
56*76559068SAndroid Build Coastguard Worker        "standalone/include",
57*76559068SAndroid Build Coastguard Worker    ],
58*76559068SAndroid Build Coastguard Worker
59*76559068SAndroid Build Coastguard Worker    apex_available: [
60*76559068SAndroid Build Coastguard Worker        "com.android.runtime",
61*76559068SAndroid Build Coastguard Worker        "//apex_available:platform",
62*76559068SAndroid Build Coastguard Worker    ],
63*76559068SAndroid Build Coastguard Worker
64*76559068SAndroid Build Coastguard Worker    visibility: [
65*76559068SAndroid Build Coastguard Worker        "//system/core/debuggerd",
66*76559068SAndroid Build Coastguard Worker    ],
67*76559068SAndroid Build Coastguard Worker}
68*76559068SAndroid Build Coastguard Worker
69*76559068SAndroid Build Coastguard Workercc_defaults {
70*76559068SAndroid Build Coastguard Worker    name: "scudo_config_defaults",
71*76559068SAndroid Build Coastguard Worker    cflags: [
72*76559068SAndroid Build Coastguard Worker        // Use a custom Android configuration.
73*76559068SAndroid Build Coastguard Worker        "-DSCUDO_USE_CUSTOM_CONFIG",
74*76559068SAndroid Build Coastguard Worker    ],
75*76559068SAndroid Build Coastguard Worker
76*76559068SAndroid Build Coastguard Worker    include_dirs: [
77*76559068SAndroid Build Coastguard Worker        "external/scudo/config",
78*76559068SAndroid Build Coastguard Worker    ],
79*76559068SAndroid Build Coastguard Worker
80*76559068SAndroid Build Coastguard Worker    product_variables: {
81*76559068SAndroid Build Coastguard Worker        malloc_low_memory: {
82*76559068SAndroid Build Coastguard Worker            cflags: ["-DSCUDO_LOW_MEMORY"],
83*76559068SAndroid Build Coastguard Worker        },
84*76559068SAndroid Build Coastguard Worker    },
85*76559068SAndroid Build Coastguard Worker}
86*76559068SAndroid Build Coastguard Worker
87*76559068SAndroid Build Coastguard Workercc_defaults {
88*76559068SAndroid Build Coastguard Worker    name: "scudo_warning_defaults",
89*76559068SAndroid Build Coastguard Worker    cflags: [
90*76559068SAndroid Build Coastguard Worker        "-Wall",
91*76559068SAndroid Build Coastguard Worker        "-Wextra",
92*76559068SAndroid Build Coastguard Worker        "-Wunused",
93*76559068SAndroid Build Coastguard Worker        "-Wno-unused-result",
94*76559068SAndroid Build Coastguard Worker        "-Wconversion",
95*76559068SAndroid Build Coastguard Worker
96*76559068SAndroid Build Coastguard Worker        "-Werror=pointer-to-int-cast",
97*76559068SAndroid Build Coastguard Worker        "-Werror=int-to-pointer-cast",
98*76559068SAndroid Build Coastguard Worker        "-Werror=thread-safety",
99*76559068SAndroid Build Coastguard Worker        "-Werror=type-limits",
100*76559068SAndroid Build Coastguard Worker        "-Werror",
101*76559068SAndroid Build Coastguard Worker    ],
102*76559068SAndroid Build Coastguard Worker}
103*76559068SAndroid Build Coastguard Worker
104*76559068SAndroid Build Coastguard Workercc_defaults {
105*76559068SAndroid Build Coastguard Worker    name: "libscudo_defaults",
106*76559068SAndroid Build Coastguard Worker    defaults: [
107*76559068SAndroid Build Coastguard Worker        "scudo_config_defaults",
108*76559068SAndroid Build Coastguard Worker        "scudo_warning_defaults",
109*76559068SAndroid Build Coastguard Worker    ],
110*76559068SAndroid Build Coastguard Worker    native_coverage: false,
111*76559068SAndroid Build Coastguard Worker    ramdisk_available: true,
112*76559068SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
113*76559068SAndroid Build Coastguard Worker    recovery_available: true,
114*76559068SAndroid Build Coastguard Worker    host_supported: true,
115*76559068SAndroid Build Coastguard Worker    native_bridge_supported: true,
116*76559068SAndroid Build Coastguard Worker
117*76559068SAndroid Build Coastguard Worker    rtti: false,
118*76559068SAndroid Build Coastguard Worker    stl: "none",
119*76559068SAndroid Build Coastguard Worker
120*76559068SAndroid Build Coastguard Worker    cflags: [
121*76559068SAndroid Build Coastguard Worker        "-O3",
122*76559068SAndroid Build Coastguard Worker        "-fno-rtti",
123*76559068SAndroid Build Coastguard Worker        // This option speeds up alloc/free code paths by about 5% to 7%.
124*76559068SAndroid Build Coastguard Worker        "-fno-stack-protector",
125*76559068SAndroid Build Coastguard Worker    ],
126*76559068SAndroid Build Coastguard Worker    cppflags: [
127*76559068SAndroid Build Coastguard Worker        "-nostdinc++",
128*76559068SAndroid Build Coastguard Worker        "-fno-exceptions",
129*76559068SAndroid Build Coastguard Worker    ],
130*76559068SAndroid Build Coastguard Worker
131*76559068SAndroid Build Coastguard Worker    include_dirs: [
132*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone/include",
133*76559068SAndroid Build Coastguard Worker    ],
134*76559068SAndroid Build Coastguard Worker
135*76559068SAndroid Build Coastguard Worker    srcs: [
136*76559068SAndroid Build Coastguard Worker        "standalone/checksum.cpp",
137*76559068SAndroid Build Coastguard Worker        "standalone/common.cpp",
138*76559068SAndroid Build Coastguard Worker        "standalone/condition_variable_linux.cpp",
139*76559068SAndroid Build Coastguard Worker        "standalone/flags.cpp",
140*76559068SAndroid Build Coastguard Worker        "standalone/flags_parser.cpp",
141*76559068SAndroid Build Coastguard Worker        "standalone/linux.cpp",
142*76559068SAndroid Build Coastguard Worker        "standalone/mem_map.cpp",
143*76559068SAndroid Build Coastguard Worker        "standalone/mem_map_linux.cpp",
144*76559068SAndroid Build Coastguard Worker        "standalone/release.cpp",
145*76559068SAndroid Build Coastguard Worker        "standalone/report.cpp",
146*76559068SAndroid Build Coastguard Worker        "standalone/report_linux.cpp",
147*76559068SAndroid Build Coastguard Worker        "standalone/string_utils.cpp",
148*76559068SAndroid Build Coastguard Worker        "standalone/timing.cpp",
149*76559068SAndroid Build Coastguard Worker    ],
150*76559068SAndroid Build Coastguard Worker    arch: {
151*76559068SAndroid Build Coastguard Worker        arm: {
152*76559068SAndroid Build Coastguard Worker            cflags: ["-mcrc"],
153*76559068SAndroid Build Coastguard Worker            srcs: ["standalone/crc32_hw.cpp"],
154*76559068SAndroid Build Coastguard Worker        },
155*76559068SAndroid Build Coastguard Worker        arm64: {
156*76559068SAndroid Build Coastguard Worker            cflags: ["-mcrc"],
157*76559068SAndroid Build Coastguard Worker            srcs: ["standalone/crc32_hw.cpp"],
158*76559068SAndroid Build Coastguard Worker        },
159*76559068SAndroid Build Coastguard Worker        riscv64: {
160*76559068SAndroid Build Coastguard Worker            // This is a temporary fix, and should be reverted after
161*76559068SAndroid Build Coastguard Worker            // yieldProcessor supports riscv.
162*76559068SAndroid Build Coastguard Worker            cflags: ["-Wno-unused-parameter"],
163*76559068SAndroid Build Coastguard Worker        },
164*76559068SAndroid Build Coastguard Worker        x86_64: {
165*76559068SAndroid Build Coastguard Worker            cflags: ["-msse4.2"],
166*76559068SAndroid Build Coastguard Worker            srcs: ["standalone/crc32_hw.cpp"],
167*76559068SAndroid Build Coastguard Worker        },
168*76559068SAndroid Build Coastguard Worker        x86: {
169*76559068SAndroid Build Coastguard Worker            cflags: ["-msse4.2"],
170*76559068SAndroid Build Coastguard Worker            srcs: ["standalone/crc32_hw.cpp"],
171*76559068SAndroid Build Coastguard Worker        },
172*76559068SAndroid Build Coastguard Worker    },
173*76559068SAndroid Build Coastguard Worker
174*76559068SAndroid Build Coastguard Worker    target: {
175*76559068SAndroid Build Coastguard Worker        bionic: {
176*76559068SAndroid Build Coastguard Worker            system_shared_libs: [],
177*76559068SAndroid Build Coastguard Worker            header_libs: [
178*76559068SAndroid Build Coastguard Worker                "libc_headers",
179*76559068SAndroid Build Coastguard Worker                "bionic_libc_platform_headers",
180*76559068SAndroid Build Coastguard Worker            ],
181*76559068SAndroid Build Coastguard Worker            srcs: ["standalone/wrappers_c_bionic.cpp"],
182*76559068SAndroid Build Coastguard Worker            cflags: [
183*76559068SAndroid Build Coastguard Worker                "-D_BIONIC=1",
184*76559068SAndroid Build Coastguard Worker
185*76559068SAndroid Build Coastguard Worker                // Indicate that bionic has reserved a TLS for Scudo.
186*76559068SAndroid Build Coastguard Worker                "-DSCUDO_HAS_PLATFORM_TLS_SLOT",
187*76559068SAndroid Build Coastguard Worker
188*76559068SAndroid Build Coastguard Worker                // Always force alignment to 16 bytes even on 32 bit.
189*76559068SAndroid Build Coastguard Worker                // Android assumes that allocations of multiples of 16 bytes
190*76559068SAndroid Build Coastguard Worker                // will be aligned to at least 16 bytes.
191*76559068SAndroid Build Coastguard Worker                "-DSCUDO_MIN_ALIGNMENT_LOG=4",
192*76559068SAndroid Build Coastguard Worker
193*76559068SAndroid Build Coastguard Worker                // Allow scudo to use android_unsafe_frame_pointer_chase(),
194*76559068SAndroid Build Coastguard Worker                // which is normally a private function.
195*76559068SAndroid Build Coastguard Worker                "-DHAVE_ANDROID_UNSAFE_FRAME_POINTER_CHASE",
196*76559068SAndroid Build Coastguard Worker            ],
197*76559068SAndroid Build Coastguard Worker        },
198*76559068SAndroid Build Coastguard Worker        native_bridge: {
199*76559068SAndroid Build Coastguard Worker            cflags: ["-DSCUDO_DISABLE_TBI"],
200*76559068SAndroid Build Coastguard Worker        },
201*76559068SAndroid Build Coastguard Worker        host: {
202*76559068SAndroid Build Coastguard Worker            srcs: ["standalone/wrappers_c.cpp"],
203*76559068SAndroid Build Coastguard Worker        },
204*76559068SAndroid Build Coastguard Worker    },
205*76559068SAndroid Build Coastguard Worker}
206*76559068SAndroid Build Coastguard Worker
207*76559068SAndroid Build Coastguard Workercc_library {
208*76559068SAndroid Build Coastguard Worker    name: "libscudo",
209*76559068SAndroid Build Coastguard Worker    defaults: ["libscudo_defaults"],
210*76559068SAndroid Build Coastguard Worker    visibility: [
211*76559068SAndroid Build Coastguard Worker        "//bionic:__subpackages__",
212*76559068SAndroid Build Coastguard Worker        "//build/kati:__subpackages__",
213*76559068SAndroid Build Coastguard Worker        "//frameworks/libs/native_bridge_support/android_api/libc:__subpackages__",
214*76559068SAndroid Build Coastguard Worker        "//external/ninja:__subpackages__",
215*76559068SAndroid Build Coastguard Worker        "//external/stg:__subpackages__",
216*76559068SAndroid Build Coastguard Worker        "//system/core/debuggerd:__subpackages__",
217*76559068SAndroid Build Coastguard Worker    ],
218*76559068SAndroid Build Coastguard Worker    shared: {
219*76559068SAndroid Build Coastguard Worker        enabled: false,
220*76559068SAndroid Build Coastguard Worker    },
221*76559068SAndroid Build Coastguard Worker    target: {
222*76559068SAndroid Build Coastguard Worker        host: {
223*76559068SAndroid Build Coastguard Worker            shared: {
224*76559068SAndroid Build Coastguard Worker                enabled: true,
225*76559068SAndroid Build Coastguard Worker            },
226*76559068SAndroid Build Coastguard Worker        },
227*76559068SAndroid Build Coastguard Worker    },
228*76559068SAndroid Build Coastguard Worker    apex_available: [
229*76559068SAndroid Build Coastguard Worker        "com.android.runtime",
230*76559068SAndroid Build Coastguard Worker    ],
231*76559068SAndroid Build Coastguard Worker}
232*76559068SAndroid Build Coastguard Worker
233*76559068SAndroid Build Coastguard Workercc_library_static {
234*76559068SAndroid Build Coastguard Worker    name: "libscudo_for_testing",
235*76559068SAndroid Build Coastguard Worker    defaults: ["libscudo_defaults"],
236*76559068SAndroid Build Coastguard Worker    cflags: [
237*76559068SAndroid Build Coastguard Worker        "-DSCUDO_DEBUG=1",
238*76559068SAndroid Build Coastguard Worker    ],
239*76559068SAndroid Build Coastguard Worker}
240*76559068SAndroid Build Coastguard Worker
241*76559068SAndroid Build Coastguard Workercc_defaults {
242*76559068SAndroid Build Coastguard Worker    name: "scudo_unit_tests_default",
243*76559068SAndroid Build Coastguard Worker    defaults: [
244*76559068SAndroid Build Coastguard Worker        "scudo_config_defaults",
245*76559068SAndroid Build Coastguard Worker        "scudo_warning_defaults",
246*76559068SAndroid Build Coastguard Worker    ],
247*76559068SAndroid Build Coastguard Worker    isolated: true,
248*76559068SAndroid Build Coastguard Worker    static_libs: ["libscudo_for_testing"],
249*76559068SAndroid Build Coastguard Worker    include_dirs: [
250*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone",
251*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone/include",
252*76559068SAndroid Build Coastguard Worker    ],
253*76559068SAndroid Build Coastguard Worker    cflags: [
254*76559068SAndroid Build Coastguard Worker        // In memtag_test.cpp, some tests are disabled by GTEST_SKIP() so that
255*76559068SAndroid Build Coastguard Worker        // they won't be run. However, for those disabled tests, it may contain
256*76559068SAndroid Build Coastguard Worker        // unreachable code paths which will mislead some compiler checks. Given
257*76559068SAndroid Build Coastguard Worker        // this flag won't be impacted too much, disable it only in the test.
258*76559068SAndroid Build Coastguard Worker        "-Wno-unreachable-code-loop-increment",
259*76559068SAndroid Build Coastguard Worker        "-DSCUDO_DEBUG=1",
260*76559068SAndroid Build Coastguard Worker        "-DSCUDO_NO_TEST_MAIN",
261*76559068SAndroid Build Coastguard Worker    ],
262*76559068SAndroid Build Coastguard Worker    target: {
263*76559068SAndroid Build Coastguard Worker        bionic: {
264*76559068SAndroid Build Coastguard Worker            header_libs: ["bionic_libc_platform_headers"],
265*76559068SAndroid Build Coastguard Worker        },
266*76559068SAndroid Build Coastguard Worker    },
267*76559068SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
268*76559068SAndroid Build Coastguard Worker    bootstrap: true,
269*76559068SAndroid Build Coastguard Worker    srcs: [
270*76559068SAndroid Build Coastguard Worker        "standalone/tests/scudo_unit_test_main.cpp",
271*76559068SAndroid Build Coastguard Worker    ],
272*76559068SAndroid Build Coastguard Worker}
273*76559068SAndroid Build Coastguard Worker
274*76559068SAndroid Build Coastguard Workercc_test {
275*76559068SAndroid Build Coastguard Worker    name: "scudo_unit_tests",
276*76559068SAndroid Build Coastguard Worker    defaults: ["scudo_unit_tests_default"],
277*76559068SAndroid Build Coastguard Worker    host_supported: true,
278*76559068SAndroid Build Coastguard Worker    srcs: [
279*76559068SAndroid Build Coastguard Worker        "standalone/tests/allocator_config_test.cpp",
280*76559068SAndroid Build Coastguard Worker        "standalone/tests/atomic_test.cpp",
281*76559068SAndroid Build Coastguard Worker        "standalone/tests/bytemap_test.cpp",
282*76559068SAndroid Build Coastguard Worker        "standalone/tests/checksum_test.cpp",
283*76559068SAndroid Build Coastguard Worker        "standalone/tests/chunk_test.cpp",
284*76559068SAndroid Build Coastguard Worker        "standalone/tests/combined_test.cpp",
285*76559068SAndroid Build Coastguard Worker        "standalone/tests/condition_variable_test.cpp",
286*76559068SAndroid Build Coastguard Worker        "standalone/tests/flags_test.cpp",
287*76559068SAndroid Build Coastguard Worker        "standalone/tests/list_test.cpp",
288*76559068SAndroid Build Coastguard Worker        "standalone/tests/map_test.cpp",
289*76559068SAndroid Build Coastguard Worker        "standalone/tests/memtag_test.cpp",
290*76559068SAndroid Build Coastguard Worker        "standalone/tests/mutex_test.cpp",
291*76559068SAndroid Build Coastguard Worker        "standalone/tests/primary_test.cpp",
292*76559068SAndroid Build Coastguard Worker        "standalone/tests/quarantine_test.cpp",
293*76559068SAndroid Build Coastguard Worker        "standalone/tests/release_test.cpp",
294*76559068SAndroid Build Coastguard Worker        "standalone/tests/report_test.cpp",
295*76559068SAndroid Build Coastguard Worker        "standalone/tests/secondary_test.cpp",
296*76559068SAndroid Build Coastguard Worker        "standalone/tests/size_class_map_test.cpp",
297*76559068SAndroid Build Coastguard Worker        "standalone/tests/stats_test.cpp",
298*76559068SAndroid Build Coastguard Worker        "standalone/tests/strings_test.cpp",
299*76559068SAndroid Build Coastguard Worker        "standalone/tests/timing_test.cpp",
300*76559068SAndroid Build Coastguard Worker        "standalone/tests/tsd_test.cpp",
301*76559068SAndroid Build Coastguard Worker        "standalone/tests/vector_test.cpp",
302*76559068SAndroid Build Coastguard Worker    ],
303*76559068SAndroid Build Coastguard Worker}
304*76559068SAndroid Build Coastguard Worker
305*76559068SAndroid Build Coastguard Workercc_test {
306*76559068SAndroid Build Coastguard Worker    name: "scudo_wrappers_unit_tests",
307*76559068SAndroid Build Coastguard Worker    defaults: ["scudo_unit_tests_default"],
308*76559068SAndroid Build Coastguard Worker    // These are wrapper tests, disable the host tests since they would run
309*76559068SAndroid Build Coastguard Worker    // against glibc.
310*76559068SAndroid Build Coastguard Worker    host_supported: false,
311*76559068SAndroid Build Coastguard Worker    cflags: [
312*76559068SAndroid Build Coastguard Worker        "-Wno-mismatched-new-delete",
313*76559068SAndroid Build Coastguard Worker    ],
314*76559068SAndroid Build Coastguard Worker    srcs: [
315*76559068SAndroid Build Coastguard Worker        "standalone/tests/wrappers_c_test.cpp",
316*76559068SAndroid Build Coastguard Worker        "standalone/tests/wrappers_cpp_test.cpp",
317*76559068SAndroid Build Coastguard Worker    ],
318*76559068SAndroid Build Coastguard Worker}
319*76559068SAndroid Build Coastguard Worker
320*76559068SAndroid Build Coastguard Workercc_fuzz {
321*76559068SAndroid Build Coastguard Worker    name: "scudo_get_error_info_fuzzer",
322*76559068SAndroid Build Coastguard Worker    host_supported: true,
323*76559068SAndroid Build Coastguard Worker    compile_multilib: "64",
324*76559068SAndroid Build Coastguard Worker    static_libs: ["libscudo"],
325*76559068SAndroid Build Coastguard Worker    include_dirs: [
326*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone",
327*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone/include",
328*76559068SAndroid Build Coastguard Worker    ],
329*76559068SAndroid Build Coastguard Worker    cflags: [
330*76559068SAndroid Build Coastguard Worker        "-Wno-unneeded-internal-declaration",
331*76559068SAndroid Build Coastguard Worker    ],
332*76559068SAndroid Build Coastguard Worker    srcs: ["standalone/fuzz/get_error_info_fuzzer.cpp"],
333*76559068SAndroid Build Coastguard Worker    fuzz_config: {
334*76559068SAndroid Build Coastguard Worker        componentid: 87896,
335*76559068SAndroid Build Coastguard Worker    },
336*76559068SAndroid Build Coastguard Worker}
337*76559068SAndroid Build Coastguard Worker
338*76559068SAndroid Build Coastguard Workercc_test {
339*76559068SAndroid Build Coastguard Worker    name: "size_map_verify_unit_tests",
340*76559068SAndroid Build Coastguard Worker    host_supported: true,
341*76559068SAndroid Build Coastguard Worker    static_libs: ["libscudo"],
342*76559068SAndroid Build Coastguard Worker
343*76559068SAndroid Build Coastguard Worker    include_dirs: [
344*76559068SAndroid Build Coastguard Worker        "external/scudo/android/tools",
345*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone",
346*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone/include",
347*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone/tools",
348*76559068SAndroid Build Coastguard Worker    ],
349*76559068SAndroid Build Coastguard Worker    srcs: [
350*76559068SAndroid Build Coastguard Worker        "android/tests/size_map_verify_unit_tests.cpp",
351*76559068SAndroid Build Coastguard Worker    ],
352*76559068SAndroid Build Coastguard Worker}
353*76559068SAndroid Build Coastguard Worker
354*76559068SAndroid Build Coastguard Workercc_binary {
355*76559068SAndroid Build Coastguard Worker    name: "size_map_gen",
356*76559068SAndroid Build Coastguard Worker    defaults: ["scudo_config_defaults"],
357*76559068SAndroid Build Coastguard Worker    host_supported: true,
358*76559068SAndroid Build Coastguard Worker    static_libs: ["libscudo"],
359*76559068SAndroid Build Coastguard Worker    include_dirs: [
360*76559068SAndroid Build Coastguard Worker        "external/scudo/android/tools",
361*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone",
362*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone/include",
363*76559068SAndroid Build Coastguard Worker    ],
364*76559068SAndroid Build Coastguard Worker    srcs: ["android/tools/size_map_gen.cpp"],
365*76559068SAndroid Build Coastguard Worker}
366*76559068SAndroid Build Coastguard Worker
367*76559068SAndroid Build Coastguard Worker// The targets below verify that all configuration is set up properly for
368*76559068SAndroid Build Coastguard Worker// the library or tests.
369*76559068SAndroid Build Coastguard Workercc_defaults {
370*76559068SAndroid Build Coastguard Worker    name: "scudo_verify_defaults",
371*76559068SAndroid Build Coastguard Worker    host_supported: true,
372*76559068SAndroid Build Coastguard Worker    srcs: ["config/config_build_check.cpp"],
373*76559068SAndroid Build Coastguard Worker
374*76559068SAndroid Build Coastguard Worker    include_dirs: [
375*76559068SAndroid Build Coastguard Worker        "external/scudo/standalone",
376*76559068SAndroid Build Coastguard Worker    ],
377*76559068SAndroid Build Coastguard Worker
378*76559068SAndroid Build Coastguard Worker    product_variables: {
379*76559068SAndroid Build Coastguard Worker        malloc_low_memory: {
380*76559068SAndroid Build Coastguard Worker            cflags: ["-DSCUDO_LOW_MEMORY_CHECK"],
381*76559068SAndroid Build Coastguard Worker        },
382*76559068SAndroid Build Coastguard Worker    },
383*76559068SAndroid Build Coastguard Worker}
384*76559068SAndroid Build Coastguard Worker
385*76559068SAndroid Build Coastguard Workercc_test {
386*76559068SAndroid Build Coastguard Worker    name: "scudo_verify_config",
387*76559068SAndroid Build Coastguard Worker    defaults: [
388*76559068SAndroid Build Coastguard Worker        "scudo_verify_defaults",
389*76559068SAndroid Build Coastguard Worker        "scudo_unit_tests_default",
390*76559068SAndroid Build Coastguard Worker    ],
391*76559068SAndroid Build Coastguard Worker}
392*76559068SAndroid Build Coastguard Worker
393*76559068SAndroid Build Coastguard Workerdirgroup {
394*76559068SAndroid Build Coastguard Worker    name: "trusty_dirgroup_external_scudo",
395*76559068SAndroid Build Coastguard Worker    dirs: ["."],
396*76559068SAndroid Build Coastguard Worker    visibility: ["//trusty/vendor/google/aosp/scripts"],
397*76559068SAndroid Build Coastguard Worker}
398