# Copyright 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/sanitizers/sanitizers.gni") declare_args() { if (current_cpu == "arm") { musl_arch = "arm" } else if (current_cpu == "arm64") { musl_arch = "aarch64" } else if (current_cpu == "x86_64" || current_cpu == "x64") { musl_arch = "x86_64" } else if (current_cpu == "mipsel") { musl_arch = "mips" } else if (current_cpu == "riscv64") { musl_arch = "riscv64" } # musl_root = "$root_out_dir/obj/third_party/musl" # musl_sub_arch = "" # musl_syslib_dir = "/system/bin" # musl_linker_extension = "so.1" } declare_args() { if ((defined(target_os) && target_os == "ohos") || (defined(ohos_kernel_type) && ohos_kernel_type == "linux")) { musl_target_os = "linux" if (musl_arch == "mips") { musl_target_triple = "mipsel-linux-ohos" } else { musl_target_triple = "${musl_arch}-linux-ohos" } } else if (defined(ohos_kernel_type) && ohos_kernel_type == "liteos_a") { musl_target_os = "liteos_a" musl_target_triple = "arm-liteos-ohos" } } declare_args() { if (is_llvm_build) { runtime_lib_path = "//out/llvm-install/lib/clang/15.0.4/lib" } else { runtime_lib_path = "//prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/lib" } if (!is_llvm_build) { use_gwp_asan = true } else { use_gwp_asan = false } user_custom_libc = true use_jemalloc = false musl_malloc_plugin = "" use_jemalloc_dfx_intf = false use_jemalloc_recycle_func = false use_pthread_cancel = false musl_ported_dir = "intermidiates/${musl_target_os}/musl_src_ported" musl_inc_out_dir = "usr/include/${musl_target_triple}" uapi_dir = "//kernel/linux/patches/linux-5.10/prebuilts/usr/include" linux_kernel_dir = "//kernel/linux/linux-5.10" musl_dir = "//third_party/musl" musl_porting_dir = "//third_party/musl/porting/linux/user" # if (is_asan) { # musl_linker_asan_name = # musl_syslib_dir + "/ld-musl-${musl_arch}${musl_sub_arch}-asan" # musl_ldso_path = # musl_syslib_dir + "/ld-musl-${musl_arch}${musl_sub_arch}-asan." + # musl_linker_extension # } else { # musl_ldso_path = # musl_syslib_dir + "/ld-musl-${musl_arch}${musl_sub_arch}." + # musl_linker_extension # } } declare_args() { if (!is_standard_system) { enable_musl_log = false } musl_iterate_and_stats_api = false musl_secure_level = 1 } declare_args() { if (!defined(product_path)) { product_path = "" } } declare_args() { # for unit test musl_unit_test_flag = false } declare_args() { musl_ld128_flag = false if (musl_arch == "x86_64") { musl_ld128_flag = true } } declare_args() { # for multi lib musl_target_multilib = "" } declare_args() { # whether clang select the legacy encoding is_legacy = false } declare_args() { use_flto = false } # part of default_compiler_configs from build/config/BUILDCONFIG.gn musl_inherited_configs = [ "//build/config/compiler:afdo", "//build/config/compiler:afdo_optimize_size", "//build/config/compiler:compiler", "//build/config/compiler:compiler_arm_fpu", "//build/config/compiler:compiler_arm_thumb", "//build/config/compiler:chromium_code", "//build/config/compiler:default_include_dirs", "//build/config/compiler:default_optimization", "//build/config/compiler:default_stack_frames", "//build/config/compiler:default_symbols", "//build/config/compiler:export_dynamic", "//build/config/compiler:no_exceptions", "//build/config/compiler:no_rtti", "//build/config/compiler:runtime_library", "//build/config/compiler:thin_archive", "//build/config/sanitizers:default_sanitizer_flags", ] porting_deps = [ "//third_party/musl:create_alltypes_h", "//third_party/musl:create_porting_src", "//third_party/musl:create_syscall_h", "//third_party/musl:create_version_h", ]