1570af302Sopenharmony_ciif (is_lite_system && current_os == "ohos") { 2570af302Sopenharmony_ci group("sysroot_lite") { 3570af302Sopenharmony_ci print("ohos_build_compiler:", ohos_build_compiler) 4570af302Sopenharmony_ci print("ohos_kernel_type:", ohos_kernel_type) 5570af302Sopenharmony_ci 6570af302Sopenharmony_ci # Mini system of liteos_a needs not prepare for build, so set "kernel_is_prebuilt is true" in 7570af302Sopenharmony_ci # config.json to avoid it. 8570af302Sopenharmony_ci if (!is_mini_system && !ohos_kernel_is_prebuilt) { 9570af302Sopenharmony_ci deps = [ "scripts/build_lite:build" ] 10570af302Sopenharmony_ci } else if (!ohos_kernel_is_prebuilt) { 11570af302Sopenharmony_ci if (ohos_kernel_type == "liteos_m") { 12570af302Sopenharmony_ci all_dependent_configs = [ 13570af302Sopenharmony_ci "${ohos_kernel_path}:public", 14570af302Sopenharmony_ci "${ohos_kernel_path}:kconfig_config", 15570af302Sopenharmony_ci ] 16570af302Sopenharmony_ci } else if (ohos_kernel_type == "uniproton") { 17570af302Sopenharmony_ci all_dependent_configs = [ 18570af302Sopenharmony_ci "//kernel/uniproton:os_config", 19570af302Sopenharmony_ci "//kernel/uniproton:kconfig_config", 20570af302Sopenharmony_ci ] 21570af302Sopenharmony_ci } 22570af302Sopenharmony_ci } 23570af302Sopenharmony_ci } 24570af302Sopenharmony_ci} else { 25570af302Sopenharmony_ci import("musl_template.gni") 26570af302Sopenharmony_ci 27570af302Sopenharmony_ci group("musl_all") { 28570af302Sopenharmony_ci deps = [ 29570af302Sopenharmony_ci ":musl_headers", 30570af302Sopenharmony_ci ":soft_libs", 31570af302Sopenharmony_ci ] 32570af302Sopenharmony_ci } 33570af302Sopenharmony_ci 34570af302Sopenharmony_ci if (musl_arch != "mips" && musl_arch != "riscv64") { 35570af302Sopenharmony_ci ohos_prebuilt_etc("ld-musl-namespace-${musl_arch}-test.ini") { 36570af302Sopenharmony_ci source = "${musl_dir}/config/ld-musl-namespace-${musl_arch}-test.ini" 37570af302Sopenharmony_ci } 38570af302Sopenharmony_ci 39570af302Sopenharmony_ci ohos_prebuilt_etc("ld-musl-namespace-${musl_arch}.ini") { 40570af302Sopenharmony_ci source = "${musl_dir}/config/ld-musl-namespace-${musl_arch}.ini" 41570af302Sopenharmony_ci install_images = [ 42570af302Sopenharmony_ci "system", 43570af302Sopenharmony_ci "updater", 44570af302Sopenharmony_ci "ramdisk", 45570af302Sopenharmony_ci ] 46570af302Sopenharmony_ci } 47570af302Sopenharmony_ci 48570af302Sopenharmony_ci group("musl_ns_config") { 49570af302Sopenharmony_ci deps = [ 50570af302Sopenharmony_ci ":ld-musl-namespace-${musl_arch}-test.ini", 51570af302Sopenharmony_ci ":ld-musl-namespace-${musl_arch}.ini", 52570af302Sopenharmony_ci ] 53570af302Sopenharmony_ci } 54570af302Sopenharmony_ci } else { 55570af302Sopenharmony_ci group("musl_ns_config") { 56570af302Sopenharmony_ci deps = [] 57570af302Sopenharmony_ci } 58570af302Sopenharmony_ci } 59570af302Sopenharmony_ci 60570af302Sopenharmony_ci group("musl_libs") { 61570af302Sopenharmony_ci deps = [ 62570af302Sopenharmony_ci ":musl_headers", 63570af302Sopenharmony_ci ":musl_sysparam", 64570af302Sopenharmony_ci ":musl_sysparam_dac", 65570af302Sopenharmony_ci ":soft_libs", 66570af302Sopenharmony_ci ] 67570af302Sopenharmony_ci } 68570af302Sopenharmony_ci 69570af302Sopenharmony_ci ohos_prebuilt_etc("musl_sysparam") { 70570af302Sopenharmony_ci source = "${musl_dir}/etc/musl.para" 71570af302Sopenharmony_ci relative_install_dir = "param" 72570af302Sopenharmony_ci } 73570af302Sopenharmony_ci 74570af302Sopenharmony_ci ohos_prebuilt_etc("musl_sysparam_dac") { 75570af302Sopenharmony_ci source = "${musl_dir}/etc/musl.para.dac" 76570af302Sopenharmony_ci relative_install_dir = "param" 77570af302Sopenharmony_ci } 78570af302Sopenharmony_ci 79570af302Sopenharmony_ci musl_libs("soft_libs") { 80570af302Sopenharmony_ci } 81570af302Sopenharmony_ci 82570af302Sopenharmony_ci group("musl_headers") { 83570af302Sopenharmony_ci deps = [ 84570af302Sopenharmony_ci ":FreeBSD_copy", 85570af302Sopenharmony_ci ":copy_uapi", 86570af302Sopenharmony_ci ":create_alltypes_h", 87570af302Sopenharmony_ci ":create_syscall_h", 88570af302Sopenharmony_ci ":create_version_h", 89570af302Sopenharmony_ci ":musl_copy_inc_arpa", 90570af302Sopenharmony_ci ":musl_copy_inc_bits", 91570af302Sopenharmony_ci ":musl_copy_inc_fortify", 92570af302Sopenharmony_ci ":musl_copy_inc_hook", 93570af302Sopenharmony_ci ":musl_copy_inc_info", 94570af302Sopenharmony_ci ":musl_copy_inc_net", 95570af302Sopenharmony_ci ":musl_copy_inc_netinet", 96570af302Sopenharmony_ci ":musl_copy_inc_netpacket", 97570af302Sopenharmony_ci ":musl_copy_inc_root", 98570af302Sopenharmony_ci ":musl_copy_inc_scsi", 99570af302Sopenharmony_ci ":musl_copy_inc_sys", 100570af302Sopenharmony_ci ":musl_copy_inc_trace", 101570af302Sopenharmony_ci ":musl_ns_config", 102570af302Sopenharmony_ci ] 103570af302Sopenharmony_ci } 104570af302Sopenharmony_ci 105570af302Sopenharmony_ci action("create_porting_src") { 106570af302Sopenharmony_ci script = "scripts/porting.sh" 107570af302Sopenharmony_ci 108570af302Sopenharmony_ci sources_dir = [ "//third_party/musl" ] 109570af302Sopenharmony_ci 110570af302Sopenharmony_ci outdir = [ "${target_out_dir}/${musl_ported_dir}" ] 111570af302Sopenharmony_ci 112570af302Sopenharmony_ci src_files = musl_src_arch_file 113570af302Sopenharmony_ci src_files += musl_src_file 114570af302Sopenharmony_ci src_files += musl_src_ldso 115570af302Sopenharmony_ci src_files += musl_inc_bits_files 116570af302Sopenharmony_ci src_files += musl_inc_arpa_files 117570af302Sopenharmony_ci src_files += musl_inc_net_files 118570af302Sopenharmony_ci src_files += musl_inc_netinet_files 119570af302Sopenharmony_ci src_files += musl_inc_netpacket_files 120570af302Sopenharmony_ci src_files += musl_inc_scsi_files 121570af302Sopenharmony_ci src_files += musl_inc_sys_files 122570af302Sopenharmony_ci src_files += musl_inc_fortify_files 123570af302Sopenharmony_ci src_files += musl_inc_root_files 124570af302Sopenharmony_ci src_files += musl_inc_info_files 125570af302Sopenharmony_ci src_files += musl_inc_trace_files 126570af302Sopenharmony_ci 127570af302Sopenharmony_ci src_files += [ 128570af302Sopenharmony_ci "crt/Scrt1.c", 129570af302Sopenharmony_ci "crt/crt1.c", 130570af302Sopenharmony_ci "crt/rcrt1.c", 131570af302Sopenharmony_ci "tools/mkalltypes.sed", 132570af302Sopenharmony_ci "arch/${musl_arch}/bits/alltypes.h.in", 133570af302Sopenharmony_ci "arch/${musl_arch}/bits/syscall.h.in", 134570af302Sopenharmony_ci "include/alltypes.h.in", 135570af302Sopenharmony_ci "VERSION", 136570af302Sopenharmony_ci "tools/version.sh", 137570af302Sopenharmony_ci "tools/install.sh", 138570af302Sopenharmony_ci "scripts/install.py", 139570af302Sopenharmony_ci "scripts/create_alltypes.sh", 140570af302Sopenharmony_ci "scripts/create_vesion.sh", 141570af302Sopenharmony_ci "scripts/create_syscall.sh", 142570af302Sopenharmony_ci ] 143570af302Sopenharmony_ci if (musl_arch == "riscv64") { 144570af302Sopenharmony_ci src_files += [ 145570af302Sopenharmony_ci "crt/crti.c", 146570af302Sopenharmony_ci "crt/crtn.c", 147570af302Sopenharmony_ci ] 148570af302Sopenharmony_ci } else if (musl_arch == "loongarch64") { 149570af302Sopenharmony_ci src_files += [ 150570af302Sopenharmony_ci "crt/crti.c", 151570af302Sopenharmony_ci "crt/crtn.c", 152570af302Sopenharmony_ci ] 153570af302Sopenharmony_ci } else { 154570af302Sopenharmony_ci src_files += [ 155570af302Sopenharmony_ci "crt/${musl_arch}/crti.s", 156570af302Sopenharmony_ci "crt/${musl_arch}/crtn.s", 157570af302Sopenharmony_ci ] 158570af302Sopenharmony_ci } 159570af302Sopenharmony_ci 160570af302Sopenharmony_ci args = [ "-i" ] + rebase_path(sources_dir) 161570af302Sopenharmony_ci args += [ "-o" ] + rebase_path(outdir) 162570af302Sopenharmony_ci args += [ "-p" ] + [ "${musl_target_os}" ] 163570af302Sopenharmony_ci 164570af302Sopenharmony_ci foreach(i, src_files) { 165570af302Sopenharmony_ci foreach(s, musl_src_files_ext) { 166570af302Sopenharmony_ci if (i == s) { 167570af302Sopenharmony_ci src_files -= [ "${s}" ] 168570af302Sopenharmony_ci } 169570af302Sopenharmony_ci } 170570af302Sopenharmony_ci } 171570af302Sopenharmony_ci 172570af302Sopenharmony_ci outputs = [] 173570af302Sopenharmony_ci foreach(s, src_files) { 174570af302Sopenharmony_ci outputs += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 175570af302Sopenharmony_ci } 176570af302Sopenharmony_ci 177570af302Sopenharmony_ci foreach(s, musl_src_files_ext) { 178570af302Sopenharmony_ci outputs += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 179570af302Sopenharmony_ci } 180570af302Sopenharmony_ci 181570af302Sopenharmony_ci inputs = [] 182570af302Sopenharmony_ci foreach(i, src_files) { 183570af302Sopenharmony_ci foreach(s, musl_src_linux_files) { 184570af302Sopenharmony_ci if (i == s) { 185570af302Sopenharmony_ci src_files -= [ "${s}" ] 186570af302Sopenharmony_ci } 187570af302Sopenharmony_ci } 188570af302Sopenharmony_ci } 189570af302Sopenharmony_ci foreach(s, src_files) { 190570af302Sopenharmony_ci inputs += [ "${musl_dir}/${s}" ] 191570af302Sopenharmony_ci } 192570af302Sopenharmony_ci 193570af302Sopenharmony_ci foreach(s, musl_src_files_ext) { 194570af302Sopenharmony_ci inputs += [ "${musl_dir}/${s}" ] 195570af302Sopenharmony_ci } 196570af302Sopenharmony_ci } 197570af302Sopenharmony_ci 198570af302Sopenharmony_ci action("create_alltypes_h") { 199570af302Sopenharmony_ci script = "${target_out_dir}/${musl_ported_dir}/scripts/create_alltypes.sh" 200570af302Sopenharmony_ci 201570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/alltypes.h" ] 202570af302Sopenharmony_ci 203570af302Sopenharmony_ci sources = [ "${target_out_dir}/${musl_ported_dir}/tools/mkalltypes.sed" ] 204570af302Sopenharmony_ci sources += [ 205570af302Sopenharmony_ci "${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/alltypes.h.in", 206570af302Sopenharmony_ci "${target_out_dir}/${musl_ported_dir}/include/alltypes.h.in", 207570af302Sopenharmony_ci ] 208570af302Sopenharmony_ci 209570af302Sopenharmony_ci args = [ "-o" ] + rebase_path(outputs, root_build_dir) 210570af302Sopenharmony_ci args += rebase_path(sources, root_build_dir) 211570af302Sopenharmony_ci 212570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 213570af302Sopenharmony_ci } 214570af302Sopenharmony_ci 215570af302Sopenharmony_ci action("create_version_h") { 216570af302Sopenharmony_ci script = "${target_out_dir}/${musl_ported_dir}/scripts/create_vesion.sh" 217570af302Sopenharmony_ci 218570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/version.h" ] 219570af302Sopenharmony_ci 220570af302Sopenharmony_ci sources = [ 221570af302Sopenharmony_ci "${target_out_dir}/${musl_ported_dir}/VERSION", 222570af302Sopenharmony_ci "${target_out_dir}/${musl_ported_dir}/tools/version.sh", 223570af302Sopenharmony_ci ] 224570af302Sopenharmony_ci 225570af302Sopenharmony_ci args = rebase_path(sources, root_build_dir) 226570af302Sopenharmony_ci args += 227570af302Sopenharmony_ci [ rebase_path("${target_out_dir}/${musl_inc_out_dir}", root_build_dir) ] 228570af302Sopenharmony_ci 229570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 230570af302Sopenharmony_ci } 231570af302Sopenharmony_ci 232570af302Sopenharmony_ci action("create_syscall_h") { 233570af302Sopenharmony_ci script = "${target_out_dir}/${musl_ported_dir}/scripts/create_syscall.sh" 234570af302Sopenharmony_ci 235570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/syscall.h" ] 236570af302Sopenharmony_ci 237570af302Sopenharmony_ci sources = [ "${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/syscall.h.in" ] 238570af302Sopenharmony_ci 239570af302Sopenharmony_ci args = rebase_path(sources, root_build_dir) 240570af302Sopenharmony_ci args += rebase_path(outputs, root_build_dir) 241570af302Sopenharmony_ci 242570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 243570af302Sopenharmony_ci } 244570af302Sopenharmony_ci 245570af302Sopenharmony_ci # if musl_uapi_dir does not exist, then make uapi from musl_linux_kernel_dir 246570af302Sopenharmony_ci if (exec_script("/bin/sh", 247570af302Sopenharmony_ci [ 248570af302Sopenharmony_ci "-c", 249570af302Sopenharmony_ci "if [ ! -d " + rebase_path(musl_uapi_dir) + 250570af302Sopenharmony_ci " ]; then echo true; else echo false; fi", 251570af302Sopenharmony_ci ], 252570af302Sopenharmony_ci "value")) { 253570af302Sopenharmony_ci kernel_dir = rebase_path(musl_linux_kernel_dir) 254570af302Sopenharmony_ci kernel_out_dir = "${kernel_dir}/make_output" 255570af302Sopenharmony_ci musl_uapi_dir = "${kernel_out_dir}/usr/include" 256570af302Sopenharmony_ci make_uapi_cmd = "rm -rf ${musl_uapi_dir}" 257570af302Sopenharmony_ci make_uapi_cmd += " && make -C ${kernel_dir} -sj headers O=${kernel_out_dir} ARCH=${target_cpu}" 258570af302Sopenharmony_ci make_uapi_cmd += " && cp -f ${kernel_dir}/drivers/staging/android/uapi/ashmem.h ${musl_uapi_dir}/linux/ashmem.h" 259570af302Sopenharmony_ci make_uapi_cmd += " && sed -i '/#define _INPUT_H/i#define _UAPI_INPUT_H' ${musl_uapi_dir}/linux/input.h" 260570af302Sopenharmony_ci make_uapi_cmd += " && sed -i '/struct __kernel_sockaddr_storage/i#define sockaddr_storage __kernel_sockaddr_storage' ${musl_uapi_dir}/linux/socket.h" 261570af302Sopenharmony_ci args_make_uapi = [ "-c" ] 262570af302Sopenharmony_ci args_make_uapi += [ make_uapi_cmd ] 263570af302Sopenharmony_ci exec_script("/bin/sh", args_make_uapi, "value") 264570af302Sopenharmony_ci uapi_from = "make" 265570af302Sopenharmony_ci } else { 266570af302Sopenharmony_ci uapi_from = "local" 267570af302Sopenharmony_ci } 268570af302Sopenharmony_ci 269570af302Sopenharmony_ci uapi_full_path = rebase_path(musl_uapi_dir) 270570af302Sopenharmony_ci arguments_uapi = [ "-c" ] 271570af302Sopenharmony_ci 272570af302Sopenharmony_ci # exclude these files because they need special treatment 273570af302Sopenharmony_ci if (uapi_from == "make") { 274570af302Sopenharmony_ci exclude_files = "^asm\$|^scsi\$" 275570af302Sopenharmony_ci } else { 276570af302Sopenharmony_ci exclude_files = "^asm-arm\$|^asm-arm64\$|^scsi\$" 277570af302Sopenharmony_ci } 278570af302Sopenharmony_ci 279570af302Sopenharmony_ci arguments_uapi += 280570af302Sopenharmony_ci [ "ls ${uapi_full_path} | grep -Ev " + "\"" + "${exclude_files}" + "\"" ] 281570af302Sopenharmony_ci uspi_files = exec_script("/bin/sh", arguments_uapi, "list lines") 282570af302Sopenharmony_ci 283570af302Sopenharmony_ci # Generate a copy target for each file 284570af302Sopenharmony_ci foreach(file, uspi_files) { 285570af302Sopenharmony_ci copy("copy_uapi_${file}") { 286570af302Sopenharmony_ci sources = [ "${musl_uapi_dir}/${file}" ] 287570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/${file}" ] 288570af302Sopenharmony_ci } 289570af302Sopenharmony_ci } 290570af302Sopenharmony_ci 291570af302Sopenharmony_ci group("copy_uapi_scsi") { 292570af302Sopenharmony_ci deps = [] 293570af302Sopenharmony_ci sources = [] 294570af302Sopenharmony_ci outputs = [] 295570af302Sopenharmony_ci uapi_scsi_dir = rebase_path("${musl_uapi_dir}/scsi") 296570af302Sopenharmony_ci arguments_scsi = [ "-c" ] 297570af302Sopenharmony_ci arguments_scsi += [ "ls ${uapi_scsi_dir}" ] 298570af302Sopenharmony_ci uapi_scsi_files = exec_script("/bin/sh", arguments_scsi, "list lines") 299570af302Sopenharmony_ci 300570af302Sopenharmony_ci # Generate a copy target for each file in scsi dir to avoid being influenced by musl_copy_inc_scsi output 301570af302Sopenharmony_ci foreach(file, uapi_scsi_files) { 302570af302Sopenharmony_ci copy("copy_uapi_scsi_${file}") { 303570af302Sopenharmony_ci sources += [ "${musl_uapi_dir}/scsi/${file}" ] 304570af302Sopenharmony_ci outputs += [ "${target_out_dir}/${musl_inc_out_dir}/scsi/${file}" ] 305570af302Sopenharmony_ci } 306570af302Sopenharmony_ci deps += [ ":copy_uapi_scsi_${file}" ] 307570af302Sopenharmony_ci } 308570af302Sopenharmony_ci } 309570af302Sopenharmony_ci 310570af302Sopenharmony_ci copy("copy_uapi_asm") { 311570af302Sopenharmony_ci if (uapi_from == "local") { 312570af302Sopenharmony_ci if ("${musl_arch}" == "arm") { 313570af302Sopenharmony_ci file_name = "asm-arm" 314570af302Sopenharmony_ci } else if ("${musl_arch}" == "riscv64") { 315570af302Sopenharmony_ci file_name = "asm-riscv" 316570af302Sopenharmony_ci } else if ("${musl_arch}" == "loongarch64") { 317570af302Sopenharmony_ci file_name = "asm-loongarch" 318570af302Sopenharmony_ci } else { # aarch64 and x86_64 use same file 319570af302Sopenharmony_ci file_name = "asm-arm64" 320570af302Sopenharmony_ci } 321570af302Sopenharmony_ci sources = [ "${musl_uapi_dir}/${file_name}/asm" ] 322570af302Sopenharmony_ci } else { 323570af302Sopenharmony_ci sources = [ "${musl_uapi_dir}/asm" ] 324570af302Sopenharmony_ci } 325570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/asm" ] 326570af302Sopenharmony_ci } 327570af302Sopenharmony_ci 328570af302Sopenharmony_ci group("copy_uapi") { 329570af302Sopenharmony_ci deps = [ ":copy_uapi_scsi" ] 330570af302Sopenharmony_ci 331570af302Sopenharmony_ci # We need do different processing for asm according to the source of uapi 332570af302Sopenharmony_ci deps += [ ":copy_uapi_asm" ] 333570af302Sopenharmony_ci foreach(file, uspi_files) { 334570af302Sopenharmony_ci deps += [ ":copy_uapi_${file}" ] 335570af302Sopenharmony_ci } 336570af302Sopenharmony_ci } 337570af302Sopenharmony_ci 338570af302Sopenharmony_ci copy("musl_copy_inc_bits") { 339570af302Sopenharmony_ci sources = [] 340570af302Sopenharmony_ci sources_orig = musl_inc_bits_files 341570af302Sopenharmony_ci foreach(s, sources_orig) { 342570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 343570af302Sopenharmony_ci } 344570af302Sopenharmony_ci outputs = 345570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/bits/{{source_file_part}}" ] 346570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 347570af302Sopenharmony_ci } 348570af302Sopenharmony_ci 349570af302Sopenharmony_ci copy("musl_copy_inc_arpa") { 350570af302Sopenharmony_ci sources = [] 351570af302Sopenharmony_ci sources_orig = musl_inc_arpa_files 352570af302Sopenharmony_ci foreach(s, sources_orig) { 353570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 354570af302Sopenharmony_ci } 355570af302Sopenharmony_ci outputs = 356570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/arpa/{{source_file_part}}" ] 357570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 358570af302Sopenharmony_ci } 359570af302Sopenharmony_ci 360570af302Sopenharmony_ci copy("musl_copy_inc_net") { 361570af302Sopenharmony_ci sources = [] 362570af302Sopenharmony_ci sources_orig = musl_inc_net_files 363570af302Sopenharmony_ci foreach(s, sources_orig) { 364570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 365570af302Sopenharmony_ci } 366570af302Sopenharmony_ci outputs = 367570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/net/{{source_file_part}}" ] 368570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 369570af302Sopenharmony_ci } 370570af302Sopenharmony_ci 371570af302Sopenharmony_ci copy("musl_copy_inc_netinet") { 372570af302Sopenharmony_ci sources = [] 373570af302Sopenharmony_ci sources_orig = musl_inc_netinet_files 374570af302Sopenharmony_ci foreach(s, sources_orig) { 375570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 376570af302Sopenharmony_ci } 377570af302Sopenharmony_ci outputs = 378570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/netinet/{{source_file_part}}" ] 379570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 380570af302Sopenharmony_ci } 381570af302Sopenharmony_ci 382570af302Sopenharmony_ci copy("musl_copy_inc_netpacket") { 383570af302Sopenharmony_ci sources = [] 384570af302Sopenharmony_ci sources_orig = musl_inc_netpacket_files 385570af302Sopenharmony_ci foreach(s, sources_orig) { 386570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 387570af302Sopenharmony_ci } 388570af302Sopenharmony_ci outputs = [ 389570af302Sopenharmony_ci "${target_out_dir}/${musl_inc_out_dir}/netpacket/{{source_file_part}}", 390570af302Sopenharmony_ci ] 391570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 392570af302Sopenharmony_ci } 393570af302Sopenharmony_ci 394570af302Sopenharmony_ci copy("musl_copy_inc_scsi") { 395570af302Sopenharmony_ci sources = [] 396570af302Sopenharmony_ci sources_orig = musl_inc_scsi_files 397570af302Sopenharmony_ci foreach(s, sources_orig) { 398570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 399570af302Sopenharmony_ci } 400570af302Sopenharmony_ci outputs = 401570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/scsi/{{source_file_part}}" ] 402570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 403570af302Sopenharmony_ci } 404570af302Sopenharmony_ci 405570af302Sopenharmony_ci copy("musl_copy_inc_sys") { 406570af302Sopenharmony_ci sources = [] 407570af302Sopenharmony_ci sources_orig = musl_inc_sys_files 408570af302Sopenharmony_ci foreach(s, sources_orig) { 409570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 410570af302Sopenharmony_ci } 411570af302Sopenharmony_ci outputs = 412570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/sys/{{source_file_part}}" ] 413570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 414570af302Sopenharmony_ci } 415570af302Sopenharmony_ci 416570af302Sopenharmony_ci copy("musl_copy_inc_trace") { 417570af302Sopenharmony_ci sources = [] 418570af302Sopenharmony_ci sources_orig = musl_inc_trace_files 419570af302Sopenharmony_ci foreach(s, sources_orig) { 420570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 421570af302Sopenharmony_ci } 422570af302Sopenharmony_ci outputs = 423570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/trace/{{source_file_part}}" ] 424570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 425570af302Sopenharmony_ci } 426570af302Sopenharmony_ci 427570af302Sopenharmony_ci copy("musl_copy_inc_info") { 428570af302Sopenharmony_ci sources = [] 429570af302Sopenharmony_ci sources_orig = musl_inc_info_files 430570af302Sopenharmony_ci foreach(s, sources_orig) { 431570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 432570af302Sopenharmony_ci } 433570af302Sopenharmony_ci outputs = 434570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/info/{{source_file_part}}" ] 435570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 436570af302Sopenharmony_ci } 437570af302Sopenharmony_ci 438570af302Sopenharmony_ci copy("musl_copy_inc_fortify") { 439570af302Sopenharmony_ci sources = [] 440570af302Sopenharmony_ci sources_orig = musl_inc_fortify_files 441570af302Sopenharmony_ci foreach(s, sources_orig) { 442570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 443570af302Sopenharmony_ci } 444570af302Sopenharmony_ci outputs = 445570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/fortify/{{source_file_part}}" ] 446570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 447570af302Sopenharmony_ci } 448570af302Sopenharmony_ci 449570af302Sopenharmony_ci copy("musl_copy_inc_root") { 450570af302Sopenharmony_ci sources = [] 451570af302Sopenharmony_ci sources_orig = musl_inc_root_files 452570af302Sopenharmony_ci foreach(s, sources_orig) { 453570af302Sopenharmony_ci sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 454570af302Sopenharmony_ci } 455570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/{{source_file_part}}" ] 456570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 457570af302Sopenharmony_ci } 458570af302Sopenharmony_ci 459570af302Sopenharmony_ci copy("musl_copy_inc_hook") { 460570af302Sopenharmony_ci sources = musl_inc_hook_files 461570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/{{source_file_part}}" ] 462570af302Sopenharmony_ci } 463570af302Sopenharmony_ci 464570af302Sopenharmony_ci group("FreeBSD_copy") { 465570af302Sopenharmony_ci deps = [ 466570af302Sopenharmony_ci ":FreeBSD_headers", 467570af302Sopenharmony_ci ":FreeBSD_sys_headers", 468570af302Sopenharmony_ci ] 469570af302Sopenharmony_ci } 470570af302Sopenharmony_ci 471570af302Sopenharmony_ci copy("FreeBSD_headers") { 472570af302Sopenharmony_ci sources = freebsd_headers 473570af302Sopenharmony_ci outputs = [ "${target_out_dir}/${musl_inc_out_dir}/{{source_file_part}}" ] 474570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 475570af302Sopenharmony_ci } 476570af302Sopenharmony_ci 477570af302Sopenharmony_ci copy("FreeBSD_sys_headers") { 478570af302Sopenharmony_ci sources = freebsd_sys_headers 479570af302Sopenharmony_ci outputs = 480570af302Sopenharmony_ci [ "${target_out_dir}/${musl_inc_out_dir}/sys/{{source_file_part}}" ] 481570af302Sopenharmony_ci deps = [ ":create_porting_src" ] 482570af302Sopenharmony_ci } 483570af302Sopenharmony_ci 484570af302Sopenharmony_ci group("libctest") { 485570af302Sopenharmony_ci testonly = true 486570af302Sopenharmony_ci deps = [ "libc-test:musl_libc_test" ] 487570af302Sopenharmony_ci } 488570af302Sopenharmony_ci 489570af302Sopenharmony_ci group("benchmark-musl") { 490570af302Sopenharmony_ci testonly = true 491570af302Sopenharmony_ci deps = [ "Benchmark/musl:benchmark_musl_group" ] 492570af302Sopenharmony_ci } 493570af302Sopenharmony_ci 494570af302Sopenharmony_ci static_and_shared_libs_template("static") { 495570af302Sopenharmony_ci musl_use_flto = false 496570af302Sopenharmony_ci musl_use_gwp_asan = false 497570af302Sopenharmony_ci } 498570af302Sopenharmony_ci 499570af302Sopenharmony_ci static_and_shared_libs_template("shared") { 500570af302Sopenharmony_ci musl_use_flto = true 501570af302Sopenharmony_ci } 502570af302Sopenharmony_ci} 503