This is an automated email from the ASF dual-hosted git repository.

zhaoc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 726fa92  Support compiling LLVM in aarch64 (#2559)
726fa92 is described below

commit 726fa923c9ce534d4fa905940a2518b6ebc0371c
Author: ZHAO Chun <[email protected]>
AuthorDate: Thu Dec 26 21:59:06 2019 +0800

    Support compiling LLVM in aarch64 (#2559)
---
 thirdparty/build-thirdparty.sh      |  8 +++++++-
 thirdparty/download-thirdparty.sh   |  9 +++++++++
 thirdparty/patches/llvm-3.4.2.patch | 16 ++++++++++++++++
 3 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh
index e7156ad..8ced23f 100755
--- a/thirdparty/build-thirdparty.sh
+++ b/thirdparty/build-thirdparty.sh
@@ -227,6 +227,12 @@ build_thrift() {
 
 # llvm
 build_llvm() {
+    MACHINE_TYPE=$(uname -m)
+    LLVM_TARGET="X86"
+    if [[ "${MACHINE_TYPE}" == "aarch64" ]]; then
+        LLVM_TARGET="AArch64"
+    fi
+
     check_if_source_exist $LLVM_SOURCE
     check_if_source_exist $CLANG_SOURCE
     check_if_source_exist $COMPILER_RT_SOURCE
@@ -248,7 +254,7 @@ build_llvm() {
     mkdir llvm-build -p && cd llvm-build
     rm -rf CMakeCache.txt CMakeFiles/
     LDFLAGS="-L${TP_LIB_DIR} -static-libstdc++ -static-libgcc" \
-    $CMAKE_CMD -DLLVM_REQUIRES_RTTI:Bool=True -DLLVM_TARGETS_TO_BUILD="X86" 
-DLLVM_ENABLE_TERMINFO=OFF LLVM_BUILD_LLVM_DYLIB:BOOL=OFF 
-DLLVM_ENABLE_PIC=true -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE="RELEASE" 
-DCMAKE_INSTALL_PREFIX=$TP_INSTALL_DIR/llvm ../$LLVM_SOURCE
+    $CMAKE_CMD -DLLVM_REQUIRES_RTTI:Bool=True 
-DLLVM_TARGETS_TO_BUILD=${LLVM_TARGET} -DLLVM_ENABLE_TERMINFO=OFF 
LLVM_BUILD_LLVM_DYLIB:BOOL=OFF -DLLVM_ENABLE_PIC=true -DBUILD_SHARED_LIBS=OFF 
-DCMAKE_BUILD_TYPE="RELEASE" -DCMAKE_INSTALL_PREFIX=$TP_INSTALL_DIR/llvm 
../$LLVM_SOURCE
     make -j$PARALLEL REQUIRES_RTTI=1 && make install
 }
 
diff --git a/thirdparty/download-thirdparty.sh 
b/thirdparty/download-thirdparty.sh
index 9dad79e..5838830 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -279,6 +279,15 @@ if test "x$PATCH_COMPILER_RT" == "xtrue"; then
     echo "Finished patching $COMPILER_RT_SOURCE"
 fi
 
+# patch to llvm to support aarch64 platform
+cd $TP_SOURCE_DIR/$LLVM_SOURCE
+if [ ! -f $PATCHED_MARK ]; then
+    patch -p0 < $TP_PATCH_DIR/llvm-3.4.2.patch
+    touch $PATCHED_MARK
+fi
+cd -
+echo "Finished patching $LLVM_SOURCE"
+
 # lz4 patch to disable shared library
 cd $TP_SOURCE_DIR/$LZ4_SOURCE
 if [ ! -f $PATCHED_MARK ]; then
diff --git a/thirdparty/patches/llvm-3.4.2.patch 
b/thirdparty/patches/llvm-3.4.2.patch
new file mode 100644
index 0000000..b3cfb30
--- /dev/null
+++ b/thirdparty/patches/llvm-3.4.2.patch
@@ -0,0 +1,16 @@
+--- autoconf/config.guess    2013-07-26 09:35:43.000000000 +0800
++++ autoconf/config.guess    2019-12-24 16:00:25.940000000 +0800
+@@ -864,6 +864,13 @@
+     i*86:Minix:*:*)
+     echo ${UNAME_MACHINE}-pc-minix
+     exit ;;
++    aarch64:Linux:*:*)
++    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++    exit ;;
++    aarch64_be:Linux:*:*)
++    UNAME_MACHINE=aarch64_be
++    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++    exit ;;
+     alpha:Linux:*:*)
+     case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+       EV5)   UNAME_MACHINE=alphaev5 ;;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to