From 0d711907b3cf758fd7e00af3dd82d52e0050dee6 Mon Sep 17 00:00:00 2001 From: Olshevsky Vladimir Date: Thu, 18 May 2023 17:01:28 +0300 Subject: [PATCH] [build] build.py and env_prepare.sh updated to use clang-15.0.4 on darwin Changes: 1. env_prepare.sh updated to download and unpack llvm15-based build for darwin http://repo.huaweicloud.com/harmonyos/compiler/clang/15.0.4-8e906c/darwin/lang_darwin-x86_64-8e906c-20230415.tar.bz2 2. Added analysis of exit code for downloader and archiver to avoid puzzling failures on poor connects Signed-off-by: Olshevsky Vladimir Change-Id: I30dc8590036b272ce8b0aa3dcf384ea5360dd064 --- llvm-build/.gitignore | 1 - llvm-build/env_prepare.sh | 32 ++++++++++++++++++--------- llvm-build/prebuilts_clang_version.py | 1 + 3 files changed, 22 insertions(+), 12 deletions(-) delete mode 100644 llvm-build/.gitignore create mode 100644 llvm-build/prebuilts_clang_version.py diff --git a/llvm-build/.gitignore b/llvm-build/.gitignore deleted file mode 100644 index 384d50511d6a..000000000000 --- a/llvm-build/.gitignore +++ /dev/null @@ -1 +0,0 @@ -prebuilts_clang_version.py diff --git a/llvm-build/env_prepare.sh b/llvm-build/env_prepare.sh index 8d4482e7a8c4..487bd1ae7842 100755 --- a/llvm-build/env_prepare.sh +++ b/llvm-build/env_prepare.sh @@ -31,12 +31,17 @@ if [ ! -d "${bin_dir}" ];then mkdir -p "${bin_dir}" fi +DOWNLOADER="wget -t3 -T10 -O " function download_and_archive() { archive_dir=$1 download_source_url=$2 bin_file=$(basename ${download_source_url}) - wget -t3 -T10 -O "${bin_dir}/${bin_file}" "${download_source_url}" + ${DOWNLOADER} "${bin_dir}/${bin_file}" "${download_source_url}" + if (( $? )) ; then + echo "Failed to download ${download_source_url}" 2>& 1 + exit 1 + fi if [ ! -d "${code_dir}/${archive_dir}" ];then mkdir -p "${code_dir}/${archive_dir}" fi @@ -47,6 +52,10 @@ function download_and_archive() { else tar -xvf "${bin_dir}/${bin_file}" -C "${code_dir}/${archive_dir}" fi + if (( $? )) ; then + echo "Failed to unpack ${bin_dir}/${bin_file}, corrupted?" 2>& 1 + exit 1 + fi } @@ -60,9 +69,10 @@ prebuilts/clang/ohos/${host_platform}-${host_cpu},https://mirrors.huaweicloud.co """ +CLANG_DARWIN_BUILD=clang_darwin-x86_64-8e906c-20230415 copy_config_darwin_x86_64=""" prebuilts/cmake,https://mirrors.huaweicloud.com/harmonyos/compiler/cmake/3.16.5/${host_platform}/cmake-${host_platform}-x86-3.16.5.tar.gz -prebuilts/clang/ohos/${host_platform}-${host_cpu},https://github.com/llvm/llvm-project/releases/download/llvmorg-12.0.0/clang+llvm-12.0.0-x86_64-apple-darwin.tar.xz +prebuilts/clang/ohos/${host_platform}-${host_cpu},http://mirrors.huaweicloud.com/harmonyos/compiler/clang/15.0.4-8e906c/darwin/${CLANG_DARWIN_BUILD}.tar.bz2 """ @@ -95,25 +105,25 @@ do done -if [ -d "${code_dir}/prebuilts/clang/ohos/darwin-x86_64/clang+llvm-12.0.0-x86_64-apple-darwin" ];then - rm -rf "${code_dir}/prebuilts/clang/ohos/darwin-x86_64/clang-10.0.1" - mv "${code_dir}/prebuilts/clang/ohos/darwin-x86_64/clang+llvm-12.0.0-x86_64-apple-darwin" "${code_dir}/prebuilts/clang/ohos/darwin-x86_64/clang-10.0.1" -fi - - if [ -d "${code_dir}/prebuilts/clang/ohos/linux-x86_64/${CLANG_LINUX_BUILD}" ]; then SET_CLANG_VERSION='15.0.4' mv "${code_dir}/prebuilts/clang/ohos/linux-x86_64/${CLANG_LINUX_BUILD}" "${code_dir}/prebuilts/clang/ohos/linux-x86_64/clang-${SET_CLANG_VERSION}" fi +if [ -d "${code_dir}/prebuilts/clang/ohos/darwin-x86_64/${CLANG_DARWIN_BUILD}" ]; then + SET_CLANG_VERSION='15.0.4' + mv "${code_dir}/prebuilts/clang/ohos/darwin-x86_64/${CLANG_DARWIN_BUILD}" "${code_dir}/prebuilts/clang/ohos/darwin-x86_64/clang-${SET_CLANG_VERSION}" +fi + # try to detect version ... BASE_CLANG_DIR="${code_dir}/prebuilts/clang/ohos/${host_platform}-x86_64" -CLANG_FOUND_VERSION=$(cd ${BASE_CLANG_DIR}; basename $(ls -d clang* | head -1) | sed s/clang-//) +CLANG_FOUND_VERSION=$(cd ${BASE_CLANG_DIR}; basename $(ls -d clang*/ | head -1) | sed s/clang-//) # check that pipe above didn't fail and that we have (any) clang version if [ ! $? == 0 ] || [ x == x${CLANG_FOUND_VERSION} ] ; then echo "env_prepare.sh: could not detect clang version" 2>&1 exit 1 fi -# ... and put it to python file -echo "prebuilts_clang_version='${CLANG_FOUND_VERSION}'" > $(dirname $0)/prebuilts_clang_version.py +# ... and compare it with one in python file +echo "prebuilts_clang_version='${CLANG_FOUND_VERSION}'" | diff -q - $(dirname $0)/prebuilts_clang_version.py || ( echo Clang versions mismatch ; exit 1 ) +exit 0 diff --git a/llvm-build/prebuilts_clang_version.py b/llvm-build/prebuilts_clang_version.py new file mode 100644 index 000000000000..1281c1f0ca34 --- /dev/null +++ b/llvm-build/prebuilts_clang_version.py @@ -0,0 +1 @@ +prebuilts_clang_version='15.0.4' -- Gitee