|  | // ============================================================== | 
|  | // libc_malloc_debug_backtrace.a | 
|  | // ============================================================== | 
|  | // Used by libmemunreachable | 
|  | package { | 
|  | // See: http://go/android-license-faq | 
|  | // A large-scale-change added 'default_applicable_licenses' to import | 
|  | // all of the 'license_kinds' from "bionic_libc_license" | 
|  | // to get the below license kinds: | 
|  | //   SPDX-license-identifier-Apache-2.0 | 
|  | //   SPDX-license-identifier-BSD | 
|  | default_applicable_licenses: ["bionic_libc_license"], | 
|  | } | 
|  |  | 
|  | cc_library_static { | 
|  | name: "libc_malloc_debug_backtrace", | 
|  | vendor_available: true, | 
|  |  | 
|  | srcs: [ | 
|  | "backtrace.cpp", | 
|  | "MapData.cpp", | 
|  | ], | 
|  |  | 
|  | stl: "libc++_static", | 
|  |  | 
|  | whole_static_libs: [ | 
|  | "libbase", | 
|  | "libasync_safe", | 
|  | ], | 
|  |  | 
|  | include_dirs: ["bionic/libc"], | 
|  |  | 
|  | export_include_dirs: ["."], | 
|  |  | 
|  | sanitize: { | 
|  | never: true, | 
|  | }, | 
|  | native_coverage: false, | 
|  |  | 
|  | // -Wno-error=format-zero-length needed for gcc to compile. | 
|  | cflags: [ | 
|  | "-Wall", | 
|  | "-Werror", | 
|  | "-Wno-error=format-zero-length", | 
|  | ], | 
|  |  | 
|  | apex_available: [ | 
|  | "//apex_available:platform", | 
|  | "com.android.runtime", | 
|  | ], | 
|  | } | 
|  |  | 
|  | // ============================================================== | 
|  | // libc_malloc_debug.so | 
|  | // ============================================================== | 
|  | cc_library { | 
|  | name: "libc_malloc_debug", | 
|  |  | 
|  | srcs: [ | 
|  | "Config.cpp", | 
|  | "DebugData.cpp", | 
|  | "debug_disable.cpp", | 
|  | "GuardData.cpp", | 
|  | "malloc_debug.cpp", | 
|  | "PointerData.cpp", | 
|  | "RecordData.cpp", | 
|  | "Unreachable.cpp", | 
|  | "UnwindBacktrace.cpp", | 
|  | ], | 
|  |  | 
|  | stl: "libc++_static", | 
|  |  | 
|  | static_libs: [ | 
|  | "libasync_safe", | 
|  | "libbase", | 
|  | "libc_malloc_debug_backtrace", | 
|  | "libmemunreachable", | 
|  | ], | 
|  |  | 
|  | shared_libs: [ | 
|  | "libunwindstack", | 
|  | ], | 
|  |  | 
|  | multilib: { | 
|  | lib32: { | 
|  | version_script: "exported32.map", | 
|  | }, | 
|  | lib64: { | 
|  | version_script: "exported64.map", | 
|  | }, | 
|  | }, | 
|  | allow_undefined_symbols: true, | 
|  | include_dirs: ["bionic/libc"], | 
|  |  | 
|  | sanitize: { | 
|  | never: true, | 
|  | }, | 
|  | native_coverage: false, | 
|  |  | 
|  | // -Wno-error=format-zero-length needed for gcc to compile. | 
|  | cflags: [ | 
|  | "-Wall", | 
|  | "-Werror", | 
|  | "-fno-stack-protector", | 
|  | "-Wno-error=format-zero-length", | 
|  | "-Wthread-safety", | 
|  | ], | 
|  |  | 
|  | apex_available: [ | 
|  | "com.android.runtime", | 
|  | ], | 
|  | static: { | 
|  | apex_available: [ | 
|  | "//apex_available:platform", | 
|  | ], | 
|  | }, | 
|  | } | 
|  |  | 
|  | // ============================================================== | 
|  | // Unit Tests | 
|  | // ============================================================== | 
|  | cc_test { | 
|  | name: "malloc_debug_unit_tests", | 
|  | test_suites: ["device-tests"], | 
|  | isolated: true, | 
|  |  | 
|  | srcs: [ | 
|  | "tests/backtrace_fake.cpp", | 
|  | "tests/log_fake.cpp", | 
|  | "tests/libc_fake.cpp", | 
|  | "tests/malloc_debug_config_tests.cpp", | 
|  | "tests/malloc_debug_unit_tests.cpp", | 
|  | ], | 
|  |  | 
|  | local_include_dirs: ["tests"], | 
|  | include_dirs: [ | 
|  | "bionic/libc", | 
|  | "bionic/libc/async_safe/include", | 
|  | ], | 
|  |  | 
|  | header_libs: [ | 
|  | "bionic_libc_platform_headers", | 
|  | ], | 
|  |  | 
|  | static_libs: [ | 
|  | "libc_malloc_debug", | 
|  | "libtinyxml2", | 
|  | ], | 
|  |  | 
|  | shared_libs: [ | 
|  | "libbase", | 
|  | "libunwindstack", | 
|  | ], | 
|  |  | 
|  | cflags: [ | 
|  | "-Wall", | 
|  | "-Werror", | 
|  | "-Wno-error=format-zero-length", | 
|  | "-O0", | 
|  | ], | 
|  | } | 
|  |  | 
|  | // ============================================================== | 
|  | // System Tests | 
|  | // ============================================================== | 
|  | cc_test { | 
|  | name: "malloc_debug_system_tests", | 
|  | isolated: true, | 
|  |  | 
|  | include_dirs: [ | 
|  | "bionic/libc", | 
|  | "bionic", // For SKIP_WITH_HWASAN. | 
|  | ], | 
|  |  | 
|  | header_libs: [ | 
|  | "bionic_libc_platform_headers", | 
|  | ], | 
|  |  | 
|  | // The clang-analyzer-unix.Malloc and other warnings in these | 
|  | // unit tests are either false positive or in | 
|  | // negative tests that can be ignored. | 
|  | tidy: false, | 
|  |  | 
|  | srcs: [ | 
|  | "tests/malloc_debug_system_tests.cpp", | 
|  | ], | 
|  |  | 
|  | shared_libs: [ | 
|  | "libbase", | 
|  | "liblog", | 
|  | "libunwindstack", | 
|  | ], | 
|  |  | 
|  | cflags: [ | 
|  | "-Wall", | 
|  | "-Werror", | 
|  | "-O0", | 
|  | ], | 
|  | test_suites: ["general-tests"], | 
|  | test_config: "tests/AndroidTest.xml", | 
|  | } |