// ============================================================== // 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"], }