From a7244bd742f999e7ec8462797c7e7a393a844a7b Mon Sep 17 00:00:00 2001 From: hmilylmk Date: Sat, 13 Aug 2022 08:21:36 +0800 Subject: [PATCH] add dsoftbus build support for embedded env Signed-off-by: hmilylmk --- build_scripts/build.sh | 9 ++++---- config/BUILDCONFIG.gn | 11 ++++----- config/compiler/compiler.gni | 6 +---- config/ohos/BUILD.gn | 32 +------------------------- config/ohos/abi.gni | 5 ----- config/ohos/config.gni | 4 ++-- config/ohos/musl.gni | 4 +++- core/gn/BUILD.gn | 35 ++--------------------------- loader/preloader/platforms.template | 4 ++-- ohos.gni | 7 ------ subsystem_config.json | 6 +++++ toolchain/linux/BUILD.gn | 8 +++++-- 12 files changed, 31 insertions(+), 100 deletions(-) diff --git a/build_scripts/build.sh b/build_scripts/build.sh index 3514b36..e2404ca 100755 --- a/build_scripts/build.sh +++ b/build_scripts/build.sh @@ -70,22 +70,22 @@ do shift done - if [[ "${source_root_dir}x" == "x" ]]; then echo "Error: source_root_dir cannot be empty." exit 1 fi + if [[ ! -d "${source_root_dir}" ]]; then echo "Error: source_root_dir is incorrect." exit 1 fi + if [[ "${product_name}x" == "x" ]]; then echo -e "\033[31mError: the product name should be specified!\033[0m" help exit 1 fi - case $(uname -s) in Darwin) HOST_DIR="darwin-x86" @@ -102,10 +102,9 @@ case $(uname -s) in esac # set python3 -PYTHON3=${source_root_dir}/prebuilts/python/${HOST_DIR}/3.8.5/bin/python3 - +PYTHON3=`which python` if [[ ! -f "${PYTHON3}" ]]; then - echo -e "\033[33m Please execute the build/prebuilts_download.sh \033[0m" + echo -e "\033[33m python3 not found, please check\033[0m" exit 1 fi diff --git a/config/BUILDCONFIG.gn b/config/BUILDCONFIG.gn index 98bb98b..9e016df 100755 --- a/config/BUILDCONFIG.gn +++ b/config/BUILDCONFIG.gn @@ -130,10 +130,7 @@ declare_args() { is_desktop_linux = current_os == "linux" # Set to true when compiling with the Clang compiler. - is_clang = current_os != "linux" || - (current_cpu != "s390x" && current_cpu != "s390" && - current_cpu != "ppc64" && current_cpu != "ppc" && - current_cpu != "mips" && current_cpu != "mips64") + is_clang = false # Allows the path to a custom target toolchain to be injected as a single # argument, and set as the default toolchain. @@ -154,7 +151,7 @@ declare_args() { } declare_args() { - use_musl = true + use_musl = false } asdk_libs_dir = "//prebuilts/asdk_libs" @@ -220,7 +217,7 @@ if (host_toolchain == "") { if (host_os == "linux") { if (target_os != "linux") { - host_toolchain = "//build/toolchain/linux:clang_$host_cpu" + host_toolchain = "//build/toolchain/linux:$host_cpu" } else if (is_clang) { host_toolchain = "//build/toolchain/linux:clang_$host_cpu" } else { @@ -250,7 +247,7 @@ _default_toolchain = "" if (target_os == "ohos") { assert(host_os == "linux" || host_os == "mac", "ohos builds are only supported on Linux and Mac hosts.") - _default_toolchain = "//build/toolchain/ohos:ohos_clang_$target_cpu" + _default_toolchain = "//build/toolchain/linux:$target_cpu" } else if (target_os == "linux") { if (is_clang) { _default_toolchain = "//build/toolchain/linux:clang_$target_cpu" diff --git a/config/compiler/compiler.gni b/config/compiler/compiler.gni index b77100a..ae45cc8 100755 --- a/config/compiler/compiler.gni +++ b/config/compiler/compiler.gni @@ -152,11 +152,7 @@ declare_args() { declare_args() { # Whether to use the gold linker from binutils instead of lld or bfd. - use_gold = !use_lld && - ((is_linux && (current_cpu == "x64" || current_cpu == "x86" || - current_cpu == "arm")) || - (is_ohos && (current_cpu == "x86" || current_cpu == "x64" || - current_cpu == "arm" || current_cpu == "arm64"))) + use_gold = false } # If it wasn't manually set, set to an appropriate default. diff --git a/config/ohos/BUILD.gn b/config/ohos/BUILD.gn index aa5ac7c..941cc2e 100755 --- a/config/ohos/BUILD.gn +++ b/config/ohos/BUILD.gn @@ -24,31 +24,17 @@ config("compiler") { "HAVE_SYS_UIO_H", ] - defines += [ - "__MUSL__", - "_LIBCPP_HAS_MUSL_LIBC", - "__BUILD_LINUX_WITH_CLANG", - ] - ldflags = [ "-Wl,--no-undefined", - "-Wl,--exclude-libs=libunwind_llvm.a", - "-Wl,--exclude-libs=libc++_static.a", # Don't allow visible symbols from libraries that contain # assembly code with symbols that aren't hidden properly. # http://crbug.com/448386 - "-Wl,--exclude-libs=libvpx_assembly_arm.a", ] - cflags += [ "--target=$abi_target" ] include_dirs = [ - "${musl_sysroot}/usr/include/${abi_target}", - "${clang_base_path}/include/c++/v1", ] - ldflags += [ "--target=$abi_target" ] - # Assign any flags set for the C compiler to asmflags so that they are sent # to the assembler. asmflags = cflags @@ -66,13 +52,6 @@ config("runtime_library") { "CHROMIUM_CXX_TWEAK_INLINES", # Saves binary size. ] - defines += [ - "__MUSL__", - "_LIBCPP_HAS_MUSL_LIBC", - "__BUILD_LINUX_WITH_CLANG", - ] - ldflags = [ "-nostdlib" ] - libs = [] # arm builds of libc++ starting in NDK r12 depend on unwind. @@ -80,20 +59,11 @@ config("runtime_library") { libs += [ "unwind" ] } - ldflags += [ - "-L" + - rebase_path("${clang_base_path}/lib/${abi_target}/c++", root_build_dir), - "-L" + rebase_path("${musl_sysroot}/usr/lib/${abi_target}", root_build_dir), - "-L" + rebase_path("${clang_base_path}/lib/clang/10.0.1/lib/${abi_target}", - root_build_dir), + ldflags = [ ] - ldflags += [ "-Wl,--dynamic-linker,/system/bin/ld-musl-${musl_arch}.so.1" ] libs += [ - rebase_path(libclang_rt_file), "c", - "c++", - "c++abi", ] if (current_cpu == "arm" && arm_version == 6) { diff --git a/config/ohos/abi.gni b/config/ohos/abi.gni index 57d1dca..600bc3e 100755 --- a/config/ohos/abi.gni +++ b/config/ohos/abi.gni @@ -61,8 +61,3 @@ if (target_cpu == "arm64") { ohos_secondary_abi_cpu = "x86" ohos_app_secondary_abi = "x86" } - -if (defined(ohos_secondary_abi_cpu)) { - ohos_secondary_abi_toolchain = - "//build/toolchain/ohos:ohos_clang_${ohos_secondary_abi_cpu}" -} diff --git a/config/ohos/config.gni b/config/ohos/config.gni index 072bce1..00c7311 100644 --- a/config/ohos/config.gni +++ b/config/ohos/config.gni @@ -26,11 +26,11 @@ if (is_ohos) { } if (current_cpu == "arm") { - abi_target = "arm-linux-ohosmusl" + abi_target = "" } else if (current_cpu == "x86") { abi_target = "" } else if (current_cpu == "arm64") { - abi_target = "aarch64-linux-ohosmusl" + abi_target = "" } else if (current_cpu == "x86_64") { abi_target = "" } else { diff --git a/config/ohos/musl.gni b/config/ohos/musl.gni index 2468ca8..f9cead9 100644 --- a/config/ohos/musl.gni +++ b/config/ohos/musl.gni @@ -16,4 +16,6 @@ if (use_musl){ musl_target = "//third_party/musl:musl_libs" musl_sysroot = get_label_info(musl_target, "target_out_dir") import("//third_party/musl/musl_config.gni") -} \ No newline at end of file +} else { + musl_sysroot = "" +} diff --git a/core/gn/BUILD.gn b/core/gn/BUILD.gn index 38d3cc9..cde44b1 100755 --- a/core/gn/BUILD.gn +++ b/core/gn/BUILD.gn @@ -86,41 +86,10 @@ if (product_name == "ohos-sdk") { deps = [ "//build/ohos/sdk:ohos_sdk" ] } } else { - group("make_all") { - deps = [ - ":images", - ":make_inner_kits", - ":packages", - ] - } - group("images") { - deps = [ "//build/ohos/images:make_images" ] - } - - group("packages") { - deps = [ "//build/ohos/packages:make_packages" ] - } - - group("make_inner_kits") { - deps = [ "$root_build_dir/build_configs:inner_kits" ] - } - - group("build_all_test_pkg") { - testonly = true deps = [ - "$root_build_dir/build_configs:parts_test", - "//test/developertest:make_temp_test", + "//foundation/communication/dsoftbus/core/frame:softbus_server_main", + "//foundation/communication/dsoftbus/sdk:softbus_client", ] } - - group("make_test") { - testonly = true - deps = [ ":build_all_test_pkg" ] - deps += [ "//build/ohos/packages:package_testcase_mlf" ] - deps += [ "//build/ohos/packages:package_testcase" ] - if (archive_component) { - deps += [ "//build/ohos/testfwk:archive_testcase" ] - } - } } diff --git a/loader/preloader/platforms.template b/loader/preloader/platforms.template index 5cad64d..7577fd6 100644 --- a/loader/preloader/platforms.template +++ b/loader/preloader/platforms.template @@ -4,13 +4,13 @@ { "target_os": "ohos", "target_cpu": "arm64", - "toolchain": "//build/toolchain/ohos:ohos_clang_arm64", + "toolchain": "//build/toolchain/linux:arm64", "parts_config": "./parts.json" }, { "target_os": "ohos", "target_cpu": "arm", - "toolchain": "//build/toolchain/ohos:ohos_clang_arm", + "toolchain": "//build/toolchain/linux:arm", "parts_config": "./parts.json" } ] diff --git a/ohos.gni b/ohos.gni index 77be836..a34baa3 100755 --- a/ohos.gni +++ b/ohos.gni @@ -11,19 +11,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//build/config/sanitizers/sanitizers.gni") -import("//build/ohos/ndk/ndk.gni") -import("//build/ohos/notice/notice.gni") -import("//build/ohos/sa_profile/sa_profile.gni") import("//build/ohos_var.gni") import("//build/toolchain/toolchain.gni") # import cxx base templates import("//build/templates/cxx/cxx.gni") -import("//build/ohos/ace/ace.gni") -import("//build/ohos/app/app.gni") - import("//build/templates/common/ohos_templates.gni") # import prebuilt templates diff --git a/subsystem_config.json b/subsystem_config.json index f04f29e..ebc0869 100644 --- a/subsystem_config.json +++ b/subsystem_config.json @@ -178,5 +178,11 @@ "path": "kernel/linux/build", "name": "kernel", "dir": "kernel/linux" + }, + "depend": { + "project":"openEuler/depend", + "path": "depend", + "name": "depend", + "dir": "depend" } } diff --git a/toolchain/linux/BUILD.gn b/toolchain/linux/BUILD.gn index 1a4c4e9..c811cf9 100755 --- a/toolchain/linux/BUILD.gn +++ b/toolchain/linux/BUILD.gn @@ -22,7 +22,8 @@ clang_toolchain("clang_arm64") { } gcc_toolchain("arm64") { - toolprefix = "aarch64-linux-gnu-" + tool_path = rebase_path("//toolchain/bin", root_build_dir) + toolprefix = "${tool_path}/aarch64-openeuler-linux-gnu-" cc = "${toolprefix}gcc" cxx = "${toolprefix}g++" @@ -31,6 +32,7 @@ gcc_toolchain("arm64") { ld = cxx readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" + strip = "${toolprefix}strip" toolchain_args = { current_cpu = "arm64" @@ -40,7 +42,8 @@ gcc_toolchain("arm64") { } gcc_toolchain("arm") { - toolprefix = "arm-linux-gnueabihf-" + tool_path = rebase_path("//toolchain/bin", root_build_dir) + toolprefix = "${tool_path}/arm-openeuler-linux-gnu-" cc = "${toolprefix}gcc" cxx = "${toolprefix}g++" @@ -49,6 +52,7 @@ gcc_toolchain("arm") { ld = cxx readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" + strip = "${toolprefix}strip" toolchain_args = { current_cpu = "arm" -- 2.34.1