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

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

Issue 12210139: Pin Clang revision to r170392 for ASan Mac builders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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=170392 11 CLANG_REVISION=170392
12 # ASan Mac builders are pinned to this revision, see http://crbug.com/170629.
13 CLANG_ASAN_MAC_REVISION=170392
12 14
13 THIS_DIR="$(dirname "${0}")" 15 THIS_DIR="$(dirname "${0}")"
14 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm" 16 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm"
15 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build" 17 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build"
16 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap" 18 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap"
17 CLANG_DIR="${LLVM_DIR}/tools/clang" 19 CLANG_DIR="${LLVM_DIR}/tools/clang"
18 COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt" 20 COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt"
19 ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk" 21 ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk"
20 STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision" 22 STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision"
21 23
22 # ${A:-a} returns $A if it's set, a else. 24 # ${A:-a} returns $A if it's set, a else.
23 LLVM_REPO_URL=${LLVM_URL:-https://llvm.org/svn/llvm-project} 25 LLVM_REPO_URL=${LLVM_URL:-https://llvm.org/svn/llvm-project}
24 26
25 # Die if any command dies. 27 # Die if any command dies.
26 set -e 28 set -e
27 29
28 OS="$(uname -s)" 30 OS="$(uname -s)"
29 31
30 # Parse command line options. 32 # Parse command line options.
31 force_local_build= 33 force_local_build=
32 mac_only= 34 mac_only=
33 run_tests= 35 run_tests=
34 bootstrap= 36 bootstrap=
35 with_android=yes 37 with_android=yes
38 is_asan_mac_builder=
36 if [[ "${OS}" = "Darwin" ]]; then 39 if [[ "${OS}" = "Darwin" ]]; then
37 with_android= 40 with_android=
38 fi 41 fi
39 42
40 while [[ $# > 0 ]]; do 43 while [[ $# > 0 ]]; do
41 case $1 in 44 case $1 in
42 --bootstrap) 45 --bootstrap)
43 bootstrap=yes 46 bootstrap=yes
44 ;; 47 ;;
45 --force-local-build) 48 --force-local-build)
46 force_local_build=yes 49 force_local_build=yes
47 ;; 50 ;;
48 --mac-only) 51 --mac-only)
49 mac_only=yes 52 mac_only=yes
50 ;; 53 ;;
51 --run-tests) 54 --run-tests)
52 run_tests=yes 55 run_tests=yes
53 ;; 56 ;;
54 --without-android) 57 --without-android)
55 with_android= 58 with_android=
56 ;; 59 ;;
60 --is-asan-mac-builder)
61 is_asan_mac_builder=yes
Nico 2013/02/12 16:51:25 This is in already, but in the future when doing s
62 ;;
57 --help) 63 --help)
58 echo "usage: $0 [--force-local-build] [--mac-only] [--run-tests] " 64 echo "usage: $0 [--force-local-build] [--mac-only] [--run-tests] "
59 echo "--bootstrap: First build clang with CC, then with itself." 65 echo "--bootstrap: First build clang with CC, then with itself."
60 echo "--force-local-build: Don't try to download prebuilt binaries." 66 echo "--force-local-build: Don't try to download prebuilt binaries."
61 echo "--mac-only: Do initial download only on Mac systems." 67 echo "--mac-only: Do initial download only on Mac systems."
62 echo "--run-tests: Run tests after building. Only for local builds." 68 echo "--run-tests: Run tests after building. Only for local builds."
63 echo "--without-android: Don't build ASan Android runtime library." 69 echo "--without-android: Don't build ASan Android runtime library."
70 echo "--is-asan-mac-builder: Use older Clang to build ASan on Mac."
64 exit 1 71 exit 1
65 ;; 72 ;;
66 esac 73 esac
67 shift 74 shift
68 done 75 done
69 76
77 # Are we on a Chrome buildbot running ASan?
78 function on_asan_mac_host {
79 HOST="$(uname -n)"
80 if [[ "${HOST}" == "vm633-m1.golo.chromium.org" ]]; then
81 return 0
82 fi
83 for num in $(seq 600 655)
84 do
85 if [[ "${HOST}" == "vm${num}-m4.golo.chromium.org" ]]; then
86 return 0
87 fi
88 done
89 return 1
90 }
91
92 # Use older Clang for ASan Mac builds. See http://crbug.com/170629.
93 if [[ -n is_asan_mac_builder ]] || on_asan_mac_host; then
94 CLANG_REVISION=${CLANG_ASAN_MAC_REVISION}
95 fi
96
70 # --mac-only prevents the initial download on non-mac systems, but if clang has 97 # --mac-only prevents the initial download on non-mac systems, but if clang has
71 # already been downloaded in the past, this script keeps it up to date even if 98 # already been downloaded in the past, this script keeps it up to date even if
72 # --mac-only is passed in and the system isn't a mac. People who don't like this 99 # --mac-only is passed in and the system isn't a mac. People who don't like this
73 # can just delete their third_party/llvm-build directory. 100 # can just delete their third_party/llvm-build directory.
74 if [[ -n "$mac_only" ]] && [[ "${OS}" != "Darwin" ]] && 101 if [[ -n "$mac_only" ]] && [[ "${OS}" != "Darwin" ]] &&
75 [[ ! ( "$GYP_DEFINES" =~ .*(clang|tsan|asan)=1.* ) ]] && 102 [[ ! ( "$GYP_DEFINES" =~ .*(clang|tsan|asan)=1.* ) ]] &&
76 ! [[ -d "${LLVM_BUILD_DIR}" ]]; then 103 ! [[ -d "${LLVM_BUILD_DIR}" ]]; then
77 exit 0 104 exit 0
78 fi 105 fi
79 106
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 if [[ -n "$run_tests" ]]; then 356 if [[ -n "$run_tests" ]]; then
330 # Run a few tests. 357 # Run a few tests.
331 "${PLUGIN_SRC_DIR}/tests/test.sh" "${LLVM_BUILD_DIR}/Release+Asserts" 358 "${PLUGIN_SRC_DIR}/tests/test.sh" "${LLVM_BUILD_DIR}/Release+Asserts"
332 cd "${LLVM_BUILD_DIR}" 359 cd "${LLVM_BUILD_DIR}"
333 make check-all 360 make check-all
334 cd - 361 cd -
335 fi 362 fi
336 363
337 # After everything is done, log success for this revision. 364 # After everything is done, log success for this revision.
338 echo "${CLANG_REVISION}" > "${STAMP_FILE}" 365 echo "${CLANG_REVISION}" > "${STAMP_FILE}"
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698