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]