diff --git a/build/config.gni b/build/config.gni index b88e558b26cecda523771e4b43fad5ccd9d38686..7a75ad36047c9a672ce4ec6cc7de194829a8f7ed 100644 --- a/build/config.gni +++ b/build/config.gni @@ -25,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}/clang" - GN_CXX_COMPILER = "${CLANG_PATH}/clang++" - GN_AR_COMPILER = "${CLANG_PATH}/llvm-ar" - GN_RANLIB_COMPILER = "${CLANG_PATH}/llvm-ranlib" + GN_C_COMPILER = "${TOOL_BIN_PATH}/clang" + GN_CXX_COMPILER = "${TOOL_BIN_PATH}/clang++" + GN_AR_COMPILER = "${TOOL_BIN_PATH}/llvm-ar" + GN_RANLIB_COMPILER = "${TOOL_BIN_PATH}/llvm-ranlib" } target_toolchain = "//build/toolchain:clang" diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn index dc545010fd47d4165fcec1e923de7e1fe0447de0..53c57fcb220b809dd1c9f8b9cae721cfb240dab1 100755 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -32,8 +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") +TOOL_BIN_PATH = getenv("TOOL_BIN_PATH") +QEMU_PATH = getenv("TOOL_BIN_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 e6eeac30ac49c399f81c3a18e087a96fce24d894..36e09cbcbb6fc8170acf035b8583a66c12b84a41 100644 --- a/build/core/maple_variables.mk +++ b/build/core/maple_variables.mk @@ -56,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)/clang++ + QEMU_CLANG_CPP := $(TOOL_BIN_PATH)/clang++ else QEMU_CLANG_CPP := $(ANDROID_CLANG_PATH)/bin/clang++ endif diff --git a/build/envsetup.sh b/build/envsetup.sh index 5e6a761b92b3c01ccfbb264650058df9a77ec740..8ded25273e576accfd6f6ad75e5e0a593d8d8dfb 100644 --- a/build/envsetup.sh +++ b/build/envsetup.sh @@ -42,19 +42,13 @@ export GCOV_PREFIX_STRIP=7 # display OS version lsb_release -d +export TOOL_BIN_PATH=${MAPLE_ROOT}/tools/bin 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 + export OLD_OS=1 else - OLD_OS=0 - CLANG_PATH=/usr/bin - QEMU_PATH=${MAPLE_ROOT}/tools/qemu/package/usr/bin + export OLD_OS=0 fi -export OLD_OS=${OLD_OS} -export CLANG_PATH=${CLANG_PATH} -export QEMU_PATH=${QEMU_PATH} # support multiple ARCH and BUILD_TYPE @@ -99,7 +93,7 @@ echo "Build: $MAPLE_BUILD_TYPE" export MAPLE_BUILD_OUTPUT=${MAPLE_ROOT}/output/${MAPLE_BUILD_TYPE} export MAPLE_EXECUTE_BIN=${MAPLE_ROOT}/output/${MAPLE_BUILD_TYPE}/bin export TEST_BIN=${CASE_ROOT}/driver/script -export PATH=$PATH:${MAPLE_EXECUTE_BIN}:${TEST_BIN} +export PATH=${TOOL_BIN_PATH}:$PATH:${MAPLE_EXECUTE_BIN}:${TEST_BIN} if [ ! -f $MAPLE_ROOT/tools/qemu/package/usr/bin/qemu-aarch64 ] && [ "$OLD_OS" = "0" ]; then echo " " diff --git a/testsuite/driver/src/api/clangfe.py b/testsuite/driver/src/api/clangfe.py index 8ef7c70f59fc96d1ca6ebdbca2c17eb54fc92a21..22c16a53beb9ea84fde43a69701a559c60e01614 100644 --- a/testsuite/driver/src/api/clangfe.py +++ b/testsuite/driver/src/api/clangfe.py @@ -26,5 +26,5 @@ class Clangfe(ShellOperator): self.infile = infile def get_command(self, variables): - self.command = "${MAPLE_ROOT}/tools/open64_prebuilt/x86/aarch64/bin/clangfe -cc1 -emit-llvm -triple aarch64-linux-gnu -D__clang__ -D__BLOCKS__ -isystem /usr/aarch64-linux-gnu/include -isystem /usr/lib/gcc-cross/aarch64-linux-gnu/" + str(Clangfe.aarch64_linux_gnu_version) + "/include " + self.infile + self.command = "clangfe -cc1 -emit-llvm -triple aarch64-linux-gnu -D__clang__ -D__BLOCKS__ -isystem /usr/aarch64-linux-gnu/include -isystem /usr/lib/gcc-cross/aarch64-linux-gnu/" + str(Clangfe.aarch64_linux_gnu_version) + "/include " + 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 2bfecfc400065d5c3ea31eac18d36d09af070a39..54ba0453382e63d271a5e254063f040bb33534a8 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 = "${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" + self.command = "clang++ -g3 -O2 -x assembler-with-cpp -march=armv8-a -target aarch64-linux-gnu -c ${APP}.VtableImpl.s && 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 86d95bbe3ea9e44bbedc2ed4998396a58e90891d..e39134ec23bad368b817944e272caf1deb028da8 100644 --- a/testsuite/driver/src/mod/O0.py +++ b/testsuite/driver/src/mod/O0.py @@ -52,7 +52,7 @@ O0 = { ], "run": [ Mplsh( - qemu="${QEMU_PATH}/qemu-aarch64", + qemu="qemu-aarch64", qemu_libc="/usr/aarch64-linux-gnu", qemu_ld_lib=[ "${OUT_ROOT}/aarch64-clang-release/ops/third_party", diff --git a/testsuite/driver/src/mod/O2.py b/testsuite/driver/src/mod/O2.py index b5084aec61357c70e2ff295690a191d1897e646a..18dfb60bd8c3aca9d0503e7d0886093304eb26a9 100644 --- a/testsuite/driver/src/mod/O2.py +++ b/testsuite/driver/src/mod/O2.py @@ -52,7 +52,7 @@ O2 = { ], "run": [ Mplsh( - qemu="${QEMU_PATH}/qemu-aarch64", + qemu="qemu-aarch64", qemu_libc="/usr/aarch64-linux-gnu", qemu_ld_lib=[ "${OUT_ROOT}/aarch64-clang-release/ops/third_party", diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index a5a29d6153ef3bf764a036423367bba2d92c8461..f954989caabb00abd43d9c8f6ab0a1d44b1d8620 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -157,3 +157,19 @@ if [ ! -f $TOOLS/open64_prebuilt/x86/riscv64/bin/clangfe ]; then mv riscv riscv64 echo Downloaded open64_prebuilt. fi + +mkdir -p ${TOOL_BIN_PATH} +if [ "$OLD_OS" == "1" ]; then + ln -s -f ${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++ ${TOOL_BIN_PATH}/clang++ + ln -s -f ${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang ${TOOL_BIN_PATH}/clang + ln -s -f ${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar ${TOOL_BIN_PATH}/llvm-ar + ln -s -f ${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ranlib ${TOOL_BIN_PATH}/llvm-ranlib + ln -s -f /usr/bin/qemu-aarch64 ${TOOL_BIN_PATH}/qemu-aarch64 +else + ln -s -f /usr/bin/clang++ ${TOOL_BIN_PATH}/clang++ + ln -s -f /usr/bin/clang ${TOOL_BIN_PATH}/clang + ln -s -f /usr/bin/llvm-ar ${TOOL_BIN_PATH}/llvm-ar + ln -s -f /usr/bin/llvm-ranlib ${TOOL_BIN_PATH}/llvm-ranlib + ln -s -f ${MAPLE_ROOT}/tools/qemu/package/usr/bin/qemu-aarch64 ${TOOL_BIN_PATH}/qemu-aarch64 +fi +ln -s -f ${MAPLE_ROOT}/tools/open64_prebuilt/x86/aarch64/bin/clangfe ${TOOL_BIN_PATH}/clangfe \ No newline at end of file