Chromium Code Reviews| Index: tools/clang/scripts/update.sh |
| diff --git a/tools/clang/scripts/update.sh b/tools/clang/scripts/update.sh |
| index e8b929f1808ae12a3d990a2ad6c222191ec524f1..6ae953d74d78edd3bb24ecad546a58f91081a0e9 100755 |
| --- a/tools/clang/scripts/update.sh |
| +++ b/tools/clang/scripts/update.sh |
| @@ -34,6 +34,8 @@ ABS_COMPILER_RT_DIR="${PWD}/${COMPILER_RT_DIR}" |
| # ${A:-a} returns $A if it's set, a else. |
| LLVM_REPO_URL=${LLVM_URL:-https://llvm.org/svn/llvm-project} |
| +CDS_URL=https://commondatastorage.googleapis.com/chromium-browser-clang |
| + |
| if [[ -z "$GYP_DEFINES" ]]; then |
| GYP_DEFINES= |
| fi |
| @@ -161,9 +163,36 @@ if [[ -n ${LLVM_FORCE_HEAD_REVISION:-''} ]]; then |
| with_android= |
| fi |
| - if [[ "${OS}" == "Linux" ]] && [[ -z ${gcc_toolchain:-''} ]]; then |
| - # Set gcc_toolchain on Linux; llvm-symbolizer needs the bundled libstdc++. |
| - gcc_toolchain="$(dirname $(dirname $(which gcc)))" |
| + LLVM_BUILD_TOOLS_DIR="${ABS_LLVM_DIR}/../llvm-build-tools" |
| + |
| + if [[ "${OS}" == "Linux" ]] && [[ -z "${gcc_toolchain}" ]]; then |
| + if [[ $(gcc -dumpversion) < "4.7.0" ]]; then |
| + # We need a newer GCC version. |
| + if [[ ! -e "${LLVM_BUILD_TOOLS_DIR}/gcc482" ]]; then |
|
Nico
2015/03/05 03:55:18
This if seems to not work for some reason, looks l
|
| + echo "Downloading pre-built GCC 4.8.2" |
| + mkdir -p "${LLVM_BUILD_TOOLS_DIR}" |
| + curl --fail -L "${CDS_URL}/tools/gcc482.tgz" | \ |
| + tar vzxf - -C "${LLVM_BUILD_TOOLS_DIR}" |
| + fi |
| + gcc_toolchain="${LLVM_BUILD_TOOLS_DIR}/gcc482" |
| + else |
| + # Always set gcc_toolchain; llvm-symbolizer needs the bundled libstdc++. |
| + gcc_toolchain="$(dirname $(dirname $(which gcc)))" |
| + fi |
| + fi |
| + |
| + if [[ "${OS}" == "Linux" ]]; then |
| + # TODO(hans): Might need to make this work on Mac eventually. |
| + if [[ $(cmake --version | grep -Eo '[0-9.]+') < "3.0" ]]; then |
| + # We need a newer CMake version. |
| + if [[ ! -e "${LLVM_BUILD_TOOLS_DIR}/cmake310" ]]; then |
| + echo "Downloading pre-built CMake 3.10" |
| + mkdir -p "${LLVM_BUILD_TOOLS_DIR}" |
| + curl --fail -L "${CDS_URL}/tools/cmake310.tgz" | \ |
| + tar vzxf - -C "${LLVM_BUILD_TOOLS_DIR}" |
| + fi |
| + export PATH="${LLVM_BUILD_TOOLS_DIR}/cmake310/bin:${PATH}" |
|
Nico
2015/03/05 03:58:39
…and this should probably run before the `cmake --
|
| + fi |
| fi |
| echo "LLVM_FORCE_HEAD_REVISION was set; using r${CLANG_REVISION}" |
| @@ -210,7 +239,6 @@ rm -f "${STAMP_FILE}" |
| if [[ -z "$force_local_build" ]]; then |
| # Check if there's a prebuilt binary and if so just fetch that. That's faster, |
| # and goma relies on having matching binary hashes on client and server too. |
| - CDS_URL=https://commondatastorage.googleapis.com/chromium-browser-clang |
| CDS_FILE="clang-${CLANG_REVISION}.tgz" |
| CDS_OUT_DIR=$(mktemp -d -t clang_download.XXXXXX) |
| CDS_OUTPUT="${CDS_OUT_DIR}/${CDS_FILE}" |