// Build musl libc from source to eventually use as the libc for host modules in the platform build.
// The list of sources to compile for each library is loaded from sources.bp, which is generated
// by generate_bp.py.

package {
    default_visibility: ["//visibility:private"],
    default_applicable_licenses: ["musl_license"],
}

license {
    name: "musl_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-BSD",
    ],
    license_text: ["COPYRIGHT"],
}

cc_library_headers {
    name: "libc_musl_arch_headers",
    host_supported: true,
    device_supported: false,
    system_shared_libs: [],
    generated_headers: [
        "libc_musl_alltypes.h",
        "libc_musl_syscall.h",
    ],
    export_generated_headers: [
        "libc_musl_alltypes.h",
        "libc_musl_syscall.h",
    ],
    export_include_dirs: [
        "arch/generic",
    ],
    arch: {
        arm: {
            export_include_dirs: ["arch/arm"],
        },
        arm64: {
            export_include_dirs: ["arch/aarch64"],
        },
        x86: {
            export_include_dirs: ["arch/i386"],
        },
        x86_64: {
            export_include_dirs: ["arch/x86_64"],
        },
    },
}

cc_library_headers {
    name: "libc_musl_private_headers",
    host_supported: true,
    device_supported: false,
    system_shared_libs: [],
    generated_headers: [
        "libc_musl_version.h",
    ],
    export_generated_headers: [
        "libc_musl_version.h",
    ],
    export_include_dirs: [
        "src/include",
        "src/internal",
    ],
}

cc_library_headers {
    name: "libc_musl_public_headers",
    host_supported: true,
    device_supported: false,
    system_shared_libs: [],
    export_system_include_dirs: [
        "android/include",
        "include",
    ],
}

cc_defaults {
    name: "libc_musl_defaults",
    host_supported: true,
    device_supported: false,
    system_shared_libs: [],
    cflags: [
        // CFLAGS_C99FSE
        "-nostdinc",
        "-ffreestanding",
        "-frounding-math",
        "-Wa,--noexecstack",

        // CFLAGS_AUTO
        //"-Os",
        "-O0",
        "-pipe",
        "-fomit-frame-pointer",
        "-fno-unwind-tables",
        "-fno-asynchronous-unwind-tables",
        "-ffunction-sections",
        "-fdata-sections",
        //"-w",
        "-Wno-pointer-to-int-cast",
        "-Werror=implicit-function-declaration",
        "-Werror=implicit-int",
        "-Werror=pointer-sign",
        "-Werror=pointer-arith",
        "-Werror=int-conversion",
        "-Werror=incompatible-pointer-types",
        "-Qunused-arguments",
        "-Waddress",
        "-Warray-bounds",
        "-Wchar-subscripts",
        "-Wduplicate-decl-specifier",
        "-Winit-self",
        "-Wreturn-type",
        "-Wsequence-point",
        "-Wstrict-aliasing",
        "-Wunused-function",
        "-Wunused-label",
        "-Wunused-variable",

        // CFLAGS_ALL
        "-D_XOPEN_SOURCE=700",

        // undefine NDEBUG from global flags, musl defines it locally
        "-UNDEBUG",

        // disable warnings:
        "-Wno-bitwise-op-parentheses",
        "-Wno-dangling-else",
        "-Wno-ignored-attributes",
        "-Wno-logical-op-parentheses",
        "-Wno-missing-braces",
        "-Wno-missing-field-initializers",
        "-Wno-parentheses",
        "-Wno-shift-op-parentheses",
        "-Wno-string-plus-int",
        "-Wno-unused-parameter",
    ],

    ldflags: [
        "-Wl,--sort-section,alignment",
        "-Wl,--sort-common",
        "-Wl,--gc-sections",
        "-Wl,--hash-style=both",
        "-Wl,--no-undefined",
        // Can't use --exclude-libs=ALL, that excludes the static libraries
        // used for building subparts of libc_musl.
        //"-Wl,--exclude-libs=ALL",
        "-Wl,--exclude-libs=libgcc.a",
        "-Wl,--exclude-libs=libgcc_stripped.a",
        "-Wl,--exclude-libs=libclang_rt.builtins-arm-android.a",
        "-Wl,--exclude-libs=libclang_rt.builtins-aarch64-android.a",
        "-Wl,--exclude-libs=libclang_rt.builtins-i686-android.a",
        "-Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a",
    ],

    asflags: ["-Wno-unused-command-line-argument"],

    header_libs: [
        // The order here is very important, private headers like src/include/features.h override
        // public headers like include/features.h, and arch headers like arch/x86_64/ksigaction.h
        // override private headers like src/internal/ksigaction.h.
        "libc_musl_arch_headers",
        "libc_musl_private_headers",
        "libc_musl_public_headers",
    ],

    stl: "none",
    c_std: "c99",
    sanitize: {
        never: true,
    },
    target: {
        darwin: {
            enabled: false,
        },
        bionic: {
            enabled: false,
        },
        glibc: {
            enabled: false,
        },
    },
}

cc_library_headers {
    name: "libc_musl_headers",
    visibility: ["//bionic/libc"],
    host_supported: true,
    device_supported: false,
    system_shared_libs: [],
    export_header_lib_headers: [
        "libc_musl_arch_headers",
        "libc_musl_public_headers",
        "libc_llndk_headers",
    ],
    header_libs: [
        "libc_musl_arch_headers",
        "libc_musl_public_headers",
        "libc_llndk_headers",
    ],
}

//
// The main musl libc library
//

cc_library {
    name: "libc_musl",
    visibility: ["//visibility:public"],
    defaults: ["libc_musl_defaults"],
    whole_static_libs: ["libc_musl_static"],
    shared: {
        whole_static_libs: ["libc_musl_ldso"],
    },
    ldflags: [
        "-Wl,-e,_dlstart",
        "-nostdlib",
    ],
    dynamic_list: "dynamic.list",
}

// All the static parts of the main musl libc.  Don't use this directly, use
// the version exported through libc_musl instead.
cc_library_static {
    name: "libc_musl_static",
    defaults: [
        "libc_musl_defaults",
        "libc_musl_sources",
    ],
    whole_static_libs: [
        "libc_musl_opt",
        "libc_musl_opt_nossp",
        "libc_musl_nossp",
        "libexecinfo",
        "libb64",
        "libunwind",
    ],
    multilib: {
        lib32: {
            whole_static_libs: ["libc_musl_compat32"],
        },
    },
    export_header_lib_headers: [
        "libc_musl_arch_headers",
        "libc_musl_public_headers",
        "libc_llndk_headers",
    ],
    header_libs: [
        "libc_llndk_headers",
    ],
}

// Musl sources that are compiled with -O3
cc_library_static {
    name: "libc_musl_opt",
    defaults: [
        "libc_musl_defaults",
        "libc_musl_opt_sources",
    ],
    cflags: ["-O3"],
}

// Musl sources that are compiled with -O3 and -fno-stack-protector
cc_library_static {
    name: "libc_musl_opt_nossp",
    defaults: [
        "libc_musl_defaults",
        "libc_musl_opt_nossp_sources",
    ],
    cflags: [
        "-O3",
        "-fno-stack-protector",
    ],
}

// Musl sources that are compiled with -fno-stack-protector
cc_library_static {
    name: "libc_musl_nossp",
    defaults: [
        "libc_musl_defaults",
        "libc_musl_nossp_sources",
    ],
    cflags: ["-fno-stack-protector"],
}

// Musl sources for 32-bit architectures
cc_library_static {
    name: "libc_musl_compat32",
    defaults: [
        "libc_musl_defaults",
        "libc_musl_compat32_sources",
    ],
}

// Musl sources for the dynamic linker.
cc_library_static {
    name: "libc_musl_ldso",
    defaults: [
        "libc_musl_defaults",
        "libc_musl_ldso_sources",
    ],
    cflags: [
        "-fno-stack-protector",
        "-DLIBC_SONAME=libc_musl.so",
    ],
}

// Musl sources for the dynamic linker when used in the sysroot.
cc_library_static {
    name: "libc_musl_ldso_sysroot",
    defaults: [
        "libc_musl_defaults",
        "libc_musl_ldso_sources",
    ],
    cflags: [
        "-fno-stack-protector",
        "-DLIBC_SONAME=libc.so",
    ],
}

// An attempt to compile the dynamic linker as a standalone library separate from libc_musl.so.
// Not used yet.
cc_library_shared {
    name: "musl_linker",
    defaults: [
        "libc_musl_defaults",
    ],
    nocrt: true,
    static_libs: [
        "libc_musl_ldso",
        "libc_musl",
    ],
    ldflags: [
        "-Wl,-e,_dlstart",
        "-nostdlib",
        "-Wl,--exclude-libs=libc_musl.a",
    ],
}

// Convert the linker (which is actually libc_musl.so) into a .s file for embedding in crtbegin.
cc_genrule {
    name: "musl_linker_asm",
    host_supported: true,
    device_supported: false,
    tools: ["extract_linker"],
    cmd: "$(location) -s $(out) $(in)",
    srcs: [":libc_musl"],
    out: ["linker.s"],
    target: {
        darwin: {
            enabled: false,
        },
        bionic: {
            enabled: false,
        },
        glibc: {
            enabled: false,
        },
    },
}

// Convert the linker (which is actually libc_musl.so) into a linker script for embedding in
// crtbegin.
cc_genrule {
    name: "musl_linker_script",
    visibility: ["//visibility:public"],
    host_supported: true,
    device_supported: false,
    tools: ["extract_linker"],
    cmd: "$(location) -T $(out) $(in)",
    srcs: [":libc_musl"],
    out: ["linker.script"],
    target: {
        darwin: {
            enabled: false,
        },
        bionic: {
            enabled: false,
        },
        glibc: {
            enabled: false,
        },
    },
}

//
// The musl CRT objects
//

cc_defaults {
    name: "libc_musl_crt_defaults",
    defaults: ["libc_musl_defaults"],
    cflags: [
        // These are required to make sure the C code in crt/*.c
        // doesn't have any dependencies on libc.
        "-fno-stack-protector",
        "-ftrivial-auto-var-init=uninitialized",
    ],
}

cc_object {
    name: "libc_musl_crt1",
    defaults: [
        "libc_musl_crt_defaults",
        "libc_musl_crt1_sources",
    ],
}

cc_object {
    name: "libc_musl_crti",
    defaults: [
        "libc_musl_crt_defaults",
        "libc_musl_crti_sources",
    ],
}

cc_object {
    name: "libc_musl_crtn",
    defaults: [
        "libc_musl_crt_defaults",
        "libc_musl_crtn_sources",
    ],
}

cc_object {
    name: "libc_musl_rcrt1",
    defaults: [
        "libc_musl_crt_defaults",
        "libc_musl_rcrt1_sources",
    ],
}

cc_object {
    name: "libc_musl_Scrt1",
    defaults: [
        "libc_musl_crt_defaults",
        "libc_musl_Scrt1_sources",
    ],
}

//
// The custom CRT objects for use in the platform build.
// Embeds the linker into crtbegin_dynamic.
//

cc_object {
    name: "libc_musl_crtbegin_dynamic",
    defaults: ["libc_musl_defaults"],
    visibility: ["//visibility:public"],
    objs: [
        "libc_musl_crt1",
        "libc_musl_crti",
        "clang_rt.crtbegin",
    ],
    srcs: [
        ":musl_linker_asm",
        "android/ldso_trampoline.cpp",
    ],
    cflags: [
        // These are required to make sure the C code in ldso_trampoline.c
        // doesn't have any dependencies on libc.
        "-fno-stack-protector",
        "-ftrivial-auto-var-init=uninitialized",
    ],
}

cc_object {
    name: "libc_musl_crtbegin_static",
    defaults: ["libc_musl_defaults"],
    visibility: ["//visibility:public"],
    objs: [
        "libc_musl_Scrt1",
        "libc_musl_crti",
        "clang_rt.crtbegin",
    ],
}

cc_object {
    name: "libc_musl_crtend",
    defaults: ["libc_musl_defaults"],
    visibility: ["//visibility:public"],
    objs: [
        "clang_rt.crtend",
        "libc_musl_crtn",
    ],
}

cc_object {
    name: "libc_musl_crtbegin_so",
    defaults: ["libc_musl_defaults"],
    visibility: ["//visibility:public"],
    objs: [
        "libc_musl_crti",
        "clang_rt.crtbegin",
    ],
}

cc_object {
    name: "libc_musl_crtend_so",
    defaults: ["libc_musl_defaults"],
    visibility: ["//visibility:public"],
    objs: [
        "clang_rt.crtend",
        "libc_musl_crtn",
    ],
}

//
// Tests for the embedded linker trampoline
//

cc_test_host {
    name: "libc_musl_ldso_trampoline_test",
    srcs: ["android/ldso_trampoline_test.cpp"],
    stl: "libc++",
    target: {
        darwin: {
            enabled: false,
        },
    },
}

//
// Generated headers
//

genrule {
    name: "libc_musl_version.h",
    srcs: ["VERSION"],
    out: ["version.h"],
    cmd: "printf '#define VERSION \"%s\"\n' \"$$(cat $(location VERSION))\" > $(out)",
}

// libc_musl_arch_alltypes.h is split out of libc_musl_alltypes.h to ensure the arch-specific
// alltypes.h.in ends up before the generic alltypes.h.in in the output.
cc_genrule {
    name: "libc_musl_arch_alltypes.h",
    host_supported: true,
    device_supported: false,
    arch: {
        arm: {
            srcs: ["arch/arm/bits/alltypes.h.in"],
        },
        arm64: {
            srcs: ["arch/aarch64/bits/alltypes.h.in"],
        },
        x86: {
            srcs: ["arch/i386/bits/alltypes.h.in"],
        },
        x86_64: {
            srcs: ["arch/x86_64/bits/alltypes.h.in"],
        },
    },
    tool_files: ["tools/mkalltypes.sed"],
    out: ["bits/alltypes.h"],
    cmd: "sed -f $(location tools/mkalltypes.sed) $(in) > $(out)",
}

cc_genrule {
    name: "libc_musl_alltypes.h",
    host_supported: true,
    device_supported: false,
    srcs: [
        "include/alltypes.h.in",
        ":libc_musl_arch_alltypes.h",
    ],
    tool_files: ["tools/mkalltypes.sed"],
    out: ["bits/alltypes.h"],
    cmd: "( " +
        "cat $(location :libc_musl_arch_alltypes.h) && " +
        "sed -f $(location tools/mkalltypes.sed) $(location include/alltypes.h.in) " +
        ") > $(out)",
}

cc_genrule {
    name: "libc_musl_syscall.h",
    host_supported: true,
    device_supported: false,
    arch: {
        arm: {
            srcs: ["arch/arm/bits/syscall.h.in"],
        },
        arm64: {
            srcs: ["arch/aarch64/bits/syscall.h.in"],
        },
        x86: {
            srcs: ["arch/i386/bits/syscall.h.in"],
        },
        x86_64: {
            srcs: ["arch/x86_64/bits/syscall.h.in"],
        },
    },
    out: ["bits/syscall.h"],
    cmd: "cp $(in) $(out) && sed -n -e s/__NR_/SYS_/p < $(in) >> $(out)",
}

//
// Rules to generate a sysroot.  This isn't used during the build, but can be convenient to run
// configure scripts from external projects to generate necessary files to build against musl.
//


// A copy of libc_musl that uses libc.so as its soname for putting in the sysroot.
cc_library_shared {
    name: "libc_musl_for_sysroot",
    defaults: ["libc_musl_defaults"],
    whole_static_libs: ["libc_musl_static"],
    shared: {
        whole_static_libs: ["libc_musl_ldso_sysroot"],
    },
    ldflags: [
        "-Wl,-e,_dlstart",
        "-nostdlib",
        "-Wl,--soname,libc.so",
    ],
    dynamic_list: "dynamic.list",
}

// An empty static library that will be copied to libdl.a, etc. in the sysroot.
// Shouldn't be used by anything else besides the sysroot cc_genrule.
cc_library_static {
    name: "libc_musl_sysroot_static_empty",
    defaults: [
        "libc_musl_defaults",
    ],
}

// The linker and trampoline compiled as a .o file to use as part of the sysroot
// crt.
cc_object {
    name: "libc_musl_linker_object",
    defaults: ["libc_musl_defaults"],
    srcs: [
        ":musl_linker_asm",
        "android/ldso_trampoline.cpp",
    ],
    cflags: [
        // These are required to make sure the C code in ldso_trampoline.c
        // doesn't have any dependencies on libc.
        "-fno-stack-protector",
        "-ftrivial-auto-var-init=uninitialized",
    ],
}

// The architecture-specific bits have to be handled separately because the label varies based
// on architecture, which prevents using $(locations) to find them and requires using $(in)
// instead, which would mix in all the other files if this were part of the main libc_musl_sysroot
// genrule.
cc_genrule {
    name: "libc_musl_sysroot_bits",
    host_supported: true,
    device_supported: false,
    arch: {
        arm: {
            srcs: ["arch/arm/bits/*.h"],
        },
        arm64: {
            srcs: ["arch/aarch64/bits/*.h"],
        },
        x86: {
            srcs: ["arch/i386/bits/*.h"],
        },
        x86_64: {
            srcs: ["arch/x86_64/bits/*.h"],
        },
    },
    out: ["libc_musl_sysroot_bits.zip"],
    tools: ["soong_zip"],
    cmd: "includes=($(in)) && $(location soong_zip) -o $(out) -P include/bits -j -D $$(dirname $${includes[0]})",
}

genrule {
    name: "libc_musl_clang_wrapper",
    srcs: ["tools/musl-clang.in"],
    out: ["musl-clang"],
    cmd: "sed -e 's`@CC@`clang`' -e 's`@PREFIX@`$$(dirname \"$$0\")/..`' -e 's`@INCDIR@`$${libc}/include`' -e 's`@LIBDIR@`$${libc}/lib`' $(in) > $(out) && " +
        "chmod a+x $(out)",
}

genrule {
    name: "libc_musl_ld_wrapper",
    srcs: ["tools/ld.musl-clang.in"],
    out: ["ld.musl-clang"],
    cmd: "sed -e 's`@CC@`clang`' -e 's`@LIBDIR@`$$(dirname \"$$0\")/../lib`' -e 's`@LDSO@`$$(dirname \"$$0\")/../lib/ld-musl.so.1`' $(in) > $(out) && " +
        "chmod a+x $(out)",
}

cc_genrule {
    name: "libc_musl_sysroot",
    host_supported: true,
    device_supported: false,
    enabled: false,
    target: {
        musl: {
            enabled: true,
        },
    },
    srcs: [
        "LICENSE",
        "COPYRIGHT",

        // Headers
        "include/**/*.h",
        "arch/generic/bits/*.h",
        "android/include/bits/*.h",
        "android/include/sys/cdefs.h",
        ":libc_musl_syscall.h",
        ":libc_musl_alltypes.h",
        ":libc_musl_sysroot_bits",

        // Bionic kernel uapi headers
        ":libc_musl_sysroot_bionic_headers",

        // libc++ headers
        ":libc_musl_sysroot_libc++_headers",
        ":libc_musl_sysroot_libc++abi_headers",

        // Libraries
        ":libc_musl",
        ":libc_musl_for_sysroot",
        ":libc_musl_static",
        ":libc++abi",
        ":libc++",
        ":libc++_static",

        // Objects
        ":libc_musl_crti",
        ":libc_musl_crtn",
        ":libc_musl_crt1",
        ":libc_musl_rcrt1",
        ":libc_musl_Scrt1",
        ":clang_rt.crtbegin",
        ":clang_rt.crtend",

        // Embedded linker objects and linker scripts
        ":libc_musl_linker_object",
        ":musl_linker_script",

        // Wrapper scripts
        ":libc_musl_clang_wrapper",
        ":libc_musl_ld_wrapper",

        // Empty static libraries
        ":libc_musl_sysroot_static_empty",
    ],
    out: ["libc_musl_sysroot.zip"],
    tools: [
        "soong_zip",
        "merge_zips",
        "zip2zip",
    ],
    cmd: "includes=($(locations include/**/*.h)) && " +
        "bits=($(locations arch/generic/bits/*.h)) && " +
        "android_bits=($(locations android/include/bits/*.h)) && " +
        "ln -s libc_musl.so $(genDir)/ld-musl.so.1 && " +
        "echo -e 'GROUP ( Scrt1-real.o libc_musl_linker_object.o )\nINCLUDE linker.script' > $(genDir)/Scrt1.ld && " +
        "echo -e 'GROUP ( libc_musl.so )' > $(genDir)/libc.so && " +
        "$(location soong_zip) -o $(genDir)/sysroot.zip " +
        " -j " +
        "  -f $(location LICENSE) " +
        "  -f $(location COPYRIGHT) " +
        // headers
        " -P include " +
        "  -C $$(dirname $${includes[0]}) " +
        "  -D $$(dirname $${includes[0]}) " +
        " -P include/bits -j " +
        "  -f $(location :libc_musl_syscall.h) " +
        "  -f $(location :libc_musl_alltypes.h) " +
        "  -D $$(dirname $${bits[0]}) " +
        "  -D $$(dirname $${android_bits[0]}) " +
        " -P include/sys -j " +
        "  -f $(location android/include/sys/cdefs.h) " +
        // crt objects
        " -P lib -j " +
        "  -f $(location :libc_musl_crti) " +
        "  -f $(location :libc_musl_crtn) " +
        "  -f $(location :libc_musl_crt1) " +
        "  -f $(location :libc_musl_rcrt1) " +
        // embedded linker crt objects
        "  -f $(location :musl_linker_script) " +
        "  -f $(location :libc_musl_linker_object) " +
        // libs
        "  -f $(location :libc_musl) " +
        "  -f $(location :libc++abi) " +
        "  -f $(location :libc++) " +
        "  -f $(genDir)/ld-musl.so.1 " +
        "  -f $(genDir)/libc.so " +
        // clang wrappers
        " -P bin -j " +
        "  -f $(location :libc_musl_clang_wrapper) " +
        "  -f $(location :libc_musl_ld_wrapper) " +
        " && " +
        // libs in a separate zip so they can be renamed
        "$(location soong_zip) -o $(genDir)/libs.zip " +
        " -P lib -j " +
        "  -f $(location :libc_musl_static) " +
        "  -f $(location :libc_musl_sysroot_static_empty) " +
        "  -f $(genDir)/Scrt1.ld " +
        "  -f $(location :libc_musl_Scrt1) " +
        "  -f $(location :libc++_static) " +
        "  -f $(location :clang_rt.crtbegin) " +
        "  -f $(location :clang_rt.crtend) " +
        " && " +
        "$(location zip2zip) -i $(genDir)/libs.zip -o $(genDir)/libs_renamed.zip " +
        // rename libs from module names to desired names in sysroot
        " lib/libc_musl_static.a:lib/libc.a " +
        " lib/libc++_static.a:lib/libc++.a " +
        // Swap in linker script for Scrt1.o
        " lib/Scrt1.o:lib/Scrt1-real.o " +
        " lib/Scrt1.ld:lib/Scrt1.o " +
        // copy empty static libs
        " lib/libc_musl_sysroot_static_empty.a:lib/libcrypt.a " +
        " lib/libc_musl_sysroot_static_empty.a:lib/libdl.a " +
        " lib/libc_musl_sysroot_static_empty.a:lib/libm.a " +
        " lib/libc_musl_sysroot_static_empty.a:lib/libpthread.a " +
        " lib/libc_musl_sysroot_static_empty.a:lib/libresolv.a " +
        " lib/libc_musl_sysroot_static_empty.a:lib/librt.a " +
        " lib/libc_musl_sysroot_static_empty.a:lib/libutil.a " +
        " lib/libc_musl_sysroot_static_empty.a:lib/libxnet.a " +
        // rename clang crt objects to gcc names
        " lib/clang_rt.crtbegin.o:lib/crtbegin.o " +
        " lib/clang_rt.crtbegin.o:lib/crtbeginS.o " +
        " lib/clang_rt.crtbegin.o:lib/crtbeginT.o " +
        " lib/clang_rt.crtend.o:lib/crtend.o " +
        " lib/clang_rt.crtend.o:lib/crtendS.o " +
        " && " +
        "$(location merge_zips) -ignore-duplicates $(out) " +
        " $(location :libc_musl_sysroot_bionic_headers) " +
        " $(location :libc_musl_sysroot_libc++_headers) " +
        " $(location :libc_musl_sysroot_libc++abi_headers) " +
        " $(location :libc_musl_sysroot_bits) " +
        " $(genDir)/sysroot.zip " +
        " $(genDir)/libs_renamed.zip",
}

build=["sources.bp"]
