diff --git a/build/config.gni b/build/config.gni index 83b682e89e8ac837e2ec6f1d0067329e18cd4dc7..b88e558b26cecda523771e4b43fad5ccd9d38686 100644 --- a/build/config.gni +++ b/build/config.gni @@ -14,11 +14,6 @@ # # Toolchain setup -if (OLD_OS == "1") { - CLANG_PATH = "${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04" -} else { - CLANG_PATH = "/usr" -} ANDROID_GCC_PATH = "${MAPLE_ROOT}/tools/gcc" ANDROID_CLANG_PATH = "${MAPLE_ROOT}/tools/clang-r353983c" GCC_LINARO_PATH = "${MAPLE_ROOT}/tools/gcc-linaro-7.5.0" @@ -30,10 +25,10 @@ if (OPS_ANDROID == 1) { GN_AR_COMPILER = "${ANDROID_CLANG_PATH}/bin/llvm-ar" GN_RANLIB_COMPILER = "${NDK_PATH}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib" } else { - GN_C_COMPILER = "${CLANG_PATH}/bin/clang" - GN_CXX_COMPILER = "${CLANG_PATH}/bin/clang++" - GN_AR_COMPILER = "${CLANG_PATH}/bin/llvm-ar" - GN_RANLIB_COMPILER = "${CLANG_PATH}/bin/llvm-ranlib" + GN_C_COMPILER = "${CLANG_PATH}/clang" + GN_CXX_COMPILER = "${CLANG_PATH}/clang++" + GN_AR_COMPILER = "${CLANG_PATH}/llvm-ar" + GN_RANLIB_COMPILER = "${CLANG_PATH}/llvm-ranlib" } target_toolchain = "//build/toolchain:clang" diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn index 5daacf85615b43f97c7d16c7fbb7bcf50187afe3..dc545010fd47d4165fcec1e923de7e1fe0447de0 100755 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -32,6 +32,8 @@ ANDROID_ROOT = "${MAPLE_ROOT}/android" AOSP_ROOT = "${MAPLE_ROOT}/third_party/aosp_modified" MAPLE_BUILD_TYPE = getenv("MAPLE_BUILD_TYPE") MAPLE_BUILD_OUTPUT = getenv("MAPLE_BUILD_OUTPUT") +CLANG_PATH = getenv("CLANG_PATH") +QEMU_PATH = getenv("QEMU_PATH") OLD_OS = getenv("OLD_OS") if (OLD_OS == "1") { DESIGNATOR="-Wno-gnu-designator" diff --git a/build/core/maple_variables.mk b/build/core/maple_variables.mk index 016ade458f4bd96ab9cba78edfd8f0cddce79da7..e6eeac30ac49c399f81c3a18e087a96fce24d894 100644 --- a/build/core/maple_variables.mk +++ b/build/core/maple_variables.mk @@ -18,13 +18,6 @@ LIB_CORE_PATH := $(MAPLE_BUILD_OUTPUT)/libjava-core LIB_CORE_JAR := $(LIB_CORE_PATH)/java-core.jar LIB_CORE_MPLT := $(LIB_CORE_PATH)/java-core.mplt -CLANG_PATH := $(MAPLE_ROOT)/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04 -ifdef OLD_OS - ifeq ($(OLD_OS), 0) - CLANG_PATH := /usr - endif -endif - ifndef OPS_ANDROID OPS_ANDROID := 0 endif @@ -63,7 +56,7 @@ LDS := $(MAPLE_ROOT)/src/mrt/maplert/linker/maplelld.so.lds DUPLICATE_DIR := $(MAPLE_ROOT)/src/mrt/codetricks/arch/arm64 ifeq ($(OPS_ANDROID), 0) - QEMU_CLANG_CPP := $(CLANG_PATH)/bin/clang++ + QEMU_CLANG_CPP := $(CLANG_PATH)/clang++ else QEMU_CLANG_CPP := $(ANDROID_CLANG_PATH)/bin/clang++ endif diff --git a/build/envsetup.sh b/build/envsetup.sh index 413a50e799bd1a013518011af32b6584a6ca18de..5e6a761b92b3c01ccfbb264650058df9a77ec740 100644 --- a/build/envsetup.sh +++ b/build/envsetup.sh @@ -45,18 +45,16 @@ lsb_release -d OS_VERSION=`lsb_release -r | sed -e "s/^[^0-9]*//" -e "s/\..*//"` if [ "$OS_VERSION" = "16" ] || [ "$OS_VERSION" = "18" ]; then OLD_OS=1 + CLANG_PATH=${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin + QEMU_PATH=/usr/bin else OLD_OS=0 + CLANG_PATH=/usr/bin + QEMU_PATH=${MAPLE_ROOT}/tools/qemu/package/usr/bin fi export OLD_OS=${OLD_OS} - -# workaround for current build -if [ "$#" -eq 0 ]; then - export MAPLE_BUILD_OUTPUT=${MAPLE_ROOT}/output - export MAPLE_EXECUTE_BIN=${MAPLE_ROOT}/output/bin - export MAPLE_DEBUG=0 - return -fi +export CLANG_PATH=${CLANG_PATH} +export QEMU_PATH=${QEMU_PATH} # support multiple ARCH and BUILD_TYPE diff --git a/build/jenkins/main.sh b/build/jenkins/main.sh index f128a23c5c84da29a357b98cc77e37961785e450..b904df65e09536da1e0fd82a2e334c7b717e48e5 100755 --- a/build/jenkins/main.sh +++ b/build/jenkins/main.sh @@ -39,7 +39,8 @@ function release_test { fi cd $MAPLE_ROOT - make testall + mm testall + make c_test } function main { diff --git a/doc/cn/DevelopmentPreparation.md b/doc/cn/DevelopmentPreparation.md index 8e4ca9feca4257f937ff49c9de6de208a28b02a4..8ce9fad155cb98cf6f511d4005ef56a34e1ce2b4 100644 --- a/doc/cn/DevelopmentPreparation.md +++ b/doc/cn/DevelopmentPreparation.md @@ -43,16 +43,10 @@ LLVM下载地址:http://releases.llvm.org/download.html#8.0.0 解压并放置到`openarkcompiler/tools`目录 -* 修改`openarkcompiler/build/config.gni`文件,将`CLANG_PATH`变量配置为clang编译器所在路径,例如: +* 修改`openarkcompiler/build/envsetup.sh`文件,将`CLANG_PATH`变量配置为clang编译器所在路径,例如: ``` -CLANG_PATH = "${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04" -``` - -* 修改`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 +CLANG_PATH = "${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin" ``` 其中${MAPLE_ROOT}为openarkcompiler源码根目录。 diff --git a/test/testsuite/run.py b/test/testsuite/run.py index 26f5f70382d85d93a91a693b0ddbbe8530f4921d..9785f41f160a29fe7328c2958ba36a7210d7b837 100644 --- a/test/testsuite/run.py +++ b/test/testsuite/run.py @@ -69,10 +69,7 @@ def construct_qemu_cmd(execute_cmd, execute_option): RUNTIME_SO = maple_out_path + "/ops/host-x86_64-" + execute_option["mrt_type"] APP_SO = os.getcwd() MPLSH = maple_out_path + "/ops/mplsh" - QEMU = "/usr/bin/qemu-aarch64" - if "OLD_OS" in os.environ.keys(): - if os.environ.get("OLD_OS") == "0": - QEMU = maple_root + "/tools/qemu/package/usr/bin/qemu-aarch64" + QEMU = os.environ.get("QEMU_PATH") + "/qemu-aarch64" execute_cmd["run_case"] = ( "{QEMU} " "-L /usr/aarch64-linux-gnu -E LD_LIBRARY_PATH={LIBZ_SO}:{RUNTIME_SO}:{APP_SO} " diff --git a/testsuite/driver/src/api/java2dex.py b/testsuite/driver/src/api/java2dex.py index fe7f703b06eda565517de98140575f0b8f017f2f..ae59511019d3fc86c8fd156a2e81a678e25d47c7 100644 --- a/testsuite/driver/src/api/java2dex.py +++ b/testsuite/driver/src/api/java2dex.py @@ -24,5 +24,5 @@ class Java2dex(ShellOperator): self.infile = infile def get_command(self, variables): - self.command = "${MAPLE_ROOT}/build/java2dex -o " + self.outfile + " -p " + ":".join(self.jar_file) + " -i " + ":".join(self.infile) + self.command = "bash ${MAPLE_ROOT}/build/java2dex -o " + self.outfile + " -p " + ":".join(self.jar_file) + " -i " + ":".join(self.infile) return super().get_final_command(variables) diff --git a/testsuite/driver/src/api/linker.py b/testsuite/driver/src/api/linker.py index 559049d05e02c76ad639d641593232eb9427be29..2bfecfc400065d5c3ea31eac18d36d09af070a39 100644 --- a/testsuite/driver/src/api/linker.py +++ b/testsuite/driver/src/api/linker.py @@ -22,5 +22,5 @@ class Linker(ShellOperator): self.lib = lib def get_command(self, variables): - self.command = "${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++ -g3 -O2 -x assembler-with-cpp -march=armv8-a -target aarch64-linux-gnu -c ${APP}.VtableImpl.s && ${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++ ${APP}.VtableImpl.o -L${OUT_ROOT}/aarch64-clang-release/ops/" + self.lib + " -g3 -O2 -march=armv8-a -target aarch64-linux-gnu -fPIC -shared -o ${APP}.so ${OUT_ROOT}/aarch64-clang-release/ops/mrt_module_init.o -fuse-ld=lld -rdynamic -lcore-all -lcommon-bridge -Wl,-z,notext -Wl,-T${OUT_ROOT}/aarch64-clang-release/ops/linker/maplelld.so.lds" + self.command = "${CLANG_PATH}/clang++ -g3 -O2 -x assembler-with-cpp -march=armv8-a -target aarch64-linux-gnu -c ${APP}.VtableImpl.s && ${CLANG_PATH}/clang++ ${APP}.VtableImpl.o -L${OUT_ROOT}/aarch64-clang-release/ops/" + self.lib + " -g3 -O2 -march=armv8-a -target aarch64-linux-gnu -fPIC -shared -o ${APP}.so ${OUT_ROOT}/aarch64-clang-release/ops/mrt_module_init.o -fuse-ld=lld -rdynamic -lcore-all -lcommon-bridge -Wl,-z,notext -Wl,-T${OUT_ROOT}/aarch64-clang-release/ops/linker/maplelld.so.lds" return super().get_final_command(variables) diff --git a/testsuite/driver/src/mod/O0.py b/testsuite/driver/src/mod/O0.py index 0cc39ed249f1fcdbca8eaed51c1f2a257c2d11ee..86d95bbe3ea9e44bbedc2ed4998396a58e90891d 100644 --- a/testsuite/driver/src/mod/O0.py +++ b/testsuite/driver/src/mod/O0.py @@ -52,7 +52,7 @@ O0 = { ], "run": [ Mplsh( - qemu="/usr/bin/qemu-aarch64", + qemu="${QEMU_PATH}/qemu-aarch64", qemu_libc="/usr/aarch64-linux-gnu", qemu_ld_lib=[ "${OUT_ROOT}/aarch64-clang-release/ops/third_party",