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