提交 268b62c8 编写于 作者: O openharmony_ci 提交者: Gitee

!70 update musl build target

Merge pull request !70 from weichaox/musl_src
import("musl_template.gni") import("musl_template.gni")
musl_abi_target = "soft"
group("musl_all") { group("musl_all") {
deps = [ deps = [
":musl_headers", ":a7_hard_neon_libs",
":soft_libs",
":a7_soft_libs", ":a7_soft_libs",
":a7_softfp_neon_libs", ":a7_softfp_neon_libs",
":a7_hard_neon_libs", ":musl_headers",
":soft_libs",
] ]
} }
musl_libs("soft") { group("musl_libs") {
deps = [
":${musl_abi_target}_libs",
":musl_headers",
]
}
musl_libs("soft_libs") {
target_abi = "soft" target_abi = "soft"
} }
musl_libs("a7_soft") { musl_libs("a7_soft_libs") {
target_abi = "a7_soft" target_abi = "a7_soft"
} }
musl_libs("a7_softfp_neon") { musl_libs("a7_softfp_neon_libs") {
target_abi = "a7_softfp_neon-vfpv4" target_abi = "a7_softfp_neon-vfpv4"
} }
musl_libs("a7_hard_neon") { musl_libs("a7_hard_neon_libs") {
target_abi = "a7_hard_neon-vfpv4" target_abi = "a7_hard_neon-vfpv4"
} }
group("musl_headers") { group("musl_headers") {
deps = [ deps = [
":copy_uapi",
":create_alltypes_h", ":create_alltypes_h",
":create_syscall_h", ":create_syscall_h",
":create_version_h", ":create_version_h",
...@@ -39,16 +49,13 @@ group("musl_headers") { ...@@ -39,16 +49,13 @@ group("musl_headers") {
":musl_copy_inc_root", ":musl_copy_inc_root",
":musl_copy_inc_scsi", ":musl_copy_inc_scsi",
":musl_copy_inc_sys", ":musl_copy_inc_sys",
":copy_uapi",
] ]
} }
action("create_porting_src") { action("create_porting_src") {
script = "scripts/porting.sh" script = "scripts/porting.sh"
sources = [ sources = [ "//third_party/musl" ]
"//third_party/musl",
]
outdir = [ "${target_out_dir}/${musl_ported_dir}" ] outdir = [ "${target_out_dir}/${musl_ported_dir}" ]
...@@ -97,8 +104,8 @@ action("create_alltypes_h") { ...@@ -97,8 +104,8 @@ action("create_alltypes_h") {
outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/alltypes.h" ] outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/alltypes.h" ]
sources = [ sources = [ "${target_out_dir}/${musl_ported_dir}/tools/mkalltypes.sed" ]
"${target_out_dir}/${musl_ported_dir}/tools/mkalltypes.sed", sources += [
"${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/alltypes.h.in", "${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/alltypes.h.in",
"${target_out_dir}/${musl_ported_dir}/include/alltypes.h.in", "${target_out_dir}/${musl_ported_dir}/include/alltypes.h.in",
] ]
...@@ -131,7 +138,9 @@ action("create_syscall_h") { ...@@ -131,7 +138,9 @@ action("create_syscall_h") {
outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/syscall.h" ] outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/syscall.h" ]
sources = [ "${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/syscall.h.in" ] sources = [
"${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/syscall.h.in",
]
args = rebase_path(sources, root_build_dir) args = rebase_path(sources, root_build_dir)
args += rebase_path(outputs, root_build_dir) args += rebase_path(outputs, root_build_dir)
......
...@@ -2,25 +2,17 @@ import("//build/ohos.gni") ...@@ -2,25 +2,17 @@ import("//build/ohos.gni")
import("musl_src.gni") import("musl_src.gni")
template("musl_libs") { template("musl_libs") {
no_default_deps = true no_default_deps = true
forward_variables_from(invoker, ["target_abi"]) forward_variables_from(invoker, [ "target_abi" ])
abi_prefix = "${target_name}" abi_prefix = target_abi
porting_deps = [
"//third_party/musl:create_porting_src",
"//third_party/musl:create_alltypes_h",
"//third_party/musl:create_syscall_h",
"//third_party/musl:create_version_h",
]
if (target_abi == "soft") { if (target_abi == "soft") {
static_lib_out_dir = "usr/lib/${musl_target_triple}" _libs_path_prefix = "."
shared_lib_out_dir = "." _libs_out_dir = "usr/lib/${musl_target_triple}"
} else { } else {
static_lib_out_dir = "usr/lib/${musl_target_triple}/${target_abi}" _libs_path_prefix = "${target_abi}"
shared_lib_out_dir = "${target_abi}" _libs_out_dir = "usr/lib/${musl_target_triple}/${target_abi}"
} }
musl_subarch = "" musl_subarch = ""
...@@ -28,10 +20,25 @@ template("musl_libs") { ...@@ -28,10 +20,25 @@ template("musl_libs") {
musl_subarch = "hf" musl_subarch = "hf"
} }
group("${abi_prefix}_libs") { 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",
]
group(target_name) {
deps = [ deps = [
":${abi_prefix}_create_linker",
":${abi_prefix}_libc_musl_shared", ":${abi_prefix}_libc_musl_shared",
":${abi_prefix}_libc_musl_static", ":${abi_prefix}_libc_musl_static",
":${abi_prefix}_musl_crt_libs",
]
}
group("${abi_prefix}_shared_libs") {
deps = [
":${abi_prefix}_libc_musl_shared",
":${abi_prefix}_libcrypt", ":${abi_prefix}_libcrypt",
":${abi_prefix}_libdl", ":${abi_prefix}_libdl",
":${abi_prefix}_libm", ":${abi_prefix}_libm",
...@@ -40,11 +47,31 @@ template("musl_libs") { ...@@ -40,11 +47,31 @@ template("musl_libs") {
":${abi_prefix}_librt", ":${abi_prefix}_librt",
":${abi_prefix}_libutil", ":${abi_prefix}_libutil",
":${abi_prefix}_libxnet", ":${abi_prefix}_libxnet",
":${abi_prefix}_musl_crt_install_action", ":${abi_prefix}_musl_crt_libs",
":${abi_prefix}_create_linker", ":musl_headers",
] ]
} }
group("${abi_prefix}_static_libs") {
deps = [
":${abi_prefix}_libc_musl_static",
":${abi_prefix}_libcrypt",
":${abi_prefix}_libdl",
":${abi_prefix}_libm",
":${abi_prefix}_libpthread",
":${abi_prefix}_libresolv",
":${abi_prefix}_librt",
":${abi_prefix}_libutil",
":${abi_prefix}_libxnet",
":${abi_prefix}_musl_crt_libs",
":musl_headers",
]
}
group("${abi_prefix}_musl_crt_libs") {
deps = [ ":${abi_prefix}_musl_crt_install_action" ]
}
# part of default_compiler_configs from build/config/BUILDCONFIG.gn # part of default_compiler_configs from build/config/BUILDCONFIG.gn
musl_inherited_configs = [ musl_inherited_configs = [
"//build/config/compiler:afdo", "//build/config/compiler:afdo",
...@@ -132,9 +159,7 @@ template("musl_libs") { ...@@ -132,9 +159,7 @@ template("musl_libs") {
"-Wa,--noexecstack", "-Wa,--noexecstack",
] ]
cflags_all = cflags_basic + cflags_all = cflags_basic + cflags_c99fse + cflags_auto
cflags_c99fse +
cflags_auto
cflags = cflags_all cflags = cflags_all
...@@ -142,7 +167,8 @@ template("musl_libs") { ...@@ -142,7 +167,8 @@ template("musl_libs") {
defines = [ "BROKEN_VFP_ASM" ] defines = [ "BROKEN_VFP_ASM" ]
} }
dynamic_list = rebase_path("${target_out_dir}/${musl_ported_dir}/dynamic.list") dynamic_list =
rebase_path("${target_out_dir}/${musl_ported_dir}/dynamic.list")
ldflags = cflags_all ldflags = cflags_all
ldflags += [ ldflags += [
...@@ -268,7 +294,7 @@ template("musl_libs") { ...@@ -268,7 +294,7 @@ template("musl_libs") {
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
deps = [ deps = [
":${abi_prefix}_musl_src", ":${abi_prefix}_musl_src",
":${abi_prefix}_musl_src_nossp", ":${abi_prefix}_musl_src_nossp",
...@@ -279,64 +305,65 @@ template("musl_libs") { ...@@ -279,64 +305,65 @@ template("musl_libs") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "libm" output_name = "libm"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
static_library("${abi_prefix}_librt") { static_library("${abi_prefix}_librt") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "librt" output_name = "librt"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
static_library("${abi_prefix}_libpthread") { static_library("${abi_prefix}_libpthread") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "libpthread" output_name = "libpthread"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
static_library("${abi_prefix}_libcrypt") { static_library("${abi_prefix}_libcrypt") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "libcrypt" output_name = "libcrypt"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
static_library("${abi_prefix}_libutil") { static_library("${abi_prefix}_libutil") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "libutil" output_name = "libutil"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
static_library("${abi_prefix}_libresolv") { static_library("${abi_prefix}_libresolv") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "libresolv" output_name = "libresolv"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
static_library("${abi_prefix}_libxnet") { static_library("${abi_prefix}_libxnet") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "libxnet" output_name = "libxnet"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
static_library("${abi_prefix}_libdl") { static_library("${abi_prefix}_libdl") {
complete_static_lib = true complete_static_lib = true
configs -= musl_inherited_configs configs -= musl_inherited_configs
output_name = "libdl" output_name = "libdl"
output_dir = "${target_out_dir}/${static_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
} }
shared_library("${abi_prefix}_libc_musl_shared") { shared_library("${abi_prefix}_libc_musl_shared") {
output_dir = "${root_out_dir}/common/common/libc/${shared_lib_out_dir}" output_dir = "${target_out_dir}/${_libs_out_dir}"
output_name = "libc" output_name = "libc"
output_extension = "so" output_extension = "so"
libclang_rt_path = rebase_path("${runtime_lib_path}/${musl_target_triple}/${shared_lib_out_dir}") libclang_rt_path = rebase_path(
"${runtime_lib_path}/${musl_target_triple}/${_libs_path_prefix}")
ldflags = [ ldflags = [
"-nostdlib", "-nostdlib",
...@@ -345,9 +372,6 @@ template("musl_libs") { ...@@ -345,9 +372,6 @@ template("musl_libs") {
"-lclang_rt.builtins", "-lclang_rt.builtins",
] ]
remove_configs = musl_inherited_configs
remove_configs += [ "//build/config:default_libs" ]
configs -= musl_inherited_configs configs -= musl_inherited_configs
configs -= [ "//build/config:default_libs" ] configs -= [ "//build/config:default_libs" ]
configs += [ ":${abi_prefix}_musl_config" ] configs += [ ":${abi_prefix}_musl_config" ]
...@@ -363,39 +387,28 @@ template("musl_libs") { ...@@ -363,39 +387,28 @@ template("musl_libs") {
redir = "${root_out_dir}/obj" redir = "${root_out_dir}/obj"
script = "${target_out_dir}/${musl_ported_dir}/scripts/install.py" script = "${target_out_dir}/${musl_ported_dir}/scripts/install.py"
sources = [ sources = [
"${redir}/${target_out_dir}/${musl_ported_dir}/crt/${musl_arch}/${abi_prefix}_musl_crt/crti.o",
"${redir}/${target_out_dir}/${musl_ported_dir}/crt/${musl_arch}/${abi_prefix}_musl_crt/crtn.o",
"${redir}/${target_out_dir}/${musl_ported_dir}/crt/${abi_prefix}_musl_crt/Scrt1.o", "${redir}/${target_out_dir}/${musl_ported_dir}/crt/${abi_prefix}_musl_crt/Scrt1.o",
"${redir}/${target_out_dir}/${musl_ported_dir}/crt/${abi_prefix}_musl_crt/crt1.o", "${redir}/${target_out_dir}/${musl_ported_dir}/crt/${abi_prefix}_musl_crt/crt1.o",
"${redir}/${target_out_dir}/${musl_ported_dir}/crt/${abi_prefix}_musl_crt/rcrt1.o", "${redir}/${target_out_dir}/${musl_ported_dir}/crt/${abi_prefix}_musl_crt/rcrt1.o",
"${redir}/${target_out_dir}/${musl_ported_dir}/crt/${musl_arch}/${abi_prefix}_musl_crt/crti.o",
"${redir}/${target_out_dir}/${musl_ported_dir}/crt/${musl_arch}/${abi_prefix}_musl_crt/crtn.o",
] ]
outputs = [ "${target_out_dir}/${_libs_out_dir}/{{source_file_part}}" ]
outputs = [ "${target_out_dir}/${static_lib_out_dir}/{{source_file_part}}" ]
args = [ args = [
"--input", "--input",
"{{source}}", "{{source}}",
] ]
args += [ "--output" ] + rebase_path(outputs, root_build_dir) args += [ "--output" ] + rebase_path(outputs, root_build_dir)
deps = [ ":${abi_prefix}_musl_crt" ] deps = [ ":${abi_prefix}_musl_crt" ]
} }
action("${abi_prefix}_create_linker") { copy("${abi_prefix}_create_linker") {
script = "${target_out_dir}/${musl_ported_dir}/tools/install.sh"
sources = [ "${root_out_dir}/common/common/libc/${shared_lib_out_dir}/libc.so" ]
outputs = [ "${root_out_dir}/common/common/libc/${shared_lib_out_dir}/ld-musl-${musl_arch}${musl_subarch}.so.1" ]
args = [
"-D",
"-r",
]
args += rebase_path(sources)
args += rebase_path(outputs)
deps = [ ":${abi_prefix}_libc_musl_shared" ] deps = [ ":${abi_prefix}_libc_musl_shared" ]
}
# _libc_shared_outputs = get_target_outputs(":${abi_prefix}_libc_musl_shared")
_libc_shared_so = "${target_out_dir}/${_libs_out_dir}/libc.so"
sources = [ _libc_shared_so ]
_muls_linker_so = "${root_out_dir}/common/common/libc/${_libs_path_prefix}/ld-musl-${musl_arch}${musl_subarch}.so.1"
outputs = [ _muls_linker_so ]
}
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册