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

Side by Side Diff: tools/llvm/utman.sh

Issue 7524023: New LLVM merging bots (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 9 years, 4 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
« buildbot/buildbot_spec2k.sh ('K') | « buildbot/buildbot_spec2k.sh ('k') | 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 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2011 The Native Client 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 #@ Untrusted Toolchain Manager 6 #@ Untrusted Toolchain Manager
7 #@------------------------------------------------------------------- 7 #@-------------------------------------------------------------------
8 #@ This script builds the ARM and PNaCl untrusted toolchains. 8 #@ This script builds the ARM and PNaCl untrusted toolchains.
9 #@ It MUST be run from the native_client/ directory. 9 #@ It MUST be run from the native_client/ directory.
10 # 10 #
(...skipping 23 matching lines...) Expand all
34 echo "ERROR: cannot find native_client/ directory" 34 echo "ERROR: cannot find native_client/ directory"
35 exit -1 35 exit -1
36 fi 36 fi
37 readonly NACL_ROOT="$(pwd)" 37 readonly NACL_ROOT="$(pwd)"
38 38
39 source tools/llvm/common-tools.sh 39 source tools/llvm/common-tools.sh
40 40
41 SetScriptPath "${NACL_ROOT}/tools/llvm/utman.sh" 41 SetScriptPath "${NACL_ROOT}/tools/llvm/utman.sh"
42 SetLogDirectory "${NACL_ROOT}/toolchain/hg-log" 42 SetLogDirectory "${NACL_ROOT}/toolchain/hg-log"
43 43
44 # Use upstream merging repository
45 readonly UTMAN_UPSTREAM=${UTMAN_UPSTREAM:-false}
46 readonly UTMAN_UPSTREAM_SKIP_UPDATE=${UTMAN_UPSTREAM_SKIP_UPDATE:-false}
47 if ${UTMAN_UPSTREAM}; then
48 UTMAN_USE_MQ=false
49 fi
50
44 # Set to false to go back to compiling with the old pnacl-sfi branch 51 # Set to false to go back to compiling with the old pnacl-sfi branch
45 readonly UTMAN_USE_MQ=${UTMAN_USE_MQ:-true} 52 readonly UTMAN_USE_MQ=${UTMAN_USE_MQ:-true}
46 readonly UTMAN_RESET_MQ=${UTMAN_RESET_MQ:-true} 53 readonly UTMAN_RESET_MQ=${UTMAN_RESET_MQ:-true}
47 54
48 # Ignore this variable. Its for helping jasonwkim merge 55 # Ignore this variable. Its for helping jasonwkim merge
49 # So a unique identifier for the branch in the MQ is composed of 56 # So a unique identifier for the branch in the MQ is composed of
50 # (a) LLVM svn rev (looks like svnXXXXXX) 57 # (a) LLVM svn rev (looks like svnXXXXXX)
51 # (b) NaCl rev (looks like naclYYYY) 58 # (b) NaCl rev (looks like naclYYYY)
52 # (c) Any other unique human readable mnemonic that one cares to use to \ 59 # (c) Any other unique human readable mnemonic that one cares to use to \
53 # identify the branch. 60 # identify the branch.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 # Leave this blank, it will be filled during processing. 128 # Leave this blank, it will be filled during processing.
122 SPECULATIVE_REBUILD_SET="" 129 SPECULATIVE_REBUILD_SET=""
123 130
124 # The directory in which we we keep src dirs (from hg repos) 131 # The directory in which we we keep src dirs (from hg repos)
125 # and objdirs. These should be ABSOLUTE paths. 132 # and objdirs. These should be ABSOLUTE paths.
126 133
127 readonly TC_SRC="${NACL_ROOT}/hg" 134 readonly TC_SRC="${NACL_ROOT}/hg"
128 readonly TC_BUILD="${TC_ROOT}/hg-build-${LIBMODE}" 135 readonly TC_BUILD="${TC_ROOT}/hg-build-${LIBMODE}"
129 136
130 # The location of sources (absolute) 137 # The location of sources (absolute)
131 readonly TC_SRC_LLVM="${TC_SRC}/llvm/llvm-trunk" 138
132 readonly TC_SRC_LLVM_GCC="${TC_SRC}/llvm-gcc/llvm-gcc-4.2" 139 if ${UTMAN_UPSTREAM}; then
140 readonly TC_SRC_UPSTREAM="${TC_SRC}/upstream"
141 readonly TC_SRC_LLVM="${TC_SRC_UPSTREAM}/llvm"
142 readonly TC_SRC_LLVM_GCC="${TC_SRC_UPSTREAM}/llvm-gcc"
143 else
144 readonly TC_SRC_LLVM="${TC_SRC}/llvm/llvm-trunk"
145 readonly TC_SRC_LLVM_GCC="${TC_SRC}/llvm-gcc/llvm-gcc-4.2"
146 fi
133 readonly TC_SRC_BINUTILS="${TC_SRC}/binutils" 147 readonly TC_SRC_BINUTILS="${TC_SRC}/binutils"
134 readonly TC_SRC_NEWLIB="${TC_SRC}/newlib" 148 readonly TC_SRC_NEWLIB="${TC_SRC}/newlib"
135 readonly TC_SRC_COMPILER_RT="${TC_SRC}/compiler-rt" 149 readonly TC_SRC_COMPILER_RT="${TC_SRC}/compiler-rt"
136 readonly TC_SRC_LIBSTDCPP="${TC_SRC_LLVM_GCC}/libstdc++-v3" 150 readonly TC_SRC_LIBSTDCPP="${TC_SRC_LLVM_GCC}/libstdc++-v3"
137 readonly TC_SRC_GOOGLE_PERFTOOLS="${TC_SRC}/google-perftools" 151 readonly TC_SRC_GOOGLE_PERFTOOLS="${TC_SRC}/google-perftools"
138 readonly TC_SRC_LLVM_MQ_PATCHES="${TC_SRC}/llvm-mq-patches" 152 readonly TC_SRC_LLVM_MQ_PATCHES="${TC_SRC}/llvm-mq-patches"
139 readonly TC_SRC_LLVM_GCC_MQ_PATCHES="${TC_SRC}/llvm-gcc-mq-patches" 153 readonly TC_SRC_LLVM_GCC_MQ_PATCHES="${TC_SRC}/llvm-gcc-mq-patches"
140 154
141 155
142 # Unfortunately, binutils/configure generates this untracked file 156 # Unfortunately, binutils/configure generates this untracked file
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 233
220 # Which toolchain to use for each arch. 234 # Which toolchain to use for each arch.
221 if ${LIBMODE_NEWLIB}; then 235 if ${LIBMODE_NEWLIB}; then
222 SBTC_BUILD_WITH_PNACL="arm x8632 x8664" 236 SBTC_BUILD_WITH_PNACL="arm x8632 x8664"
223 else 237 else
224 SBTC_BUILD_WITH_PNACL="x8632 x8664" 238 SBTC_BUILD_WITH_PNACL="x8632 x8664"
225 fi 239 fi
226 240
227 # Current milestones in each repo 241 # Current milestones in each repo
228 # hg-update-pnacl-sfi uses these 242 # hg-update-pnacl-sfi uses these
229 readonly LLVM_REV=9ca0d1b53734 243 if ${UTMAN_UPSTREAM}; then
230 readonly LLVM_GCC_REV=e093fe8c5603 244 readonly UPSTREAM_REV=pnacl-sfi # Update to head of pnacl-sfi
245 else
246 readonly LLVM_REV=9ca0d1b53734
247 readonly LLVM_GCC_REV=e093fe8c5603
248 fi
231 # hg-update-non-llvm uses these 249 # hg-update-non-llvm uses these
232 readonly NEWLIB_REV=57d709868c78 250 readonly NEWLIB_REV=57d709868c78
233 readonly BINUTILS_REV=14dd509248e5 251 readonly BINUTILS_REV=14dd509248e5
234 readonly COMPILER_RT_REV=1a3a6ffb31ea 252 readonly COMPILER_RT_REV=1a3a6ffb31ea
235 readonly GOOGLE_PERFTOOLS_REV=ad820959663d 253 readonly GOOGLE_PERFTOOLS_REV=ad820959663d
236 254
237 # Update these revs when you want to experiment with rebasing to a newer 255 # Update these revs when you want to experiment with rebasing to a newer
238 # version of llvm and llvm-gcc 256 # version of llvm and llvm-gcc
239 # Mercurial Queues Repos for Merges 257 # Mercurial Queues Repos for Merges
240 # todo(jasonwkim): figure out why hg tag can not be pushed! 258 # todo(jasonwkim): figure out why hg tag can not be pushed!
241 readonly LLVM_MQ_REV=${LLVM_MQ_REV:-"0d9c0424d854"} 259 if ${UTMAN_USE_MQ}; then
242 readonly LLVM_GCC_MQ_REV=${LLVM_GCC_MQ_REV:-"6951bd89b2e5"} 260 readonly LLVM_MQ_REV=${LLVM_MQ_REV:-"0d9c0424d854"}
261 readonly LLVM_GCC_MQ_REV=${LLVM_GCC_MQ_REV:-"6951bd89b2e5"}
243 262
244 # Vendor Revs of llvm and llvm-gcc to which the qeues apply 263 # Vendor Revs of llvm and llvm-gcc to which the qeues apply
245 # svn128002 264 # svn128002
246 readonly LLVM_QPARENT_REV=${LLVM_QPARENT_REV:-"1dd4ed44a6f8"} 265 readonly LLVM_QPARENT_REV=${LLVM_QPARENT_REV:-"1dd4ed44a6f8"}
247 # svn126872 266 # svn126872
248 readonly LLVM_GCC_QPARENT_REV=${LLVM_GCC_QPARENT_REV:-"3cde3ed75a27"} 267 readonly LLVM_GCC_QPARENT_REV=${LLVM_GCC_QPARENT_REV:-"3cde3ed75a27"}
268 fi
249 269
250 270
251 # Repositories 271 # Repositories
252 readonly REPO_LLVM_GCC="nacl-llvm-branches.llvm-gcc-trunk" 272 if ${UTMAN_UPSTREAM}; then
253 readonly REPO_LLVM="nacl-llvm-branches.llvm-trunk" 273 readonly REPO_UPSTREAM="nacl-llvm-branches.upstream"
274 else
275 readonly REPO_LLVM_GCC="nacl-llvm-branches.llvm-gcc-trunk"
276 readonly REPO_LLVM="nacl-llvm-branches.llvm-trunk"
277 fi
278
254 readonly REPO_NEWLIB="nacl-llvm-branches.newlib" 279 readonly REPO_NEWLIB="nacl-llvm-branches.newlib"
255 readonly REPO_BINUTILS="nacl-llvm-branches.binutils" 280 readonly REPO_BINUTILS="nacl-llvm-branches.binutils"
256 readonly REPO_COMPILER_RT="nacl-llvm-branches.compiler-rt" 281 readonly REPO_COMPILER_RT="nacl-llvm-branches.compiler-rt"
257 readonly REPO_GOOGLE_PERFTOOLS="nacl-llvm-branches.google-perftools" 282 readonly REPO_GOOGLE_PERFTOOLS="nacl-llvm-branches.google-perftools"
258 readonly REPO_LLVM_MQ_PATCHES="nacl-llvm-branches.llvm-mq-patches" 283
259 readonly REPO_LLVM_GCC_MQ_PATCHES="nacl-llvm-branches.llvm-gcc-mq-patches" 284 if ${UTMAN_USE_MQ}; then
285 readonly REPO_LLVM_MQ_PATCHES="nacl-llvm-branches.llvm-mq-patches"
286 readonly REPO_LLVM_GCC_MQ_PATCHES="nacl-llvm-branches.llvm-gcc-mq-patches"
287 fi
260 288
261 289
262 # TODO(espindola): This should be ${CXX:-}, but llvm-gcc's configure has a 290 # TODO(espindola): This should be ${CXX:-}, but llvm-gcc's configure has a
263 # bug that brakes the build if we do that. 291 # bug that brakes the build if we do that.
264 CC=${CC:-gcc} 292 CC=${CC:-gcc}
265 CXX=${CXX:-g++} 293 CXX=${CXX:-g++}
266 if ${HOST_ARCH_X8632} ; then 294 if ${HOST_ARCH_X8632} ; then
267 # These are simple compiler wrappers to force 32bit builds 295 # These are simple compiler wrappers to force 32bit builds
268 # For bots and releases we build the toolchains 296 # For bots and releases we build the toolchains
269 # on the oldest system we care to support. Currently 297 # on the oldest system we care to support. Currently
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 hg-update-llvm 390 hg-update-llvm
363 } 391 }
364 392
365 #@ hg-update-non-llvm - Update all repos to the latest stable rev, 393 #@ hg-update-non-llvm - Update all repos to the latest stable rev,
366 # other than LLVM and LLVM-GCC (they are handled separately via MQ) 394 # other than LLVM and LLVM-GCC (they are handled separately via MQ)
367 hg-update-non-llvm() { 395 hg-update-non-llvm() {
368 hg-update-newlib 396 hg-update-newlib
369 hg-update-binutils 397 hg-update-binutils
370 hg-update-compiler-rt 398 hg-update-compiler-rt
371 hg-update-google-perftools 399 hg-update-google-perftools
372 hg-update-llvm-mq-patches 400 if ${UTMAN_USE_MQ}; then
373 hg-update-llvm-gcc-mq-patches 401 hg-update-llvm-mq-patches
402 hg-update-llvm-gcc-mq-patches
403 fi
374 } 404 }
375 405
376 hg-assert-safe-to-update() { 406 hg-assert-safe-to-update() {
377 local name="$1" 407 local name="$1"
378 local dir="$2" 408 local dir="$2"
379 local rev="$3" 409 local rev="$3"
380 410
381 if ! hg-on-branch "${dir}" pnacl-sfi ; then 411 if ! hg-on-branch "${dir}" pnacl-sfi ; then
382 Banner "hg/${name} is not on branch pnacl-sfi" 412 Banner "hg/${name} is not on branch pnacl-sfi"
383 exit -1 413 exit -1
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 hg-check-if-using-old-repo "${TC_SRC_LLVM_GCC}" 518 hg-check-if-using-old-repo "${TC_SRC_LLVM_GCC}"
489 hg-update-common "llvm-gcc" ${LLVM_GCC_REV} "${TC_SRC_LLVM_GCC}" 519 hg-update-common "llvm-gcc" ${LLVM_GCC_REV} "${TC_SRC_LLVM_GCC}"
490 } 520 }
491 521
492 #@ hg-update-llvm - Update LLVM to the stable revision 522 #@ hg-update-llvm - Update LLVM to the stable revision
493 hg-update-llvm() { 523 hg-update-llvm() {
494 hg-check-if-using-old-repo "${TC_SRC_LLVM}" 524 hg-check-if-using-old-repo "${TC_SRC_LLVM}"
495 hg-update-common "llvm" ${LLVM_REV} "${TC_SRC_LLVM}" 525 hg-update-common "llvm" ${LLVM_REV} "${TC_SRC_LLVM}"
496 } 526 }
497 527
528 hg-update-upstream() {
529 hg-update-common "upstream" ${UPSTREAM_REV} "${TC_SRC_UPSTREAM}"
530 }
531
498 #@ hg-update-newlib - Update NEWLIB To the stable revision 532 #@ hg-update-newlib - Update NEWLIB To the stable revision
499 hg-update-newlib() { 533 hg-update-newlib() {
500 # Clean the headers first, so that sanity checks inside 534 # Clean the headers first, so that sanity checks inside
501 # hg-update-common do not see any local modifications. 535 # hg-update-common do not see any local modifications.
502 newlib-nacl-headers-check 536 newlib-nacl-headers-check
503 newlib-nacl-headers-clean 537 newlib-nacl-headers-clean
504 hg-update-common "newlib" ${NEWLIB_REV} "${TC_SRC_NEWLIB}" 538 hg-update-common "newlib" ${NEWLIB_REV} "${TC_SRC_NEWLIB}"
505 newlib-nacl-headers 539 newlib-nacl-headers
506 } 540 }
507 541
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 } 633 }
600 634
601 hg-pull-llvm-mq-patches() { 635 hg-pull-llvm-mq-patches() {
602 hg-pull "${TC_SRC_LLVM_MQ_PATCHES}" 636 hg-pull "${TC_SRC_LLVM_MQ_PATCHES}"
603 } 637 }
604 638
605 #@ hg-checkout-all - check out mercurial repos needed to build toolchain 639 #@ hg-checkout-all - check out mercurial repos needed to build toolchain
606 #@ (skips repos which are already checked out) 640 #@ (skips repos which are already checked out)
607 hg-checkout-all() { 641 hg-checkout-all() {
608 StepBanner "HG-CHECKOUT-ALL" 642 StepBanner "HG-CHECKOUT-ALL"
609 hg-checkout-llvm-gcc 643 if ${UTMAN_UPSTREAM}; then
610 hg-checkout-llvm 644 hg-checkout-upstream
645 else
646 hg-checkout-llvm-gcc
647 hg-checkout-llvm
648 fi
611 hg-checkout-binutils 649 hg-checkout-binutils
612 hg-checkout-newlib 650 hg-checkout-newlib
613 hg-checkout-compiler-rt 651 hg-checkout-compiler-rt
614 hg-checkout-google-perftools 652 hg-checkout-google-perftools
615 hg-checkout-llvm-mq-patches 653 if ${UTMAN_USE_MQ}; then
616 hg-checkout-llvm-gcc-mq-patches 654 hg-checkout-llvm-mq-patches
655 hg-checkout-llvm-gcc-mq-patches
656 fi
617 } 657 }
618 658
619 hg-checkout-llvm-gcc() { 659 hg-checkout-llvm-gcc() {
620 hg-check-if-using-old-repo ${TC_SRC_LLVM_GCC} 660 hg-check-if-using-old-repo ${TC_SRC_LLVM_GCC}
621 hg-checkout ${REPO_LLVM_GCC} ${TC_SRC_LLVM_GCC} ${LLVM_GCC_REV} 661 hg-checkout ${REPO_LLVM_GCC} ${TC_SRC_LLVM_GCC} ${LLVM_GCC_REV}
622 } 662 }
623 663
624 hg-checkout-llvm() { 664 hg-checkout-llvm() {
625 hg-check-if-using-old-repo ${TC_SRC_LLVM} 665 hg-check-if-using-old-repo ${TC_SRC_LLVM}
626 hg-checkout ${REPO_LLVM} ${TC_SRC_LLVM} ${LLVM_REV} 666 hg-checkout ${REPO_LLVM} ${TC_SRC_LLVM} ${LLVM_REV}
627 } 667 }
628 668
669 hg-checkout-upstream() {
670 hg-checkout ${REPO_UPSTREAM} ${TC_SRC_UPSTREAM} ${UPSTREAM_REV}
jvoung - send to chromium... 2011/07/28 23:48:54 Just noticed, but should all the ${TC_SRC...} have
pdox 2011/07/29 00:05:55 Done.
671 }
672
629 hg-checkout-binutils() { 673 hg-checkout-binutils() {
630 hg-checkout ${REPO_BINUTILS} ${TC_SRC_BINUTILS} ${BINUTILS_REV} 674 hg-checkout ${REPO_BINUTILS} ${TC_SRC_BINUTILS} ${BINUTILS_REV}
631 } 675 }
632 676
633 hg-checkout-newlib() { 677 hg-checkout-newlib() {
634 hg-checkout ${REPO_NEWLIB} ${TC_SRC_NEWLIB} ${NEWLIB_REV} 678 hg-checkout ${REPO_NEWLIB} ${TC_SRC_NEWLIB} ${NEWLIB_REV}
635 newlib-nacl-headers 679 newlib-nacl-headers
636 } 680 }
637 681
638 hg-checkout-compiler-rt() { 682 hg-checkout-compiler-rt() {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 #@ everything - Build and install untrusted SDK. no translator 788 #@ everything - Build and install untrusted SDK. no translator
745 everything() { 789 everything() {
746 790
747 mkdir -p "${PNACL_ROOT}" 791 mkdir -p "${PNACL_ROOT}"
748 792
749 hg-checkout-all 793 hg-checkout-all
750 794
751 if ${UTMAN_USE_MQ}; then 795 if ${UTMAN_USE_MQ}; then
752 StepBanner "Updating hg sources via MQ=${UTMAN_USE_MQ}"; 796 StepBanner "Updating hg sources via MQ=${UTMAN_USE_MQ}";
753 setup-hg-mq 797 setup-hg-mq
798 elif ${UTMAN_UPSTREAM}; then
799 if ! ${UTMAN_UPSTREAM_SKIP_UPDATE}; then
800 StepBanner "Updating upstreaming repository"
801 hg-update-upstream
802 fi
754 else 803 else
755 StepBanner "Updating all hg sources" 804 StepBanner "Updating all hg sources"
756 hg-update-llvm-pnacl-sfi 805 hg-update-llvm-pnacl-sfi
757 fi 806 fi
758 807
759 hg-update-non-llvm 808 hg-update-non-llvm
760 everything-post-hg 809 everything-post-hg
761 } 810 }
762 811
763 #@ everything-post-hg does everything AFTER hg setup 812 #@ everything-post-hg does everything AFTER hg setup
(...skipping 2757 matching lines...) Expand 10 before | Expand all | Expand 10 after
3521 3570
3522 if [ "$(type -t $1)" != "function" ]; then 3571 if [ "$(type -t $1)" != "function" ]; then
3523 #Usage 3572 #Usage
3524 echo "ERROR: unknown function '$1'." >&2 3573 echo "ERROR: unknown function '$1'." >&2
3525 echo "For help, try:" 3574 echo "For help, try:"
3526 echo " $0 help" 3575 echo " $0 help"
3527 exit 1 3576 exit 1
3528 fi 3577 fi
3529 3578
3530 "$@" 3579 "$@"
OLDNEW
« buildbot/buildbot_spec2k.sh ('K') | « buildbot/buildbot_spec2k.sh ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698