From 31d7fb54e6edc1c963b810f343fee1818b9123b0 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Mon, 7 Dec 2020 11:21:00 -0500 Subject: [PATCH 01/13] initialize setup_tools.sh --- tools/setup_tools.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 tools/setup_tools.sh diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh new file mode 100755 index 0000000000..34dad5403c --- /dev/null +++ b/tools/setup_tools.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Copyright (C) [2020] Futurewei Technologies, Inc. All rights reverved. +# +# Licensed under the Mulan Permissive Software License v2. +# You can use this software according to the terms and conditions of the MulanPSL - 2.0. +# You may obtain a copy of MulanPSL - 2.0 at: +# +# https://opensource.org/licenses/MulanPSL-2.0 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR +# FIT FOR A PARTICULAR PURPOSE. +# See the MulanPSL - 2.0 for more details. +# + +set -e + +if [ ! -f ./ninja_1.9.0/ninja ]; then + mkdir -p ./ninja_1.9.0 + cd ./ninja_1.9.0 || exit 3 + wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip + unzip ninja-linux.zip + cd .. + echo Downloaded ninja 1.9.0. +fi + +if [ ! -f ./gn/gn ]; then + git clone https://gitee.com/xlnb/gn_binary.git gn + chmod +x gn/gn + echo Downloaded gn. +fi + +if [ ! -f ./clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang ]; then + wget https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz + echo unpacking clang+llvm ... + tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz + echo Downloaded clang+llvm. +fi + -- Gitee From f6db8d368b781cc058fa6907527e1f3a5cd01c3c Mon Sep 17 00:00:00 2001 From: Yan Chen Date: Mon, 7 Dec 2020 09:24:18 -0800 Subject: [PATCH 02/13] Correct typo 'buile' to 'build' --- doc/cn/DevelopmentPreparation.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/cn/DevelopmentPreparation.md b/doc/cn/DevelopmentPreparation.md index d2caa762b6..eb311d4fba 100644 --- a/doc/cn/DevelopmentPreparation.md +++ b/doc/cn/DevelopmentPreparation.md @@ -33,7 +33,7 @@ LLVM下载地址:http://releases.llvm.org/download.html#8.0.0 CLANG_PATH = "${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04" ``` -* 修改`openarkcompiler/buile/core/maple_variables.mk`文件,将`CLANG_PATH`配置为clang编译器所在路径,例如: +* 修改`openarkcompiler/build/core/maple_variables.mk`文件,将`CLANG_PATH`配置为clang编译器所在路径,例如: ``` CLANG_PATH := ${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04 @@ -78,7 +78,7 @@ gcc-linaro-7.5.0下载地址:https://releases.linaro.org/components/toolchain/ GCC_LINARO_PATH = "${MAPLE_ROOT}/tools/gcc-linaro-7.5.0" ``` -* 修改`openarkcompiler/buile/core/maple_variables.mk`文件,将`GCC_LINARO_PATH`配置为gcc-linaro-7.5.0所在路径,例如: +* 修改`openarkcompiler/build/core/maple_variables.mk`文件,将`GCC_LINARO_PATH`配置为gcc-linaro-7.5.0所在路径,例如: ``` GCC_LINARO_PATH := ${MAPLE_ROOT}/tools/gcc-linaro-7.5.0 @@ -98,7 +98,7 @@ android-ndk-r21下载地址:https://developer.android.google.cn/ndk/downloads/ NDK_PATH = "${MAPLE_ROOT}/tools/android-ndk-r21" ``` -* 修改`openarkcompiler/buile/core/maple_variables.mk`文件,将`NDK_PATH`配置为android-ndk-r21所在路径,例如: +* 修改`openarkcompiler/build/core/maple_variables.mk`文件,将`NDK_PATH`配置为android-ndk-r21所在路径,例如: ``` NDK_PATH := ${MAPLE_ROOT}/tools/android-ndk-r21 @@ -116,7 +116,7 @@ AOSP下载地址:https://source.android.com/source/downloading/ * 将`openarkcompiler/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-all_intermediates/javalib.jar`拷贝到`openarkcompiler/libjava-core`目录,并命名为`java-core.jar`,同时码云上也提供了编译好的libcore的jar文件,你可以下载直接使用,下载链接`https://gitee.com/mirrors/java-core/`; * 在openarkcompiler/tools下新建链接gcc,并链接到AOSP的`openarkcompiler/android/prebuilts/gcc`; * 在openarkcompiler/tools下新建链接clang-r353983c,并链接到AOSP的`openarkcompiler/android/prebuilts/clang/host/linux-x86/clang-r353983c`; -* 修改`openarkcompiler/build/config.gni`和`openarkcompiler/buile/core/maple_variables.mk`中`ANDROID_GCC_PATH`和`ANDROID_CLANG_PATH`两个变量,配置为上述gcc和clang-r353982c的所在路径,例如: +* 修改`openarkcompiler/build/config.gni`和`openarkcompiler/build/core/maple_variables.mk`中`ANDROID_GCC_PATH`和`ANDROID_CLANG_PATH`两个变量,配置为上述gcc和clang-r353982c的所在路径,例如: config.gni -- Gitee From 34cf3c3330db8fce9ed134b5e951e3f62735e0b7 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Mon, 7 Dec 2020 12:46:04 -0500 Subject: [PATCH 03/13] use ninja_1.9.0 to be consistent with instructions in doc/ --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a96264b03d..8a7fefa370 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ endif HOST_ARCH := 64 MIR_JAVA := 1 GN := $(MAPLE_ROOT)/tools/gn/gn -NINJA := $(MAPLE_ROOT)/tools/ninja_1.10.0/ninja +NINJA := $(MAPLE_ROOT)/tools/ninja_1.9.0/ninja GN_OPTIONS := \ GN_INSTALL_PREFIX="$(MAPLE_ROOT)" \ -- Gitee From a8c8c1ff6d970946817aa6e253e866c8dc163d75 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Mon, 7 Dec 2020 17:48:58 -0500 Subject: [PATCH 04/13] update tools/setup_tools.sh --- .gitignore | 9 +++++++-- tools/setup_tools.sh | 48 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a0f745c087..09d0afd9b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,12 @@ +android +tools/android* tools/clang* -tools/ninja* +tools/gcc* tools/gn* +tools/icu* +tools/ninja* +tools/r8* +tools/release* build/logs* libjava-core output - diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index 34dad5403c..3138e6c4bb 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -34,7 +34,53 @@ fi if [ ! -f ./clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang ]; then wget https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz echo unpacking clang+llvm ... - tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz + tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz echo Downloaded clang+llvm. fi +if [ ! -f ./gcc-linaro-7.5.0/bin/aarch64-linux-gnu-gcc ]; then + wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz + echo unpacking gcc ... + tar xf gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz + mv gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu gcc-linaro-7.5.0 + echo Downloaded gcc aarch64 compiler. +fi + +if [ ! -f ./android-ndk-r21/ndk-build ]; then + wget https://dl.google.com/android/repository/android-ndk-r21d-linux-x86_64.zip + echo unpacking android ndk ... + unzip android-ndk-r21d-linux-x86_64.zip > /dev/null + mv android-ndk-r21d android-ndk-r21 + echo Downloaded android ndk. +fi + +# download andriod source +if [ ! -f ../android/Makefile ]; then + mkdir -p ../android + cd ../android + repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r35 + cd ../tools + echo Downloaded AOSP. +fi +# build android + +if [ ! -f ./icu-release-56-1/icu4c/source/runConfigureICU ]; then + wget https://github.com/unicode-org/icu/archive/release-56-1.tar.gz + tar zxf release-56-1.tar.gz + cd icu-release-56-1/icu4c/source + chmod +x runConfigureICU configure install-sh + ./runConfigureICU Linux/gcc + make + cd ../../.. + mkdir -p ../third_party/icu/lib/aarch64-linux-gnu + cp icu-release-56-1/icu4c/source/lib/libicuuc.so ../third_party/icu/lib/aarch64-linux-gnu/libicuuc.so.56 + cp icu-release-56-1/icu4c/source/lib/libicudata.so ../third_party/icu/lib/aarch64-linux-gnu/libicudata.so.56 + echo Downloaded icu. +fi + +if [ ! -f ../third_party/d8/lib/d8.jar ]; then + git clone https://gitee.com/xlnb/r8-d81513.git + mkdir -p ../third_party/d8/lib + cp r8-d81513/d8/lib/d8.jar ../third_party/d8/lib + echo Downloaded AOSP. +fi -- Gitee From ff6d3bd26af017ded55e02fcb7f2b8bdf3e66fbb Mon Sep 17 00:00:00 2001 From: Wen HU Date: Tue, 8 Dec 2020 19:38:58 -0500 Subject: [PATCH 05/13] for ardroid 10, we have two jar files to form libcore-all.dex --- build/core/libcore.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/core/libcore.mk b/build/core/libcore.mk index 58d99da3a1..35c41a1778 100644 --- a/build/core/libcore.mk +++ b/build/core/libcore.mk @@ -65,8 +65,8 @@ include $(MAPLE_BUILD_CORE)/extra.mk include $(MAPLE_BUILD_CORE)/mplcomb_dex.mk include $(MAPLE_BUILD_CORE)/dex2mpl.mk -$(APP_DEX): %.dex : $(D8) $(LIB_CORE_JAR) - $(D8) --min-api 39 --output . $(LIB_CORE_JAR) +$(APP_DEX): %.dex : $(D8) libart.jar oj.jar + $(D8) --min-api 39 --output . libart.jar oj.jar mv classes.dex $(APP_DEX) .PHONY: gen-def -- Gitee From 104243f6308385e3e667011c7186f4d60641bf61 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Tue, 8 Dec 2020 19:39:05 -0500 Subject: [PATCH 06/13] update setup_tools.sh for android 10 setup --- tools/setup_tools.sh | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index 3138e6c4bb..333f39b5df 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -59,10 +59,37 @@ if [ ! -f ../android/Makefile ]; then mkdir -p ../android cd ../android repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r35 + repo sync cd ../tools echo Downloaded AOSP. fi # build android +if [ ! -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar ]; then + cd ../android + . ./build/envsetup.sh + lunch 2 + make -j32 + cd ../tools + echo Built AOSP. +fi +# create java-core.jar +if [ ! -f ../libjava-core/libart.jar ]; then + mkdir -p ../libjava-core + cp -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-libart_intermediates/javalib.jar ../libjava-core/libart.jar + cp -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar ../libjava-core/oj.jar + (cd ../libjava-core; ../build/d8 --min-api 39 --output . libart.jar oj.jar; mv classes.dex libcore-all.dex) + echo Copied jar files. +fi + +if [ ! -L ./gcc ]; then + ln -s ../android/prebuilts/gcc . + echo Linked gcc. +fi + +if [ ! -L ./clang-r353983c ]; then + ln -s ../android/prebuilts/clang/host/linux-x86/clang-r353983c . + echo Linked clang. +fi if [ ! -f ./icu-release-56-1/icu4c/source/runConfigureICU ]; then wget https://github.com/unicode-org/icu/archive/release-56-1.tar.gz @@ -73,14 +100,14 @@ if [ ! -f ./icu-release-56-1/icu4c/source/runConfigureICU ]; then make cd ../../.. mkdir -p ../third_party/icu/lib/aarch64-linux-gnu - cp icu-release-56-1/icu4c/source/lib/libicuuc.so ../third_party/icu/lib/aarch64-linux-gnu/libicuuc.so.56 - cp icu-release-56-1/icu4c/source/lib/libicudata.so ../third_party/icu/lib/aarch64-linux-gnu/libicudata.so.56 + cp -f icu-release-56-1/icu4c/source/lib/libicuuc.so ../third_party/icu/lib/aarch64-linux-gnu/libicuuc.so.56 + cp -f icu-release-56-1/icu4c/source/lib/libicudata.so ../third_party/icu/lib/aarch64-linux-gnu/libicudata.so.56 echo Downloaded icu. fi if [ ! -f ../third_party/d8/lib/d8.jar ]; then git clone https://gitee.com/xlnb/r8-d81513.git mkdir -p ../third_party/d8/lib - cp r8-d81513/d8/lib/d8.jar ../third_party/d8/lib + cp -f r8-d81513/d8/lib/d8.jar ../third_party/d8/lib echo Downloaded AOSP. fi -- Gitee From 47dd02b530b9ea11ab724b733968970e4d8ea4ec Mon Sep 17 00:00:00 2001 From: Wen HU Date: Tue, 8 Dec 2020 19:39:09 -0500 Subject: [PATCH 07/13] update doc/cn/DevelopmentPreparation.md for android 10 two jar files --- doc/cn/DevelopmentPreparation.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/cn/DevelopmentPreparation.md b/doc/cn/DevelopmentPreparation.md index eb311d4fba..d7569c9477 100644 --- a/doc/cn/DevelopmentPreparation.md +++ b/doc/cn/DevelopmentPreparation.md @@ -18,6 +18,12 @@ sudo apt-get -y install openjdk-8-jdk git-core build-essential zlib1g-dev libc6- sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu ``` +## 安装 +``` +cd tools +./setup_tools.sh +``` + ## 安装Clang编译器并完成配置(用于编译方舟编译器代码) -- Gitee From 9030f4a676d21407819a1a5ac9e4d34e0c5c86c8 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Tue, 8 Dec 2020 19:48:15 -0500 Subject: [PATCH 08/13] update file names in doc --- doc/cn/DevelopmentPreparation.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/cn/DevelopmentPreparation.md b/doc/cn/DevelopmentPreparation.md index d7569c9477..917e2b8513 100644 --- a/doc/cn/DevelopmentPreparation.md +++ b/doc/cn/DevelopmentPreparation.md @@ -119,7 +119,8 @@ AOSP下载地址:https://source.android.com/source/downloading/ 下载AOSP并编译完成。 * 在openarkcompiler目录下新建链接`android/`,并链接到AOSP的根目录; -* 将`openarkcompiler/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-all_intermediates/javalib.jar`拷贝到`openarkcompiler/libjava-core`目录,并命名为`java-core.jar`,同时码云上也提供了编译好的libcore的jar文件,你可以下载直接使用,下载链接`https://gitee.com/mirrors/java-core/`; +* 将`openarkcompiler/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-libart_intermediates/javalib.jar`拷贝到`openarkcompiler/libjava-core/libart.jar` +* 将`openarkcompiler/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar`拷贝到`openarkcompiler/libjava-core/oj.jar` * 在openarkcompiler/tools下新建链接gcc,并链接到AOSP的`openarkcompiler/android/prebuilts/gcc`; * 在openarkcompiler/tools下新建链接clang-r353983c,并链接到AOSP的`openarkcompiler/android/prebuilts/clang/host/linux-x86/clang-r353983c`; * 修改`openarkcompiler/build/config.gni`和`openarkcompiler/build/core/maple_variables.mk`中`ANDROID_GCC_PATH`和`ANDROID_CLANG_PATH`两个变量,配置为上述gcc和clang-r353982c的所在路径,例如: @@ -146,7 +147,7 @@ ANDROID_GLANG_PATH := ${MAPLE_ROOT}/tools/clang-r353983c icu下载地址:http://site.icu-project.org/home -下载56.1版本的icu4c并编译完成,生成`libicuuc.so`和`libiucdata.so`,将两者放置到`openarkcompiler/third_party/icu/lib/aarch64-linux-gnu`路径下,并重命名为`libicuuc.so.56`和`libiucdata.so.56`。 +下载56.1版本的icu4c并编译完成,生成`libicuuc.so`和`libicudata.so`,将两者放置到`openarkcompiler/third_party/icu/lib/aarch64-linux-gnu`路径下,并重命名为`libicuuc.so.56`和`libicudata.so.56`。 ### libz下载并编译 -- Gitee From e3f5ef6c7fbdf00869c222ed5f61e7e0fedf6263 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Thu, 10 Dec 2020 23:18:11 -0500 Subject: [PATCH 09/13] update setup_tools.sh for icu and libz --- tools/setup_tools.sh | 69 ++++++++++++++++++++++++++++++-------------- 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index 333f39b5df..f892943769 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -16,29 +16,35 @@ set -e -if [ ! -f ./ninja_1.9.0/ninja ]; then +TOOLS=$(pwd) +MAPLE_ROOT=$TOOLS/.. + +if [ ! -f $TOOLS/ninja_1.9.0/ninja ]; then + cd $TOOLS mkdir -p ./ninja_1.9.0 cd ./ninja_1.9.0 || exit 3 wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip unzip ninja-linux.zip - cd .. echo Downloaded ninja 1.9.0. fi -if [ ! -f ./gn/gn ]; then +if [ ! -f $TOOLS/gn/gn ]; then + cd $TOOLS git clone https://gitee.com/xlnb/gn_binary.git gn chmod +x gn/gn echo Downloaded gn. fi -if [ ! -f ./clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang ]; then +if [ ! -f $TOOLS/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang ]; then + cd $TOOLS wget https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz echo unpacking clang+llvm ... tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz echo Downloaded clang+llvm. fi -if [ ! -f ./gcc-linaro-7.5.0/bin/aarch64-linux-gnu-gcc ]; then +if [ ! -f $TOOLS/gcc-linaro-7.5.0/bin/aarch64-linux-gnu-gcc ]; then + cd $TOOLS wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz echo unpacking gcc ... tar xf gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz @@ -46,7 +52,8 @@ if [ ! -f ./gcc-linaro-7.5.0/bin/aarch64-linux-gnu-gcc ]; then echo Downloaded gcc aarch64 compiler. fi -if [ ! -f ./android-ndk-r21/ndk-build ]; then +if [ ! -f $TOOLS/android-ndk-r21/ndk-build ]; then + cd $TOOLS wget https://dl.google.com/android/repository/android-ndk-r21d-linux-x86_64.zip echo unpacking android ndk ... unzip android-ndk-r21d-linux-x86_64.zip > /dev/null @@ -55,25 +62,26 @@ if [ ! -f ./android-ndk-r21/ndk-build ]; then fi # download andriod source -if [ ! -f ../android/Makefile ]; then +if [ ! -f $MAPLE_ROOT/android/Makefile ]; then + cd $TOOLS mkdir -p ../android cd ../android repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r35 repo sync - cd ../tools echo Downloaded AOSP. fi # build android -if [ ! -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar ]; then +if [ ! -f $MAPLE_ROOT/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar ]; then + cd $TOOLS cd ../android . ./build/envsetup.sh lunch 2 make -j32 - cd ../tools echo Built AOSP. fi # create java-core.jar -if [ ! -f ../libjava-core/libart.jar ]; then +if [ ! -f $MAPLE_ROOT/libjava-core/libart.jar ]; then + cd $TOOLS mkdir -p ../libjava-core cp -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-libart_intermediates/javalib.jar ../libjava-core/libart.jar cp -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar ../libjava-core/oj.jar @@ -82,30 +90,49 @@ if [ ! -f ../libjava-core/libart.jar ]; then fi if [ ! -L ./gcc ]; then + cd $TOOLS ln -s ../android/prebuilts/gcc . echo Linked gcc. fi if [ ! -L ./clang-r353983c ]; then + cd $TOOLS ln -s ../android/prebuilts/clang/host/linux-x86/clang-r353983c . echo Linked clang. fi -if [ ! -f ./icu-release-56-1/icu4c/source/runConfigureICU ]; then +if [ ! -f $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu/libicuuc.so ]; then + cd $TOOLS wget https://github.com/unicode-org/icu/archive/release-56-1.tar.gz tar zxf release-56-1.tar.gz - cd icu-release-56-1/icu4c/source - chmod +x runConfigureICU configure install-sh - ./runConfigureICU Linux/gcc - make - cd ../../.. - mkdir -p ../third_party/icu/lib/aarch64-linux-gnu - cp -f icu-release-56-1/icu4c/source/lib/libicuuc.so ../third_party/icu/lib/aarch64-linux-gnu/libicuuc.so.56 - cp -f icu-release-56-1/icu4c/source/lib/libicudata.so ../third_party/icu/lib/aarch64-linux-gnu/libicudata.so.56 + DIR=$TOOLS/icu-release-56-1/icu4c + export CROSS_BUILD_DIR=$DIR/linux + export ANDROID_NDK=$MAPLE_ROOT/tools/android-ndk-r21 + export ANDROID_TOOLCHAIN=$DIR/toolchain + export PATH=$ANDROID_TOOLCHAIN/bin:$PATH + mkdir -p $DIR/linux $DIR/aarch64 + (cd $DIR/linux; ../source/runConfigureICU Linux --prefix=$DIR/prebuilts; make -j16) + (cd $DIR; $ANDROID_NDK/build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=$ANDROID_TOOLCHAIN --toolchain=aarch64-linux-android-clang3.6) + (cd $DIR/aarch64; ../source/configure --prefix=$DIR/prebuilt --host=aarch64-linux-android CFLAGS='-Os' CXXFLAGS='--std=c++11' --enable-shared=yes -with-cross-build=$CROSS_BUILD_DIR \ + CC=aarch64-linux-android-clang CXX=aarch64-linux-android-clang++ AR=aarch64-linux-android-ar RINLIB=aarch64-linux-android-ranlib --with-data-packaging=archive; make -j16) + mkdir -p $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu + cp -f $TOOLS/icu-release-56-1/icu4c/aarch64/lib/libicuuc.so $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu/libicuuc.so + cp -f $TOOLS/icu-release-56-1/icu4c/aarch64/stubdata/libicudata.so $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu/libicudata.so echo Downloaded icu. fi -if [ ! -f ../third_party/d8/lib/d8.jar ]; then +if [ ! -f $MAPLE_ROOT/third_party/libdex/prebuilts/aarch64-linux-gnu/libz.so.1.2.8 ]; then + cd $TOOLS + wget http://ports.ubuntu.com/pool/main/z/zlib/zlib1g_1.2.8.dfsg-2ubuntu4_arm64.deb + mkdir -p libz_extract + dpkg --extract zlib1g_1.2.8.dfsg-2ubuntu4_arm64.deb libz_extract + mkdir -p ../third_party/libdex/prebuilts/aarch64-linux-gnu + cp -f libz_extract/lib/aarch64-linux-gnu/libz.so.1.2.8 ../third_party/libdex/prebuilts/aarch64-linux-gnu + echo Downloaded libz. +fi + +if [ ! -f $MAPLE_ROOT/third_party/d8/lib/d8.jar ]; then + cd $TOOLS git clone https://gitee.com/xlnb/r8-d81513.git mkdir -p ../third_party/d8/lib cp -f r8-d81513/d8/lib/d8.jar ../third_party/d8/lib -- Gitee From 94d0703e5fce6060b7491e4e22d407c9b30dfd03 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Fri, 11 Dec 2020 11:30:06 -0500 Subject: [PATCH 10/13] refine setup_tools.sh --- tools/setup_tools.sh | 51 ++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index f892943769..73d653c234 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -63,17 +63,15 @@ fi # download andriod source if [ ! -f $MAPLE_ROOT/android/Makefile ]; then - cd $TOOLS - mkdir -p ../android - cd ../android + mkdir -p $MAPLE_ROOT/android + cd $MAPLE_ROOT/android repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r35 repo sync echo Downloaded AOSP. fi # build android -if [ ! -f $MAPLE_ROOT/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar ]; then - cd $TOOLS - cd ../android +if [ ! -d $MAPLE_ROOT/android/out/target/product/generic_arm64/obj ]; then + cd $MAPLE_ROOT/android . ./build/envsetup.sh lunch 2 make -j32 @@ -81,23 +79,25 @@ if [ ! -f $MAPLE_ROOT/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIE fi # create java-core.jar if [ ! -f $MAPLE_ROOT/libjava-core/libart.jar ]; then - cd $TOOLS - mkdir -p ../libjava-core - cp -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-libart_intermediates/javalib.jar ../libjava-core/libart.jar - cp -f ../android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar ../libjava-core/oj.jar - (cd ../libjava-core; ../build/d8 --min-api 39 --output . libart.jar oj.jar; mv classes.dex libcore-all.dex) + mkdir -p $MAPLE_ROOT/libjava-core + JLIBDIR=$MAPLE_ROOT/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES + cp -f $JLIBDIR/core-libart_intermediates/javalib.jar $MAPLE_ROOT/libjava-core/libart.jar + cp -f $JLIBDIR/core-oj_intermediates/javalib.jar $MAPLE_ROOT/libjava-core/oj.jar + cd $MAPLE_ROOT/libjava-core + $MAPLE_ROOT/build/d8 --min-api 39 --output . libart.jar oj.jar + mv classes.dex libcore-all.dex echo Copied jar files. fi if [ ! -L ./gcc ]; then cd $TOOLS - ln -s ../android/prebuilts/gcc . + ln -s $MAPLE_ROOT/android/prebuilts/gcc . echo Linked gcc. fi if [ ! -L ./clang-r353983c ]; then cd $TOOLS - ln -s ../android/prebuilts/clang/host/linux-x86/clang-r353983c . + ln -s $MAPLE_ROOT/android/prebuilts/clang/host/linux-x86/clang-r353983c . echo Linked clang. fi @@ -112,12 +112,16 @@ if [ ! -f $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu/libicuuc.so ]; then export PATH=$ANDROID_TOOLCHAIN/bin:$PATH mkdir -p $DIR/linux $DIR/aarch64 (cd $DIR/linux; ../source/runConfigureICU Linux --prefix=$DIR/prebuilts; make -j16) - (cd $DIR; $ANDROID_NDK/build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=$ANDROID_TOOLCHAIN --toolchain=aarch64-linux-android-clang3.6) - (cd $DIR/aarch64; ../source/configure --prefix=$DIR/prebuilt --host=aarch64-linux-android CFLAGS='-Os' CXXFLAGS='--std=c++11' --enable-shared=yes -with-cross-build=$CROSS_BUILD_DIR \ - CC=aarch64-linux-android-clang CXX=aarch64-linux-android-clang++ AR=aarch64-linux-android-ar RINLIB=aarch64-linux-android-ranlib --with-data-packaging=archive; make -j16) - mkdir -p $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu - cp -f $TOOLS/icu-release-56-1/icu4c/aarch64/lib/libicuuc.so $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu/libicuuc.so - cp -f $TOOLS/icu-release-56-1/icu4c/aarch64/stubdata/libicudata.so $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu/libicudata.so + (cd $DIR; $ANDROID_NDK/build/tools/make-standalone-toolchain.sh --platform=android-21 \ + --install-dir=$ANDROID_TOOLCHAIN --toolchain=aarch64-linux-android-clang3.6) + (cd $DIR/aarch64; ../source/configure --prefix=$DIR/prebuilt --host=aarch64-linux-android \ + CFLAGS='-Os' CXXFLAGS='--std=c++11' --enable-shared=yes -with-cross-build=$CROSS_BUILD_DIR \ + CC=aarch64-linux-android-clang CXX=aarch64-linux-android-clang++ AR=aarch64-linux-android-ar \ + RINLIB=aarch64-linux-android-ranlib --with-data-packaging=archive; make -j16) + AARCH64DIR=$MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu + mkdir -p $AARCH64DIR + cp -f $DIR/aarch64/lib/libicuuc.so $AARCH64DIR/libicuuc.so + cp -f $DIR/aarch64/stubdata/libicudata.so $AARCH64DIR/libicudata.so echo Downloaded icu. fi @@ -126,15 +130,16 @@ if [ ! -f $MAPLE_ROOT/third_party/libdex/prebuilts/aarch64-linux-gnu/libz.so.1.2 wget http://ports.ubuntu.com/pool/main/z/zlib/zlib1g_1.2.8.dfsg-2ubuntu4_arm64.deb mkdir -p libz_extract dpkg --extract zlib1g_1.2.8.dfsg-2ubuntu4_arm64.deb libz_extract - mkdir -p ../third_party/libdex/prebuilts/aarch64-linux-gnu - cp -f libz_extract/lib/aarch64-linux-gnu/libz.so.1.2.8 ../third_party/libdex/prebuilts/aarch64-linux-gnu + ZLIBDIR=$MAPLE_ROOT/third_party/libdex/prebuilts/aarch64-linux-gnu + mkdir -p $ZLIBDIR + cp -f libz_extract/lib/aarch64-linux-gnu/libz.so.1.2.8 $ZLIBDIR echo Downloaded libz. fi if [ ! -f $MAPLE_ROOT/third_party/d8/lib/d8.jar ]; then cd $TOOLS git clone https://gitee.com/xlnb/r8-d81513.git - mkdir -p ../third_party/d8/lib - cp -f r8-d81513/d8/lib/d8.jar ../third_party/d8/lib + mkdir -p $MAPLE_ROOT/third_party/d8/lib + cp -f r8-d81513/d8/lib/d8.jar $MAPLE_ROOT/third_party/d8/lib echo Downloaded AOSP. fi -- Gitee From 7eaf8f255cee3eacfbea69a9c14c1b7891aedc65 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Tue, 15 Dec 2020 14:14:08 -0500 Subject: [PATCH 11/13] switch to use ninja 1.10.0 --- Makefile | 2 +- doc/cn/DevelopmentPreparation.md | 2 +- doc/en/DevelopmentPreparation.md | 2 +- test/README.md | 4 ++-- tools/setup_tools.sh | 26 +++++++++++++++----------- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 8a7fefa370..70feed85b7 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ endif HOST_ARCH := 64 MIR_JAVA := 1 GN := $(MAPLE_ROOT)/tools/gn/gn -NINJA := $(MAPLE_ROOT)/tools/ninja_1.9.0/ninja +NINJA := $(MAPLE_ROOT)/tools/ninja/ninja GN_OPTIONS := \ GN_INSTALL_PREFIX="$(MAPLE_ROOT)" \ diff --git a/doc/cn/DevelopmentPreparation.md b/doc/cn/DevelopmentPreparation.md index 917e2b8513..801e9074a5 100644 --- a/doc/cn/DevelopmentPreparation.md +++ b/doc/cn/DevelopmentPreparation.md @@ -67,7 +67,7 @@ chmod 775 ninja ``` GN := ${MAPLE_ROOT}/tools/gn/gn -NINJA := ${MAPLE_ROOT}/tools/ninja_1.10.0/ninja +NINJA := ${MAPLE_ROOT}/tools/ninja/ninja ``` ## 安装gcc-linaro并完成配置(用于交叉编译方舟编译器代码) diff --git a/doc/en/DevelopmentPreparation.md b/doc/en/DevelopmentPreparation.md index f328c11a01..eef8c7d6cf 100644 --- a/doc/en/DevelopmentPreparation.md +++ b/doc/en/DevelopmentPreparation.md @@ -52,6 +52,6 @@ Open the openarkcompiler/Makefile file, and set the two variables GN and NINJA t ``` GN := ${MAPLE_ROOT}/tools/gn/gn -NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja +NINJA := ${MAPLE_ROOT}/tools/ninja/ninja ``` diff --git a/test/README.md b/test/README.md index 0cfe5f1040..7393a79763 100644 --- a/test/README.md +++ b/test/README.md @@ -61,13 +61,13 @@ level = INFO #### irbuild_test ``` -python3 test/main.py test/testsuite/irbuild_test --test_cfg=test/testsuit/irbuild_test/ -j20 -pFAIL +python3 test/main.py test/testsuite/irbuild_test --test_cfg=test/testsuite/irbuild_test/ -j20 -pFAIL ``` #### ouroboros ``` -python3 test/main.py test/testsuite/ouroboros --test_cfg=test/testsuit/ouroboros/ -j20 -pFAIL +python3 test/main.py test/testsuite/ouroboros --test_cfg=test/testsuite/ouroboros/ -j20 -pFAIL ``` 参数说明:指定参数会覆盖框架配置文件中的设置 diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index 73d653c234..2ef429fca1 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -18,14 +18,15 @@ set -e TOOLS=$(pwd) MAPLE_ROOT=$TOOLS/.. +echo MAPLE_ROOT: $MAPLE_ROOT -if [ ! -f $TOOLS/ninja_1.9.0/ninja ]; then +if [ ! -f $TOOLS/ninja/ninja ]; then cd $TOOLS - mkdir -p ./ninja_1.9.0 - cd ./ninja_1.9.0 || exit 3 - wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip + mkdir -p ./ninja + cd ./ninja || exit 3 + wget https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-linux.zip unzip ninja-linux.zip - echo Downloaded ninja 1.9.0. + echo Downloaded ninja. fi if [ ! -f $TOOLS/gn/gn ]; then @@ -89,15 +90,15 @@ if [ ! -f $MAPLE_ROOT/libjava-core/libart.jar ]; then echo Copied jar files. fi -if [ ! -L ./gcc ]; then +if [ ! -L $TOOLS/gcc ]; then cd $TOOLS - ln -s $MAPLE_ROOT/android/prebuilts/gcc . + ln -s ../android/prebuilts/gcc . echo Linked gcc. fi -if [ ! -L ./clang-r353983c ]; then +if [ ! -L $TOOLS/clang-r353983c ]; then cd $TOOLS - ln -s $MAPLE_ROOT/android/prebuilts/clang/host/linux-x86/clang-r353983c . + ln -s ../android/prebuilts/clang/host/linux-x86/clang-r353983c . echo Linked clang. fi @@ -120,8 +121,11 @@ if [ ! -f $MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu/libicuuc.so ]; then RINLIB=aarch64-linux-android-ranlib --with-data-packaging=archive; make -j16) AARCH64DIR=$MAPLE_ROOT/third_party/icu/lib/aarch64-linux-gnu mkdir -p $AARCH64DIR - cp -f $DIR/aarch64/lib/libicuuc.so $AARCH64DIR/libicuuc.so - cp -f $DIR/aarch64/stubdata/libicudata.so $AARCH64DIR/libicudata.so + cd $AARCH64DIR + cp -f $DIR/aarch64/lib/libicuuc.so libicuuc.so.56 + cp -f $DIR/aarch64/stubdata/libicudata.so libicudata.so.56 + ln -s libicuuc.so.56 libicuuc.so + ln -s libicudata.so.56 libicudata.so echo Downloaded icu. fi -- Gitee From cc2d669c24aedc16bd5038fe0ef4f79653da86d7 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Tue, 15 Dec 2020 12:12:20 -0800 Subject: [PATCH 12/13] add default build target irbuild as it is used for testing --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 70feed85b7..d6176b4bca 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,7 @@ java-core-def: install $(MAKE) gen-def OPT=$(OPT) DEBUG=$(DEBUG) OPS_ANDROID=$(OPS_ANDROID) .PHONY: install -install: maple dex2mpl_install +install: maple dex2mpl_install irbuild $(shell mkdir -p $(INSTALL_DIR)/ops/linker/; \ rsync -a -L $(MRT_ROOT)/maplert/linker/maplelld.so.lds $(INSTALL_DIR)/ops/linker/; \ rsync -a -L $(MAPLE_ROOT)/build/java2d8 $(INSTALL_DIR)/bin; \ -- Gitee From e835207a37068d2186b513f92c03bf3e12bfafc4 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Tue, 15 Dec 2020 13:04:39 -0800 Subject: [PATCH 13/13] update android directory location --- tools/setup_tools.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index 2ef429fca1..0a0f3e537e 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -18,6 +18,7 @@ set -e TOOLS=$(pwd) MAPLE_ROOT=$TOOLS/.. +ANDROID_ROOT=$MAPLE_ROOT/../android/android-10.0.0_r35 echo MAPLE_ROOT: $MAPLE_ROOT if [ ! -f $TOOLS/ninja/ninja ]; then @@ -63,16 +64,16 @@ if [ ! -f $TOOLS/android-ndk-r21/ndk-build ]; then fi # download andriod source -if [ ! -f $MAPLE_ROOT/android/Makefile ]; then - mkdir -p $MAPLE_ROOT/android - cd $MAPLE_ROOT/android +if [ ! -f $ANDROID_ROOT/Makefile ]; then + mkdir -p $ANDROID_ROOT + cd $ANDROID_ROOT repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r35 repo sync echo Downloaded AOSP. fi # build android -if [ ! -d $MAPLE_ROOT/android/out/target/product/generic_arm64/obj ]; then - cd $MAPLE_ROOT/android +if [ ! -d $ANDROID_ROOT/out/target/product/generic_arm64/obj ]; then + cd $ANDROID_ROOT . ./build/envsetup.sh lunch 2 make -j32 @@ -81,7 +82,7 @@ fi # create java-core.jar if [ ! -f $MAPLE_ROOT/libjava-core/libart.jar ]; then mkdir -p $MAPLE_ROOT/libjava-core - JLIBDIR=$MAPLE_ROOT/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES + JLIBDIR=$ANDROID_ROOT/out/target/product/generic_arm64/obj/JAVA_LIBRARIES cp -f $JLIBDIR/core-libart_intermediates/javalib.jar $MAPLE_ROOT/libjava-core/libart.jar cp -f $JLIBDIR/core-oj_intermediates/javalib.jar $MAPLE_ROOT/libjava-core/oj.jar cd $MAPLE_ROOT/libjava-core @@ -89,6 +90,9 @@ if [ ! -f $MAPLE_ROOT/libjava-core/libart.jar ]; then mv classes.dex libcore-all.dex echo Copied jar files. fi +if [ ! -d $MAPLE_ROOT/android ]; then + ln -s $ANDROID_ROOT $MAPLE_ROOT/android +fi if [ ! -L $TOOLS/gcc ]; then cd $TOOLS -- Gitee