| // ============================================================== |
| // libc_malloc_debug_backtrace.a |
| // ============================================================== |
| // Used by libmemunreachable |
| package { |
| default_team: "trendy_team_native_tools_libraries", |
| // 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", |
| "LogAllocatorStats.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", |
| ], |
| |
| whole_static_libs: [ |
| "libmemory_trace", |
| ], |
| |
| 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", |
| } |