Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Side by Side Diff: tools/clang/scripts/update.sh

Issue 1180693002: Update from https://crrev.com/333737 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/clang/scripts/update.py ('k') | tools/gritsettings/resource_ids » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env bash 1 #!/usr/bin/env bash
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # This script will check out llvm and clang into third_party/llvm and build it. 6 # This script will check out llvm and clang into third_party/llvm and build it.
7 7
8 # Do NOT CHANGE this if you don't know what you're doing -- see 8 # Do NOT CHANGE this if you don't know what you're doing -- see
9 # https://code.google.com/p/chromium/wiki/UpdatingClang 9 # https://code.google.com/p/chromium/wiki/UpdatingClang
10 # Reverting problematic clang rolls is safe, though. 10 # Reverting problematic clang rolls is safe, though.
11 CLANG_REVISION=233105 11 CLANG_REVISION=238013
12 12
13 # This is incremented when pushing a new build of Clang at the same revision. 13 # This is incremented when pushing a new build of Clang at the same revision.
14 CLANG_SUB_REVISION=2 14 CLANG_SUB_REVISION=3
15 15
16 PACKAGE_VERSION="${CLANG_REVISION}-${CLANG_SUB_REVISION}" 16 PACKAGE_VERSION="${CLANG_REVISION}-${CLANG_SUB_REVISION}"
17 17
18 THIS_DIR="$(dirname "${0}")" 18 THIS_DIR="$(dirname "${0}")"
19 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm" 19 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm"
20 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build/Release+Asserts" 20 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build/Release+Asserts"
21 COMPILER_RT_BUILD_DIR="${LLVM_DIR}/../llvm-build/compiler-rt" 21 COMPILER_RT_BUILD_DIR="${LLVM_DIR}/../llvm-build/compiler-rt"
22 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap" 22 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap"
23 LLVM_BOOTSTRAP_INSTALL_DIR="${LLVM_DIR}/../llvm-bootstrap-install" 23 LLVM_BOOTSTRAP_INSTALL_DIR="${LLVM_DIR}/../llvm-bootstrap-install"
24 CLANG_DIR="${LLVM_DIR}/tools/clang" 24 CLANG_DIR="${LLVM_DIR}/tools/clang"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 fi 199 fi
200 export PATH="${LLVM_BUILD_TOOLS_DIR}/cmake310/bin:${PATH}" 200 export PATH="${LLVM_BUILD_TOOLS_DIR}/cmake310/bin:${PATH}"
201 fi 201 fi
202 fi 202 fi
203 203
204 echo "LLVM_FORCE_HEAD_REVISION was set; using r${CLANG_REVISION}" 204 echo "LLVM_FORCE_HEAD_REVISION was set; using r${CLANG_REVISION}"
205 fi 205 fi
206 206
207 if [[ -n "$if_needed" ]]; then 207 if [[ -n "$if_needed" ]]; then
208 if [[ "${OS}" == "Darwin" ]]; then 208 if [[ "${OS}" == "Darwin" ]]; then
209 # clang is used on Mac. 209 # clang is always used on Mac.
210 true
211 elif [[ "${OS}" == "Linux" ]]; then
212 # clang is also aways used on Linux.
210 true 213 true
211 elif [[ "$GYP_DEFINES" =~ .*(clang|tsan|asan|lsan|msan)=1.* ]]; then 214 elif [[ "$GYP_DEFINES" =~ .*(clang|tsan|asan|lsan|msan)=1.* ]]; then
212 # clang requested via $GYP_DEFINES. 215 # clang requested via $GYP_DEFINES.
213 true 216 true
214 elif [[ -d "${LLVM_BUILD_DIR}" ]]; then 217 elif [[ -d "${LLVM_BUILD_DIR}" ]]; then
215 # clang previously downloaded, remove third_party/llvm-build to prevent 218 # clang previously downloaded, keep it up-to-date.
216 # updating. 219 # If you don't want this, delete third_party/llvm-build on your machine.
217 true
218 elif [[ "${OS}" == "Linux" ]]; then
219 # Temporarily use clang on linux. Leave a stamp file behind, so that
220 # this script can remove clang again on machines where it was autoinstalled.
221 mkdir -p "${LLVM_BUILD_DIR}"
222 touch "${LLVM_BUILD_DIR}/autoinstall_stamp"
223 true 220 true
224 else 221 else
225 # clang wasn't needed, not doing anything. 222 # clang wasn't needed, not doing anything.
226 exit 0 223 exit 0
227 fi 224 fi
228 fi 225 fi
229 226
230 227
231 # Check if there's anything to be done, exit early if not. 228 # Check if there's anything to be done, exit early if not.
232 if [[ -f "${STAMP_FILE}" ]]; then 229 if [[ -f "${STAMP_FILE}" ]]; then
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 "${LLVM_DIR}/test/Bindings/Go/go.test" \ 309 "${LLVM_DIR}/test/Bindings/Go/go.test" \
313 "${CLANG_DIR}/lib/Parse/ParseExpr.cpp" \ 310 "${CLANG_DIR}/lib/Parse/ParseExpr.cpp" \
314 "${CLANG_DIR}/lib/Parse/ParseTemplate.cpp" \ 311 "${CLANG_DIR}/lib/Parse/ParseTemplate.cpp" \
315 "${CLANG_DIR}/lib/Sema/SemaDeclCXX.cpp" \ 312 "${CLANG_DIR}/lib/Sema/SemaDeclCXX.cpp" \
316 "${CLANG_DIR}/lib/Sema/SemaExprCXX.cpp" \ 313 "${CLANG_DIR}/lib/Sema/SemaExprCXX.cpp" \
317 "${CLANG_DIR}/test/SemaCXX/default2.cpp" \ 314 "${CLANG_DIR}/test/SemaCXX/default2.cpp" \
318 "${CLANG_DIR}/test/SemaCXX/typo-correction-delayed.cpp" \ 315 "${CLANG_DIR}/test/SemaCXX/typo-correction-delayed.cpp" \
319 "${COMPILER_RT_DIR}/lib/sanitizer_common/sanitizer_stoptheworld_linux_libc dep.cc" \ 316 "${COMPILER_RT_DIR}/lib/sanitizer_common/sanitizer_stoptheworld_linux_libc dep.cc" \
320 "${COMPILER_RT_DIR}/test/tsan/signal_segv_handler.cc" \ 317 "${COMPILER_RT_DIR}/test/tsan/signal_segv_handler.cc" \
321 "${COMPILER_RT_DIR}/lib/sanitizer_common/sanitizer_coverage_libcdep.cc" \ 318 "${COMPILER_RT_DIR}/lib/sanitizer_common/sanitizer_coverage_libcdep.cc" \
319 "${COMPILER_RT_DIR}/cmake/config-ix.cmake" \
320 "${COMPILER_RT_DIR}/lib/ubsan/ubsan_platform.h" \
322 ; do 321 ; do
323 if [[ -e "${i}" ]]; then 322 if [[ -e "${i}" ]]; then
324 rm -f "${i}" # For unversioned files. 323 rm -f "${i}" # For unversioned files.
325 svn revert "${i}" 324 svn revert "${i}"
326 fi; 325 fi;
327 done 326 done
328 327
329 echo Remove the Clang tools shim dir 328 echo Remove the Clang tools shim dir
330 CHROME_TOOLS_SHIM_DIR=${ABS_LLVM_DIR}/tools/chrometools 329 CHROME_TOOLS_SHIM_DIR=${ABS_LLVM_DIR}/tools/chrometools
331 rm -rfv ${CHROME_TOOLS_SHIM_DIR} 330 rm -rfv ${CHROME_TOOLS_SHIM_DIR}
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 393
395 -TEST_F(LibclangReparseTest, ReparseWithModule) { 394 -TEST_F(LibclangReparseTest, ReparseWithModule) {
396 +TEST_F(LibclangReparseTest, DISABLED_ReparseWithModule) { 395 +TEST_F(LibclangReparseTest, DISABLED_ReparseWithModule) {
397 const char *HeaderTop = "#ifndef H\n#define H\nstruct Foo { int bar;"; 396 const char *HeaderTop = "#ifndef H\n#define H\nstruct Foo { int bar;";
398 const char *HeaderBottom = "\n};\n#endif\n"; 397 const char *HeaderBottom = "\n};\n#endif\n";
399 const char *MFile = "#include \"HeaderFile.h\"\nint main() {" 398 const char *MFile = "#include \"HeaderFile.h\"\nint main() {"
400 EOF 399 EOF
401 patch -p0 400 patch -p0
402 popd 401 popd
403 402
404 # Cherry-pick r234010 [sancov] Shrink pc array on Android back to 2**24."
405 pushd "${COMPILER_RT_DIR}"
406 cat << 'EOF' |
407 diff --git a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc b/lib/sanitizer_ common/sanitizer_coverage_libcdep.cc
408 index 4b976fc..cfd9e7e 100644
409 --- a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
410 +++ b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
411 @@ -109,7 +109,8 @@ class CoverageData {
412
413 // Maximal size pc array may ever grow.
414 // We MmapNoReserve this space to ensure that the array is contiguous.
415 - static const uptr kPcArrayMaxSize = FIRST_32_SECOND_64(1 << 26, 1 << 27);
416 + static const uptr kPcArrayMaxSize =
417 + FIRST_32_SECOND_64(1 << (SANITIZER_ANDROID ? 24 : 26), 1 << 27);
418 // The amount file mapping for the pc array is grown by.
419 static const uptr kPcArrayMmapSize = 64 * 1024;
420
421 EOF
422 patch -p1
423 popd
424
425 # This Go bindings test doesn't work after the bootstrap build on Linux. (PR21 552) 403 # This Go bindings test doesn't work after the bootstrap build on Linux. (PR21 552)
426 pushd "${LLVM_DIR}" 404 pushd "${LLVM_DIR}"
427 cat << 'EOF' | 405 cat << 'EOF' |
428 Index: test/Bindings/Go/go.test 406 Index: test/Bindings/Go/go.test
429 =================================================================== 407 ===================================================================
430 --- test/Bindings/Go/go.test (revision 223109) 408 --- test/Bindings/Go/go.test (revision 223109)
431 +++ test/Bindings/Go/go.test (working copy) 409 +++ test/Bindings/Go/go.test (working copy)
432 @@ -1,3 +1,3 @@ 410 @@ -1,3 +1,3 @@
433 -; RUN: llvm-go test llvm.org/llvm/bindings/go/llvm 411 -; RUN: llvm-go test llvm.org/llvm/bindings/go/llvm
434 +; RUN: true 412 +; RUN: true
435 413
436 ; REQUIRES: shell 414 ; REQUIRES: shell
437 EOF 415 EOF
438 patch -p0 416 patch -p0
439 popd 417 popd
440 418
419 # The UBSan run-time, which is now bundled with the ASan run-time, doesn't wor k
420 # on Mac OS X 10.8 (PR23539).
421 pushd "${COMPILER_RT_DIR}"
422 cat << 'EOF' |
423 --- a/cmake/config-ix.cmake
424 +++ b/cmake/config-ix.cmake
425 @@ -319,7 +319,7 @@ else()
426 endif()
427
428 if (COMPILER_RT_HAS_SANITIZER_COMMON AND UBSAN_SUPPORTED_ARCH AND
429 - OS_NAME MATCHES "Darwin|Linux|FreeBSD")
430 + OS_NAME MATCHES "Linux|FreeBSD")
431 set(COMPILER_RT_HAS_UBSAN TRUE)
432 else()
433 set(COMPILER_RT_HAS_UBSAN FALSE)
434 diff --git a/lib/ubsan/ubsan_platform.h b/lib/ubsan/ubsan_platform.h
435 index 8ba253b..d5dce8d 100644
436 --- a/lib/ubsan/ubsan_platform.h
437 +++ b/lib/ubsan/ubsan_platform.h
438 @@ -14,7 +14,7 @@
439 #define UBSAN_PLATFORM_H
440
441 // Other platforms should be easy to add, and probably work as-is.
442 -#if (defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)) && \
443 +#if (defined(__linux__) || defined(__FreeBSD__)) && \
444 (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || \
445 defined(__aarch64__) || defined(__mips__) || defined(__powerpc64__))
446 # define CAN_SANITIZE_UB 1
447 EOF
448 patch -p1
449 popd
441 450
442 fi 451 fi
443 452
444 # Echo all commands. 453 # Echo all commands.
445 set -x 454 set -x
446 455
447 # Set default values for CC and CXX if they're not set in the environment. 456 # Set default values for CC and CXX if they're not set in the environment.
448 CC=${CC:-cc} 457 CC=${CC:-cc}
449 CXX=${CXX:-c++} 458 CXX=${CXX:-c++}
450 459
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 tar -c lib/darwin | tar -C ${ABS_LLVM_CLANG_LIB_DIR} -xv 668 tar -c lib/darwin | tar -C ${ABS_LLVM_CLANG_LIB_DIR} -xv
660 else 669 else
661 tar -c lib/linux | tar -C ${ABS_LLVM_CLANG_LIB_DIR} -xv 670 tar -c lib/linux | tar -C ${ABS_LLVM_CLANG_LIB_DIR} -xv
662 fi 671 fi
663 672
664 popd 673 popd
665 674
666 if [[ -n "${with_android}" ]]; then 675 if [[ -n "${with_android}" ]]; then
667 # Make a standalone Android toolchain. 676 # Make a standalone Android toolchain.
668 ${ANDROID_NDK_DIR}/build/tools/make-standalone-toolchain.sh \ 677 ${ANDROID_NDK_DIR}/build/tools/make-standalone-toolchain.sh \
669 --platform=android-14 \ 678 --platform=android-19 \
670 --install-dir="${LLVM_BUILD_DIR}/android-toolchain" \ 679 --install-dir="${LLVM_BUILD_DIR}/android-toolchain" \
671 --system=linux-x86_64 \ 680 --system=linux-x86_64 \
672 --stl=libcxx \ 681 --stl=stlport \
673 --toolchain=arm-linux-androideabi-4.9 682 --toolchain=arm-linux-androideabi-4.9
674 683
675 # Android NDK r9d copies a broken unwind.h into the toolchain, see 684 # Android NDK r9d copies a broken unwind.h into the toolchain, see
676 # http://crbug.com/357890 685 # http://crbug.com/357890
677 rm -v "${LLVM_BUILD_DIR}"/android-toolchain/include/c++/*/unwind.h 686 rm -v "${LLVM_BUILD_DIR}"/android-toolchain/include/c++/*/unwind.h
678 687
679 # Build ASan runtime for Android in a separate build tree. 688 # Build ASan runtime for Android in a separate build tree.
680 mkdir -p ${LLVM_BUILD_DIR}/android 689 mkdir -p ${LLVM_BUILD_DIR}/android
681 pushd ${LLVM_BUILD_DIR}/android 690 pushd ${LLVM_BUILD_DIR}/android
682 rm -fv CMakeCache.txt 691 rm -fv CMakeCache.txt
683 MACOSX_DEPLOYMENT_TARGET=${deployment_target} cmake -GNinja \ 692 MACOSX_DEPLOYMENT_TARGET=${deployment_target} cmake -GNinja \
684 -DCMAKE_BUILD_TYPE=Release \ 693 -DCMAKE_BUILD_TYPE=Release \
685 -DLLVM_ENABLE_ASSERTIONS=ON \ 694 -DLLVM_ENABLE_ASSERTIONS=ON \
686 -DLLVM_ENABLE_THREADS=OFF \ 695 -DLLVM_ENABLE_THREADS=OFF \
687 -DCMAKE_C_COMPILER=${PWD}/../bin/clang \ 696 -DCMAKE_C_COMPILER=${PWD}/../bin/clang \
688 -DCMAKE_CXX_COMPILER=${PWD}/../bin/clang++ \ 697 -DCMAKE_CXX_COMPILER=${PWD}/../bin/clang++ \
689 -DLLVM_CONFIG_PATH=${PWD}/../bin/llvm-config \ 698 -DLLVM_CONFIG_PATH=${PWD}/../bin/llvm-config \
690 -DCMAKE_C_FLAGS="--target=arm-linux-androideabi --sysroot=${PWD}/../androi d-toolchain/sysroot -B${PWD}/../android-toolchain" \ 699 -DCMAKE_C_FLAGS="--target=arm-linux-androideabi --sysroot=${PWD}/../androi d-toolchain/sysroot -B${PWD}/../android-toolchain" \
691 -DCMAKE_CXX_FLAGS="--target=arm-linux-androideabi --sysroot=${PWD}/../andr oid-toolchain/sysroot -B${PWD}/../android-toolchain" \ 700 -DCMAKE_CXX_FLAGS="--target=arm-linux-androideabi --sysroot=${PWD}/../andr oid-toolchain/sysroot -B${PWD}/../android-toolchain" \
692 -DANDROID=1 \ 701 -DANDROID=1 \
693 "${ABS_COMPILER_RT_DIR}" 702 "${ABS_COMPILER_RT_DIR}"
694 ninja libclang_rt.asan-arm-android.so 703 ninja libclang_rt.asan-arm-android.so
695 704
696 # And copy it into the main build tree. 705 # And copy it into the main build tree.
697 cp "$(find -name libclang_rt.asan-arm-android.so)" "${ABS_LLVM_CLANG_LIB_DIR}/ lib/linux/" 706 cp "$(find -name libclang_rt.asan-arm-android.so)" "${ABS_LLVM_CLANG_LIB_DIR}/ lib/linux/"
698 popd 707 popd
699 fi 708 fi
700 709
701 if [[ -n "$run_tests" ]]; then 710 if [[ -n "$run_tests" || -n "${LLVM_FORCE_HEAD_REVISION:-''}" ]]; then
702 # Run Chrome tool tests. 711 # Run Chrome tool tests.
703 ninja -C "${LLVM_BUILD_DIR}" cr-check-all 712 ninja -C "${LLVM_BUILD_DIR}" cr-check-all
713 fi
714 if [[ -n "$run_tests" ]]; then
704 # Run the LLVM and Clang tests. 715 # Run the LLVM and Clang tests.
705 ninja -C "${LLVM_BUILD_DIR}" check-all 716 ninja -C "${LLVM_BUILD_DIR}" check-all
706 fi 717 fi
707 718
708 # After everything is done, log success for this revision. 719 # After everything is done, log success for this revision.
709 echo "${PACKAGE_VERSION}" > "${STAMP_FILE}" 720 echo "${PACKAGE_VERSION}" > "${STAMP_FILE}"
OLDNEW
« no previous file with comments | « tools/clang/scripts/update.py ('k') | tools/gritsettings/resource_ids » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698