391 lines
11 KiB
Diff
391 lines
11 KiB
Diff
From a7244bd742f999e7ec8462797c7e7a393a844a7b Mon Sep 17 00:00:00 2001
|
|
From: hmilylmk <liumingkai@huawei.com>
|
|
Date: Sat, 13 Aug 2022 08:21:36 +0800
|
|
Subject: [PATCH] add dsoftbus build support for embedded env
|
|
|
|
Signed-off-by: hmilylmk <liumingkai@huawei.com>
|
|
---
|
|
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
|
|
|