// ==============================================================
// 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_defaults {
    name: "malloc_debug_tests",

    srcs: [
        "tests/log_fake.cpp",
        "tests/libc_fake.cpp",
    ],

    local_include_dirs: ["tests"],
    include_dirs: [
        "bionic/libc",
        "bionic/libc/async_safe/include",
    ],

    header_libs: [
        "bionic_libc_platform_headers",
    ],

    shared_libs: [
        "libbase",
        "libunwindstack",
    ],

    static_libs: [
        "libc_malloc_debug",
    ],

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-error=format-zero-length",
        "-O0",
    ],
}

cc_test {
    name: "malloc_debug_system_record_unit_tests",
    defaults: ["malloc_debug_tests"],
    test_suites: ["device-tests"],
    isolated: true,

    srcs: [
        "tests/malloc_debug_config_tests.cpp",
        "tests/malloc_debug_record_data_tests.cpp",
    ],
}

cc_test {
    name: "malloc_debug_unit_tests",
    defaults: ["malloc_debug_tests"],
    test_suites: ["device-tests"],
    isolated: true,

    srcs: [
        "tests/backtrace_fake.cpp",
        "tests/malloc_debug_unit_tests.cpp",
    ],

    static_libs: [
        "libtinyxml2",
    ],

    cflags: [
        // This code uses malloc_usable_size(),
        // and thus can't be built with _FORTIFY_SOURCE=3.
        "-U_FORTIFY_SOURCE",
        "-D_FORTIFY_SOURCE=2",
    ],
}

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

    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",
}
