//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

cc_defaults {
    name: "libscudo_defaults",
    native_coverage: false,
    ramdisk_available: true,
    recovery_available: true,
    host_supported: true,
    native_bridge_supported: true,

    rtti: false,
    stl: "none",

    cflags: [
        "-O3",
        "-fno-rtti",
        // This option speeds up alloc/free code paths by about 5% to 7%.
        "-fno-stack-protector",
        "-fno-emulated-tls",

        "-Wall",
        "-Wextra",
        "-Wunused",
        "-Wno-unused-result",

        "-Werror=pointer-to-int-cast",
        "-Werror=int-to-pointer-cast",
        "-Werror=type-limits",
        "-Werror",

        // Always force alignment to 16 bytes even on 32 bit.
        // Android assumes that allocations of multiples of 16 bytes
        // will be aligned to at least 16 bytes.
        "-DSCUDO_MIN_ALIGNMENT_LOG=4",
    ],
    cppflags: [
        "-nostdinc++",
        "-fno-exceptions",
    ],

    system_shared_libs: [],

    srcs: [
        "standalone/checksum.cpp",
        "standalone/common.cpp",
        "standalone/flags.cpp",
        "standalone/flags_parser.cpp",
        "standalone/linux.cpp",
        "standalone/report.cpp",
        "standalone/string_utils.cpp",
        "standalone/wrappers_c_bionic.cpp"
    ],
    arch: {
        arm: {
            cflags: ["-mcrc"],
            srcs: ["standalone/crc32_hw.cpp"],
        },
        arm64: {
            cflags: ["-mcrc"],
            srcs: ["standalone/crc32_hw.cpp"],
        },
        x86_64: {
            cflags: ["-msse4.2"],
            srcs: ["standalone/crc32_hw.cpp"],
        },
        x86: {
            cflags: ["-msse4.2"],
            srcs: ["standalone/crc32_hw.cpp"],
        },
    },

    target: {
        linux_glibc: {
            enabled: true,
        },
    },

    header_libs: [
        "bionic_libc_platform_headers",
    ],
    product_variables: {
        experimental_mte: {
            cflags: ["-DANDROID_EXPERIMENTAL_MTE"],
        },
    },
}

cc_library_static {
    name: "libscudo",
    defaults: ["libscudo_defaults"],
    cflags: ["-D_BIONIC=1"],
}

cc_library_static {
    name: "libscudo_for_testing",
    defaults: ["libscudo_defaults"],
}

cc_test {
    name: "scudo_unit_tests",
    host_supported: true,
    srcs: [
        "standalone/tests/atomic_test.cpp",
        "standalone/tests/bytemap_test.cpp",
        "standalone/tests/checksum_test.cpp",
        "standalone/tests/chunk_test.cpp",
        "standalone/tests/combined_test.cpp",
        "standalone/tests/flags_test.cpp",
        "standalone/tests/list_test.cpp",
        "standalone/tests/map_test.cpp",
        "standalone/tests/mutex_test.cpp",
        "standalone/tests/primary_test.cpp",
        "standalone/tests/quarantine_test.cpp",
        "standalone/tests/release_test.cpp",
        "standalone/tests/report_test.cpp",
        "standalone/tests/scudo_unit_test_main.cpp",
        "standalone/tests/secondary_test.cpp",
        "standalone/tests/size_class_map_test.cpp",
        "standalone/tests/stats_test.cpp",
        "standalone/tests/strings_test.cpp",
        "standalone/tests/tsd_test.cpp",
        "standalone/tests/vector_test.cpp",
    ],
    static_libs: ["libscudo_for_testing"],
    include_dirs: [
        "external",
        "external/scudo/standalone",
    ],
    cflags: [
        "-Wno-unused-parameter",
        "-fno-emulated-tls",
    ],
    header_libs: [
        "bionic_libc_platform_headers",
    ],
    product_variables: {
        experimental_mte: {
            cflags: ["-DANDROID_EXPERIMENTAL_MTE"],
        },
    },
    test_suites: ["general-tests"],
}
