//
// Copyright (C) 2017 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.
//

package {
    default_applicable_licenses: [
        "Android-Apache-2.0",
        "system_unwinding_libunwindstack_license",
    ],
}

license {
    name: "system_unwinding_libunwindstack_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-BSD",
    ],
    license_text: ["LICENSE_BSD"],
}

cc_defaults {
    name: "libunwindstack_flags",

    host_supported: true,

    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
    ],

    target: {
        darwin: {
            enabled: false,
        },
        linux_bionic: {
            enabled: true,
        },
    },
}

libunwindstack_common_src_files = [
    "ArmExidx.cpp",
    "DexFiles.cpp",
    "DwarfCfa.cpp",
    "DwarfEhFrameWithHdr.cpp",
    "DwarfMemory.cpp",
    "DwarfOp.cpp",
    "DwarfSection.cpp",
    "Elf.cpp",
    "ElfInterface.cpp",
    "ElfInterfaceArm.cpp",
    "Global.cpp",
    "JitDebug.cpp",
    "MapInfo.cpp",
    "Maps.cpp",
    "Memory.cpp",
    "MemoryMte.cpp",
    "MemoryXz.cpp",
    "LocalUnwinder.cpp",
    "Regs.cpp",
    "RegsArm.cpp",
    "RegsArm64.cpp",
    "RegsX86.cpp",
    "RegsX86_64.cpp",
    "RegsMips.cpp",
    "RegsMips64.cpp",
    "Symbols.cpp",
    "ThreadEntry.cpp",
    "ThreadUnwinder.cpp",
    "Unwinder.cpp",
]

cc_defaults {
    name: "libunwindstack_defaults",
    defaults: ["libunwindstack_flags"],
    export_include_dirs: ["include"],

    srcs: libunwindstack_common_src_files,

    cflags: [
        "-Wexit-time-destructors",
        "-fno-c++-static-destructors",
    ],

    target: {
        host: {
            // Always disable optimizations for host to make it easier to debug.
            cflags: [
                "-O0",
                "-g",
            ],
        },
        bionic: {
            header_libs: ["bionic_libc_platform_headers"],
            static_libs: ["libasync_safe"],
        },
    },

    arch: {
        x86: {
            srcs: ["AsmGetRegsX86.S"],
        },
        x86_64: {
            srcs: ["AsmGetRegsX86_64.S"],
        },
    },

    static_libs: [
        "libprocinfo",
    ],

    shared_libs: [
        "libbase",
        "liblog",
        "liblzma",
    ],
}

cc_library {
    name: "libunwindstack",
    vendor_available: true,
    product_available: true,
    recovery_available: true,
    vendor_ramdisk_available: true,
    // TODO(b/153609531): remove when no longer needed.
    native_bridge_supported: true,
    vndk: {
        enabled: true,
        support_system_process: true,
    },
    defaults: ["libunwindstack_defaults"],
    srcs: [
        "DexFile.cpp",
        "LogAndroid.cpp",
    ],
    cflags: ["-DDEXFILE_SUPPORT"],
    static_libs: ["libdexfile_support"],
    runtime_libs: ["libdexfile"], // libdexfile_support dependency

    target: {
        vendor: {
            cflags: ["-UDEXFILE_SUPPORT"],
            exclude_srcs: ["DexFile.cpp"],
            exclude_static_libs: ["libdexfile_support"],
            exclude_runtime_libs: ["libdexfile"],
        },
        product: {
            cflags: ["-UDEXFILE_SUPPORT"],
            exclude_srcs: ["DexFile.cpp"],
            exclude_static_libs: ["libdexfile_support"],
            exclude_runtime_libs: ["libdexfile"],
        },
        recovery: {
            cflags: ["-UDEXFILE_SUPPORT"],
            exclude_srcs: ["DexFile.cpp"],
            exclude_static_libs: ["libdexfile_support"],
            exclude_runtime_libs: ["libdexfile"],
        },
        vendor_ramdisk: {
            cflags: ["-UDEXFILE_SUPPORT"],
            exclude_srcs: ["DexFile.cpp"],
            exclude_static_libs: ["libdexfile_support"],
            exclude_runtime_libs: ["libdexfile"],
        },
        native_bridge: {
            cflags: ["-UDEXFILE_SUPPORT"],
            exclude_srcs: ["DexFile.cpp"],
            exclude_static_libs: ["libdexfile_support"],
            exclude_runtime_libs: ["libdexfile"],
        },
    },

    apex_available: [
        "//apex_available:platform",
        "com.android.art",
        "com.android.art.debug",
    ],
    min_sdk_version: "29",
}

// Make sure that the code can be compiled without Android Logging.
cc_library {
    name: "libunwindstack_stdout_log",
    defaults: ["libunwindstack_defaults"],
    srcs: [
        "LogStdout.cpp",
    ],
}

// Static library without DEX support to avoid dependencies on the ART APEX.
cc_library_static {
    name: "libunwindstack_no_dex",
    ramdisk_available: true,
    recovery_available: true,
    vendor_ramdisk_available: true,
    defaults: ["libunwindstack_defaults"],
    srcs: ["LogAndroid.cpp"],

    visibility: [
        "//external/gwp_asan",
        "//system/core/debuggerd",
        "//system/core/init",
        "//system/unwinding/libbacktrace",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.runtime",
    ],
}

//-------------------------------------------------------------------------
// Utils
//-------------------------------------------------------------------------
cc_library {
    name: "libunwindstack_utils",
    defaults: ["libunwindstack_flags"],
    export_include_dirs: ["utils"],
    shared_libs: [
        "libbase",
        "libunwindstack",
        "libprocinfo",
    ],
    whole_static_libs: [
        "libc++fs",
        "libz",
    ],
    srcs: [
        "utils/MemoryFake.cpp",
        "utils/OfflineUnwindUtils.cpp",
        "utils/ProcessTracer.cpp",
    ],
}

//-------------------------------------------------------------------------
// Unit Tests
//-------------------------------------------------------------------------
cc_library_shared {
    name: "libunwindstack_local",
    defaults: ["libunwindstack_flags"],
    srcs: ["tests/TestLocal.cpp"],

    cflags: [
        "-O0",
        "-g",
    ],

    shared_libs: [
        "libunwindstack",
    ],
}

cc_defaults {
    name: "libunwindstack_testlib_flags",
    defaults: ["libunwindstack_flags"],

    srcs: [
        "tests/ArmExidxDecodeTest.cpp",
        "tests/ArmExidxExtractTest.cpp",
        "tests/DexFileTest.cpp",
        "tests/DexFilesTest.cpp",
        "tests/DwarfCfaLogTest.cpp",
        "tests/DwarfCfaTest.cpp",
        "tests/DwarfDebugFrameTest.cpp",
        "tests/DwarfEhFrameTest.cpp",
        "tests/DwarfEhFrameWithHdrTest.cpp",
        "tests/DwarfMemoryTest.cpp",
        "tests/DwarfOpLogTest.cpp",
        "tests/DwarfOpTest.cpp",
        "tests/DwarfSectionTest.cpp",
        "tests/DwarfSectionImplTest.cpp",
        "tests/ElfCacheTest.cpp",
        "tests/ElfFake.cpp",
        "tests/ElfInterfaceArmTest.cpp",
        "tests/ElfInterfaceTest.cpp",
        "tests/ElfTest.cpp",
        "tests/ElfTestUtils.cpp",
        "tests/GlobalDebugImplTest.cpp",
        "tests/GlobalTest.cpp",
        "tests/IsolatedSettings.cpp",
        "tests/JitDebugTest.cpp",
        "tests/LocalUnwinderTest.cpp",
        "tests/LocalUpdatableMapsTest.cpp",
        "tests/LogFake.cpp",
        "tests/MapInfoCreateMemoryTest.cpp",
        "tests/MapInfoGetBuildIDTest.cpp",
        "tests/MapInfoGetElfTest.cpp",
        "tests/MapInfoGetLoadBiasTest.cpp",
        "tests/MapInfoTest.cpp",
        "tests/MapsTest.cpp",
        "tests/MemoryBufferTest.cpp",
        "tests/MemoryCacheTest.cpp",
        "tests/MemoryFileTest.cpp",
        "tests/MemoryLocalTest.cpp",
        "tests/MemoryOfflineBufferTest.cpp",
        "tests/MemoryOfflineTest.cpp",
        "tests/MemoryRangeTest.cpp",
        "tests/MemoryRangesTest.cpp",
        "tests/MemoryRemoteTest.cpp",
        "tests/MemoryTest.cpp",
        "tests/MemoryThreadCacheTest.cpp",
        "tests/MemoryMteTest.cpp",
        "tests/MemoryXzTest.cpp",
        "tests/RegsInfoTest.cpp",
        "tests/RegsIterateTest.cpp",
        "tests/RegsStepIfSignalHandlerTest.cpp",
        "tests/RegsTest.cpp",
        "tests/SymbolsTest.cpp",
        "tests/TestUtils.cpp",
        "tests/UnwindOfflineTest.cpp",
        "tests/UnwindTest.cpp",
        "tests/UnwinderTest.cpp",
        "tests/VerifyBionicTerminationTest.cpp",
        "utils/tests/ProcessTracerTest.cpp",
    ],

    cflags: [
        "-O0",
        "-g",
    ],

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

    static_libs: [
        "libdexfile_support",
        "libgmock",
        "libprocinfo",
        "libunwindstack_utils",
    ],

    test_suites: ["device-tests"],
    data: [
        "tests/files/boot_arm.oat.gnu_debugdata",
        "tests/files/boot_arm.oat.gnu_debugdata.xz",
        "tests/files/boot_arm.oat.gnu_debugdata.xz.non-power",
        "tests/files/boot_arm.oat.gnu_debugdata.xz.odd-sizes",
        "tests/files/boot_arm.oat.gnu_debugdata.xz.one-block",
        "tests/files/elf32.xz",
        "tests/files/elf64.xz",
        "offline_files/common/*",
        "offline_files/apk_rorx_arm64/*",
        "offline_files/apk_rorx_unreadable_arm64/*",
        "offline_files/apk_rx_arm64/*",
        "offline_files/apk_rx_unreadable_arm64/*",
        "offline_files/art_quick_osr_stub_arm/*",
        "offline_files/bad_eh_frame_hdr_arm64/*",
        "offline_files/debug_frame_first_x86/*",
        "offline_files/debug_frame_load_bias_arm/*",
        "offline_files/eh_frame_bias_x86/*",
        "offline_files/eh_frame_hdr_begin_x86_64/*",
        "offline_files/empty_arm64/*",
        "offline_files/invalid_elf_offset_arm/*",
        "offline_files/jit_debug_arm/*",
        "offline_files/jit_map_arm/*",
        "offline_files/gnu_debugdata_arm/*",
        "offline_files/load_bias_different_section_bias_arm64/*",
        "offline_files/load_bias_ro_rx_x86_64/*",
        "offline_files/offset_arm/*",
        "offline_files/pauth_pc_arm64/*",
        "offline_files/shared_lib_in_apk_arm64/*",
        "offline_files/shared_lib_in_apk_memory_only_arm64/*",
        "offline_files/shared_lib_in_apk_single_map_arm64/*",
        "offline_files/signal_load_bias_arm/*",
        "offline_files/signal_fde_x86/*",
        "offline_files/signal_fde_x86_64/*",
        "offline_files/straddle_arm/*",
        "offline_files/jit_debug_x86/*",
        "offline_files/straddle_arm64/*",
        "offline_files/bluetooth_arm64/pc_1/*",
        "offline_files/bluetooth_arm64/pc_2/*",
        "offline_files/bluetooth_arm64/pc_3/*",
        "offline_files/bluetooth_arm64/pc_4/*",
        "offline_files/photos_reset_arm64/*",
        "offline_files/youtube_compiled_arm64/*",
        "offline_files/yt_music_arm64/*",
        "offline_files/maps_compiled_arm64/28613_main-thread/*",
        "offline_files/maps_compiled_arm64/28644/*",
        "offline_files/maps_compiled_arm64/28648/*",
        "offline_files/maps_compiled_arm64/28656_oat_odex_jar/*",
        "offline_files/maps_compiled_arm64/28667/*",
    ],

    target: {
        android: {
            header_libs: ["bionic_libc_platform_headers"],
        },
        linux_bionic: {
            header_libs: ["bionic_libc_platform_headers"],
        },
    },
}

cc_test {
    name: "libunwindstack_unit_test",
    defaults: ["libunwindstack_testlib_flags"],
    isolated: true,
    data: [
        ":libunwindstack_local",
    ],
}

//-------------------------------------------------------------------------
// Fuzzers
//-------------------------------------------------------------------------
cc_defaults {
    name: "libunwindstack_fuzz_defaults",
    host_supported: true,
    defaults: ["libunwindstack_flags"],
    cflags: [
        "-Wexit-time-destructors",
        "-fno-c++-static-destructors",
        "-g",
    ],
    shared_libs: [
        "libbase",
        "liblog",
        "liblzma",
        "libunwindstack",
    ],
    static_libs: [
        "libdexfile_support",
        "libunwindstack_utils",
    ],
}

cc_fuzz {
    name: "libunwindstack_fuzz_unwinder",
    defaults: ["libunwindstack_fuzz_defaults"],
    srcs: [
        "tests/ElfFake.cpp",
        "tests/fuzz/UnwinderComponentCreator.cpp",
        "tests/fuzz/UnwinderFuzz.cpp",
    ],
}

//-------------------------------------------------------------------------
// Tools
//-------------------------------------------------------------------------
cc_defaults {
    name: "libunwindstack_tools",
    defaults: ["libunwindstack_flags"],

    shared_libs: [
        "libunwindstack_stdout_log",
        "libbase",
        "liblzma",
    ],
    target: {
        // Always disable optimizations for host to make it easier to debug.
        host: {
            cflags: [
                "-O0",
                "-g",
            ],
        },
    },
}

cc_binary {
    name: "unwind",
    defaults: ["libunwindstack_tools"],

    srcs: [
        "tools/unwind.cpp",
    ],
}

cc_binary {
    name: "unwind_info",
    defaults: ["libunwindstack_tools"],

    srcs: [
        "tools/unwind_info.cpp",
    ],
}

cc_binary {
    name: "unwind_symbols",
    defaults: ["libunwindstack_tools"],

    srcs: [
        "tools/unwind_symbols.cpp",
    ],
}

cc_binary {
    name: "unwind_for_offline",
    defaults: ["libunwindstack_tools"],
    static_libs: [
        "libunwindstack_utils",
        "libc++fs",
    ],

    srcs: [
        "tools/unwind_for_offline.cpp",
    ],
}

cc_binary {
    name: "unwind_reg_info",
    defaults: ["libunwindstack_tools"],

    srcs: [
        "tools/unwind_reg_info.cpp",
    ],
}

//-------------------------------------------------------------------------
// Benchmarks
//-------------------------------------------------------------------------
cc_benchmark {
    name: "unwind_benchmarks",
    host_supported: true,
    defaults: ["libunwindstack_flags"],

    // Disable optimizations so that all of the calls are not optimized away.
    cflags: [
        "-O0",
    ],

    srcs: [
        "benchmarks/ElfBenchmark.cpp",
        "benchmarks/MapsBenchmark.cpp",
        "benchmarks/SymbolBenchmark.cpp",
        "benchmarks/Utils.cpp",
        "benchmarks/local_unwind_benchmarks.cpp",
        "benchmarks/main.cpp",
        "benchmarks/remote_unwind_benchmarks.cpp",
        "benchmarks/thread_unwind_benchmarks.cpp",
        "benchmarks/OfflineUnwindBenchmarks.cpp",
        "benchmarks/EvalBenchmark.cpp",
    ],

    data: [
        "benchmarks/files/*",
        "offline_files/common/*",
        "offline_files/jit_debug_arm/*",
        "offline_files/straddle_arm64/*",
        "offline_files/bluetooth_arm64/pc_1/*",
        "offline_files/bluetooth_arm64/pc_2/*",
        "offline_files/bluetooth_arm64/pc_3/*",
        "offline_files/bluetooth_arm64/pc_4/*",
        "offline_files/photos_reset_arm64/*",
        "offline_files/youtube_compiled_arm64/*",
        "offline_files/yt_music_arm64/*",
        "offline_files/maps_compiled_arm64/28613_main-thread/*",
        "offline_files/maps_compiled_arm64/28644/*",
        "offline_files/maps_compiled_arm64/28648/*",
        "offline_files/maps_compiled_arm64/28656_oat_odex_jar/*",
        "offline_files/maps_compiled_arm64/28667/*",
    ],

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

    static_libs: [
        "libunwindstack_utils",
    ],

    target: {
        android: {
            static_libs: [
                "libmeminfo",
                "libprocinfo",
            ],
        },
    },
}

// Generates the elf data for use in the tests for .gnu_debugdata frames.
// Once these files are generated, use the xz command to compress the data.
cc_binary_host {
    name: "gen_gnudebugdata",
    defaults: ["libunwindstack_flags"],

    srcs: [
        "tests/GenGnuDebugdata.cpp",
    ],
}
