IMPALA-10090: Create aarch64 development environment on ubuntu 18.04

Including following changes:
1 build native-toolchain local by script on aarch64 platform
2 change some native-toolchain's lib version number
3 split SKIP_TOOLCHAIN_BOOTSTRAP and DOWNLOAD_CDH_COMPONETS to two things,
  because on aarch64, just need to download cdp components ,
  but not need to download toolchain.
4 download hadoop aarch64 nativelibs , impala building needs these libs.

With this commit,  on ubuntu 18.04 aarch64 version,
just need to run bin/bootstrap_development.sh, just like x86.

Change-Id: I769668c834ab0dd504a822ed9153186778275d59
Reviewed-on: http://gerrit.cloudera.org:8080/16065
Reviewed-by: Tim Armstrong <tarmstrong@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
This commit is contained in:
zhaorenhai
2020-06-03 09:16:56 +08:00
committed by Impala Public Jenkins
parent 28b1542db0
commit 0098113d95
4 changed files with 63 additions and 11 deletions

View File

@@ -397,6 +397,23 @@ bootstrap_dependencies() {
# Populate necessary thirdparty components unless it's set to be skipped.
if [[ "${SKIP_TOOLCHAIN_BOOTSTRAP}" = true ]]; then
echo "SKIP_TOOLCHAIN_BOOTSTRAP is true, skipping toolchain bootstrap."
if [[ "${DOWNLOAD_CDH_COMPONENTS}" = true ]]; then
echo ">>> Downloading and extracting cdh components."
"$IMPALA_HOME/bin/bootstrap_toolchain.py"
fi
# Create soft link to locally builded native-toolchain on aarch64
if [[ "$(uname -p)" = "aarch64" ]]; then
mkdir -p $IMPALA_TOOLCHAIN_PACKAGES_HOME
cd "$IMPALA_TOOLCHAIN_PACKAGES_HOME"
ln -f -s ${NATIVE_TOOLCHAIN_HOME}/build/* .
cd -
if ! [[ -d "$IMPALA_HOME/../hadoopAarch64NativeLibs" ]]; then
git clone https://github.com/zhaorenhai/hadoopAarch64NativeLibs \
"$IMPALA_HOME/../hadoopAarch64NativeLibs"
fi
cp $IMPALA_HOME/../hadoopAarch64NativeLibs/lib* $HADOOP_HOME/lib/native/
fi
else
echo ">>> Downloading and extracting toolchain dependencies."
"$IMPALA_HOME/bin/bootstrap_toolchain.py"
@@ -466,7 +483,7 @@ generate_cmake_files() {
fi
# ARM64's L3 cacheline size is different according to CPU vendor's implementations of
# architecture. so here we will let use decide this value.
# architecture. so here we will let user decide this value.
# If user defined CACHELINESIZE_AARCH64 in impala-config-local.sh, then we will use that
# value, if user did not define it, then we will get the value from OS, if fail, then
# we will use the default value 64.