diff --git a/Readme.md b/Readme.md index 5b654a957d363b2627b9000c7162dcf07e33eb0d..d96821acd641e7748286b2a8ab248f37cf50cdbc 100644 --- a/Readme.md +++ b/Readme.md @@ -43,9 +43,14 @@ Open the front end, back end, and compilation optimization of compilers. Support - make libcore - make testall +C example: +- make demo + ## OpenArkCompiler Incubator - FutureWei Mapleall https://gitee.com/openarkcompiler-incubator/mapleall - Maple Engine https://gitee.com/openarkcompiler-incubator/maple_engine +- Maple FrondEnd https://gitee.com/openarkcompiler-incubator/MapleFE +- Maple clang2mpl https://gitee.com/openarkcompiler-incubator/clang2mpl ## Related Documents diff --git a/build/envsetup.sh b/build/envsetup.sh index 8c72c48dedce128e5e33df2b4def6458993a1003..34945e340c67b75f5c1f8f305219d663b3fce756 100644 --- a/build/envsetup.sh +++ b/build/envsetup.sh @@ -92,6 +92,10 @@ 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} +if [ "$OLD_OS" = "1" ]; then + export LD_LIBRARY_PATH=${MAPLE_ROOT}/tools/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04/lib:$LD_LIBRARY_PATH +fi + if [ ! -f $MAPLE_ROOT/tools/qemu/package/usr/bin/qemu-aarch64 ] && [ "$OLD_OS" = "0" ]; then echo " " echo "!!! please run \"make setup\" to get proper qemu-aarch64" diff --git a/test/c_demo/README.md b/test/c_demo/README.md index 4158f26cc23a3acfee201a836715d07057db6727..3405632c66e760c1b6a97afe692c58a62d48c92f 100644 --- a/test/c_demo/README.md +++ b/test/c_demo/README.md @@ -21,10 +21,10 @@ example of Maple Compiler for C Language Besides maple compiler, included are processes using C front end tools: - 1. whirl2mpl - Front end using Open64 Whirl IR. - source code is available at https://gitee.com/open64ark/open64ark + 1. clang2mpl - Front end using clang AST + source code is available at https://gitee.com/openarkcompiler-incubator/clang2mpl #### 使用说明 run the following scripts for details - ../maple_aarch64_with_whirl2mpl.sh . printHuawei 1 1 + ../maple_aarch64_with_clang2mpl.sh . printHuawei 1 1 diff --git a/testsuite/driver/src/api/clang2mpl.py b/testsuite/driver/src/api/clang2mpl.py index dee77c273b4a7d70d836987637d9a805790502ec..5299461379750931a8c3354390aef013e1dcdb06 100644 --- a/testsuite/driver/src/api/clang2mpl.py +++ b/testsuite/driver/src/api/clang2mpl.py @@ -22,8 +22,6 @@ class Clang2mpl(ShellOperator): self.infile = infile def get_command(self, variables): - linaroDir = "${MAPLE_ROOT}/tools/gcc-linaro-7.5.0" - isystemFlags = "-isystem " + linaroDir + "/aarch64-linux-gnu/libc/usr/include -isystem " + linaroDir + "/lib/gcc/aarch64-linux-gnu/7.5.0/include" - clangFlags = "--target=aarch64-linux-elf -Wno-return-type -U__SIZEOF_INT128__ " + isystemFlags + clangFlags = "--target=aarch64-linux-elf -Wno-return-type -U__SIZEOF_INT128__ " self.command = "${MAPLE_EXECUTE_BIN}/clang2mpl --ascii " + self.infile + " -- " + clangFlags return super().get_final_command(variables) diff --git a/testsuite/driver/src/mode/CO0.py b/testsuite/driver/src/mode/CO0.py index ce77a51a0a39f64a1c75966927695edc77bd2939..b23f87e9ad9cfb171216e15f99ba14b5a07c21c7 100644 --- a/testsuite/driver/src/mode/CO0.py +++ b/testsuite/driver/src/mode/CO0.py @@ -40,7 +40,7 @@ CO0 = { ], "run": [ Shell( - "${TOOL_BIN_PATH}/qemu-aarch64 -L /usr/aarch64-linux-gnu/ ${APP}.out" + "${TOOL_BIN_PATH}/qemu-aarch64 -L ${MAPLE_ROOT}/tools/gcc-linaro-7.5.0/aarch64-linux-gnu/libc/ ${APP}.out" ) ] } diff --git a/testsuite/driver/src/mode/CO2.py b/testsuite/driver/src/mode/CO2.py index 1336993828f930f51ca0858cd70106c1944ee762..b191ba1d1b92f2e3aee15f8083ae0df4846a92ad 100644 --- a/testsuite/driver/src/mode/CO2.py +++ b/testsuite/driver/src/mode/CO2.py @@ -40,7 +40,7 @@ CO2 = { ], "run": [ Shell( - "${TOOL_BIN_PATH}/qemu-aarch64 -L /usr/aarch64-linux-gnu/ ${APP}.out" + "${TOOL_BIN_PATH}/qemu-aarch64 -L ${MAPLE_ROOT}/tools/gcc-linaro-7.5.0/aarch64-linux-gnu/libc/ ${APP}.out" ) ] } diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index d72a7d8cab0b14ebdd1a12e71f1d652718817f18..7516812573e6c99eff89a42d36db3c068fcbbc02 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -91,6 +91,16 @@ if [ ! -f $TOOLS/gcc-linaro-7.5.0/bin/aarch64-linux-gnu-gcc ]; then echo Downloaded gcc aarch64 compiler. fi +if [ ! -d $TOOLS/sysroot-glibc-linaro-2.25 ]; then + cd $TOOLS + echo Start wget sysroot-glibc-linaro-2.25 ... + wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/sysroot-glibc-linaro-2.25-2019.12-aarch64-linux-gnu.tar.xz + echo unpacking sysroot ... + tar xf sysroot-glibc-linaro-2.25-2019.12-aarch64-linux-gnu.tar.xz + mv sysroot-glibc-linaro-2.25-2019.12-aarch64-linux-gnu sysroot-glibc-linaro-2.25 + echo Downloaded aarch64 sysroot. +fi + if [ ! -f $MAPLE_ROOT/third_party/d8/lib/d8.jar ]; then cd $TOOLS echo Start clone d8 ... @@ -143,27 +153,10 @@ if [ ! -f $TOOLS/qemu/package/usr/bin/qemu-aarch64 ]; then echo Installed qemu-aarch64 fi -version=c3b1120 -if [ ! -f $TOOLS/open64_prebuilt/V_$version ]; then - cd $TOOLS - rm -rf open64_prebuilt - git clone --depth 1 https://gitee.com/open64ark/open64_prebuilt.git -fi -if [ ! -f $TOOLS/open64_prebuilt/x86/riscv64/bin/clangfe ]; then - cd $TOOLS/open64_prebuilt/x86 - git fetch origin - git checkout $version - tar zxf open64ark-aarch64.tar.gz - tar zxf open64ark-riscv.tar.gz - mv riscv riscv64 - touch $TOOLS/open64_prebuilt/V_$version - echo Downloaded open64_prebuilt. -fi - # clang2mpl if [ ! -d $TOOLS/clang2mpl ]; then + cd $TOOLS git clone --depth 1 https://gitee.com/openarkcompiler-incubator/clang2mpl.git - echo Installed qemu-aarch64 fi # routinly updated to be compatible with maple cd $TOOLS/clang2mpl @@ -178,15 +171,13 @@ if [ "$OLD_OS" == "1" ]; then ln -s -f ${MAPLE_ROOT}/tools/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang ${TOOL_BIN_PATH}/clang ln -s -f ${MAPLE_ROOT}/tools/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/llvm-ar ${TOOL_BIN_PATH}/llvm-ar ln -s -f ${MAPLE_ROOT}/tools/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.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 +ln -s -f ${MAPLE_ROOT}/tools/qemu/package/usr/bin/qemu-aarch64 ${TOOL_BIN_PATH}/qemu-aarch64 if [ ! -d $MAPLE_ROOT/../ThirdParty ]; then cd $MAPLE_ROOT/../