15f9996aaSopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd. 25f9996aaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 35f9996aaSopenharmony_ci# you may not use this file except in compliance with the License. 45f9996aaSopenharmony_ci# You may obtain a copy of the License at 55f9996aaSopenharmony_ci# 65f9996aaSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 75f9996aaSopenharmony_ci# 85f9996aaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 95f9996aaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 105f9996aaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 115f9996aaSopenharmony_ci# See the License for the specific language governing permissions and 125f9996aaSopenharmony_ci# limitations under the License 135f9996aaSopenharmony_ci 145f9996aaSopenharmony_ciimport("//build/config/clang/clang.gni") 155f9996aaSopenharmony_ciimport("//build/config/ohos/musl.gni") 165f9996aaSopenharmony_ciimport("//build/ohos.gni") 175f9996aaSopenharmony_ci 185f9996aaSopenharmony_cigroup("musl_install") { 195f9996aaSopenharmony_ci deps = [ 205f9996aaSopenharmony_ci ":musl-libcxx.so", 215f9996aaSopenharmony_ci ":musl_ld_path_etc_cfg", 225f9996aaSopenharmony_ci "//third_party/musl:musl_libs", 235f9996aaSopenharmony_ci ] 245f9996aaSopenharmony_ci 255f9996aaSopenharmony_ci if (target_cpu == "riscv64") { 265f9996aaSopenharmony_ci deps += [ 275f9996aaSopenharmony_ci ":ld-musl-riscv64.so.1", 285f9996aaSopenharmony_ci ":musl-libc.so", 295f9996aaSopenharmony_ci ] 305f9996aaSopenharmony_ci } else { 315f9996aaSopenharmony_ci deps += [ ":ld-musl-arm.so.1" ] 325f9996aaSopenharmony_ci } 335f9996aaSopenharmony_ci} 345f9996aaSopenharmony_ci 355f9996aaSopenharmony_ciif (target_cpu == "riscv64") { 365f9996aaSopenharmony_ci ohos_prebuilt_shared_library("ld-musl-riscv64.so.1") { 375f9996aaSopenharmony_ci deps = [ "//third_party/musl:soft_create_linker" ] 385f9996aaSopenharmony_ci if (is_asan || is_tsan) { 395f9996aaSopenharmony_ci asan = "-asan" 405f9996aaSopenharmony_ci } else { 415f9996aaSopenharmony_ci asan = "" 425f9996aaSopenharmony_ci } 435f9996aaSopenharmony_ci 445f9996aaSopenharmony_ci _muls_linker_so = 455f9996aaSopenharmony_ci "${root_out_dir}/common/common/libc/ld-musl-${musl_arch}${asan}.so.1" 465f9996aaSopenharmony_ci source = _muls_linker_so 475f9996aaSopenharmony_ci install_enable = true 485f9996aaSopenharmony_ci install_images = [ 495f9996aaSopenharmony_ci "system", 505f9996aaSopenharmony_ci "updater", 515f9996aaSopenharmony_ci "ramdisk", 525f9996aaSopenharmony_ci ] 535f9996aaSopenharmony_ci subsystem_name = "build" 545f9996aaSopenharmony_ci part_name = "build_framework" 555f9996aaSopenharmony_ci module_install_dir = "lib" 565f9996aaSopenharmony_ci } 575f9996aaSopenharmony_ci} else { 585f9996aaSopenharmony_ci ohos_prebuilt_shared_library("ld-musl-arm.so.1") { 595f9996aaSopenharmony_ci deps = [ "//third_party/musl:soft_create_linker" ] 605f9996aaSopenharmony_ci if (is_asan || is_tsan) { 615f9996aaSopenharmony_ci asan = "-asan" 625f9996aaSopenharmony_ci } else { 635f9996aaSopenharmony_ci asan = "" 645f9996aaSopenharmony_ci } 655f9996aaSopenharmony_ci 665f9996aaSopenharmony_ci _musl_linker_so = 675f9996aaSopenharmony_ci "${root_out_dir}/common/common/libc/./ld-musl-${musl_arch}${asan}.so.1" 685f9996aaSopenharmony_ci source = _musl_linker_so 695f9996aaSopenharmony_ci install_enable = true 705f9996aaSopenharmony_ci install_images = [ 715f9996aaSopenharmony_ci "system", 725f9996aaSopenharmony_ci "updater", 735f9996aaSopenharmony_ci "ramdisk", 745f9996aaSopenharmony_ci ] 755f9996aaSopenharmony_ci if (target_cpu == "arm") { 765f9996aaSopenharmony_ci symlink_ext = [ "lib/libc.so" ] 775f9996aaSopenharmony_ci } else if (target_cpu == "arm64" || target_cpu == "x86_64") { 785f9996aaSopenharmony_ci symlink_ext = [ "lib64/libc.so" ] 795f9996aaSopenharmony_ci } 805f9996aaSopenharmony_ci subsystem_name = "build" 815f9996aaSopenharmony_ci part_name = "build_framework" 825f9996aaSopenharmony_ci module_install_dir = "lib" 835f9996aaSopenharmony_ci } 845f9996aaSopenharmony_ci} 855f9996aaSopenharmony_ci 865f9996aaSopenharmony_ciohos_prebuilt_shared_library("musl-libc.so") { 875f9996aaSopenharmony_ci deps = [ "//third_party/musl:soft_libc_musl_shared" ] 885f9996aaSopenharmony_ci source = "${musl_sysroot}/usr/lib/${musl_target_triple}/libc.so" 895f9996aaSopenharmony_ci install_images = [ 905f9996aaSopenharmony_ci "system", 915f9996aaSopenharmony_ci "updater", 925f9996aaSopenharmony_ci "ramdisk", 935f9996aaSopenharmony_ci ] 945f9996aaSopenharmony_ci subsystem_name = "build" 955f9996aaSopenharmony_ci part_name = "build_framework" 965f9996aaSopenharmony_ci innerapi_tags = [ "chipsetsdk" ] 975f9996aaSopenharmony_ci relative_install_dir = "" 985f9996aaSopenharmony_ci} 995f9996aaSopenharmony_ci 1005f9996aaSopenharmony_ciohos_prebuilt_etc("musl_ld_path_etc_cfg") { 1015f9996aaSopenharmony_ci if (target_cpu == "arm") { 1025f9996aaSopenharmony_ci source = "ld-musl-arm.path" 1035f9996aaSopenharmony_ci } else if (target_cpu == "riscv64") { 1045f9996aaSopenharmony_ci source = "ld-musl-riscv64.path" 1055f9996aaSopenharmony_ci } else { 1065f9996aaSopenharmony_ci source = "ld-musl-aarch64.path" 1075f9996aaSopenharmony_ci } 1085f9996aaSopenharmony_ci if (is_asan || is_tsan) { 1095f9996aaSopenharmony_ci output = string_replace(source, ".path", "-asan.path") 1105f9996aaSopenharmony_ci } 1115f9996aaSopenharmony_ci install_images = [ 1125f9996aaSopenharmony_ci "system", 1135f9996aaSopenharmony_ci "updater", 1145f9996aaSopenharmony_ci "ramdisk", 1155f9996aaSopenharmony_ci ] 1165f9996aaSopenharmony_ci subsystem_name = "build" 1175f9996aaSopenharmony_ci part_name = "build_framework" 1185f9996aaSopenharmony_ci} 1195f9996aaSopenharmony_ci 1205f9996aaSopenharmony_ciohos_prebuilt_shared_library("musl-libcxx.so") { 1215f9996aaSopenharmony_ci enable_strip = true 1225f9996aaSopenharmony_ci mini_debug = true 1235f9996aaSopenharmony_ci if (target_cpu == "arm") { 1245f9996aaSopenharmony_ci source = "${clang_base_path}/lib/arm-linux-ohos/libc++.so" 1255f9996aaSopenharmony_ci } else if (target_cpu == "arm64") { 1265f9996aaSopenharmony_ci source = "${clang_base_path}/lib/aarch64-linux-ohos/libc++.so" 1275f9996aaSopenharmony_ci } else if (target_cpu == "x86_64") { 1285f9996aaSopenharmony_ci source = "${clang_base_path}/lib/x86_64-linux-ohos/libc++.so" 1295f9996aaSopenharmony_ci } else if (target_cpu == "riscv64") { 1305f9996aaSopenharmony_ci source = "${clang_base_path}/lib/riscv64-linux-ohos/libc++.so" 1315f9996aaSopenharmony_ci } else if (target_cpu == "loongarch64") { 1325f9996aaSopenharmony_ci source = "${clang_base_path}/lib/loongarch64-linux-ohos/libc++.so" 1335f9996aaSopenharmony_ci } else { 1345f9996aaSopenharmony_ci source = "" 1355f9996aaSopenharmony_ci } 1365f9996aaSopenharmony_ci deps = [ ":musl-libcxx_unstripped_copy" ] 1375f9996aaSopenharmony_ci install_images = [ 1385f9996aaSopenharmony_ci "system", 1395f9996aaSopenharmony_ci "updater", 1405f9996aaSopenharmony_ci "ramdisk", 1415f9996aaSopenharmony_ci ] 1425f9996aaSopenharmony_ci subsystem_name = "build" 1435f9996aaSopenharmony_ci part_name = "build_framework" 1445f9996aaSopenharmony_ci innerapi_tags = [ "chipsetsdk" ] 1455f9996aaSopenharmony_ci relative_install_dir = "" 1465f9996aaSopenharmony_ci} 1475f9996aaSopenharmony_ci 1485f9996aaSopenharmony_cicopy("musl-libcxx_unstripped_copy") { 1495f9996aaSopenharmony_ci if (target_cpu == "arm") { 1505f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/arm-linux-ohos/libc++.so" ] 1515f9996aaSopenharmony_ci } else if (target_cpu == "arm64") { 1525f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/aarch64-linux-ohos/libc++.so" ] 1535f9996aaSopenharmony_ci } else if (target_cpu == "x86_64") { 1545f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/x86_64-linux-ohos/libc++.so" ] 1555f9996aaSopenharmony_ci } else if (target_cpu == "riscv64") { 1565f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/riscv64-linux-ohos/libc++.so" ] 1575f9996aaSopenharmony_ci } else if (target_cpu == "loongarch64") { 1585f9996aaSopenharmony_ci sources = [ "${clang_base_path}/lib/loongarch64-linux-ohos/libc++.so" ] 1595f9996aaSopenharmony_ci } else { 1605f9996aaSopenharmony_ci sources = [ "" ] 1615f9996aaSopenharmony_ci } 1625f9996aaSopenharmony_ci outputs = [ root_out_dir + "/lib.unstripped/clang/{{source_file_part}}" ] 1635f9996aaSopenharmony_ci} 164