Bug 1426892: Use ccache on buildbot; r?Fallen.
MozReview-Commit-ID: FwVfmH4ae6S
--- a/build/mozconfig.cache
+++ b/build/mozconfig.cache
@@ -1,141 +1,18 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Setup for build cache
-
-# Avoid duplication if the file happens to be included twice.
-if test -z "$bucket" -a -z "$NO_CACHE"; then
-
-# buildbot (or builders that use buildprops.json):
-if [ -f $topsrcdir/../buildprops.json ]; then
-read branch platform master <<EOF
-$(python2.7 -c 'import json; p = json.loads(open("'"$topsrcdir"'/../buildprops.json").read())["properties"]; print p["branch"], p["platform"], p["master"]' 2> /dev/null)
-EOF
+#
+# If we're here, we are on buildbot, so just use ccache locally.
-bucket=
-if test -z "$SCCACHE_DISABLE"; then
- case "${branch}" in
- try)
- case "${master}" in
- *scl1.mozilla.com*|*.scl3.mozilla.com*)
- bucket=mozilla-releng-s3-cache-us-west-1-try
- ;;
- *use1.mozilla.com*)
- bucket=mozilla-releng-s3-cache-us-east-1-try
- ;;
- *usw2.mozilla.com*)
- bucket=mozilla-releng-s3-cache-us-west-2-try
- ;;
- esac
+if test -z "$NO_CACHE"; then
+ # if we're on windows, disable ccache
+ case "${SYSTEMROOT}" in
+ *Windows)
;;
- autoland|mozilla-inbound)
- case "${master}" in
- *use1.mozilla.com*)
- bucket=mozilla-releng-s3-cache-us-east-1-prod
- ;;
- *usw2.mozilla.com*)
- bucket=mozilla-releng-s3-cache-us-west-2-prod
- ;;
- esac
+ *)
+ export CCACHE=ccache
;;
esac
fi
-fi
-
-# builds where buildprops didn't have the data (eg: taskcluster or non-buildbot) and without sccache disabled:
-if test -z "$bucket" -a -z "$SCCACHE_DISABLE"; then
-
- # prevent rerun if az is set, or wget is not available
- if test -z "$availability_zone" -a -x "$(command -v wget)"; then
- if test -n "${TASKCLUSTER_WORKER_GROUP}"; then
- # TASKCLUSTER_WORKER_GROUP is just the region now, so
- # stick an extra character on to make the already-convoluted logic
- # here simpler.
- availability_zone="${TASKCLUSTER_WORKER_GROUP}x"
- else
- # timeout after 1 second, and don't retry (failure indicates instance is not in ec2 or network issue)
- # availability_zone is of the form <region><letter> where region is e.g. us-west-2, and az is us-west-2a
- availability_zone=$(wget -T 1 -t 1 -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || true)
- fi
- if test -z "$availability_zone" -o "$availability_zone" = "not-ec2"; then
- availability_zone=not-ec2
- else
- # region is az with last letter trimmed
- region=${availability_zone%?}
- # set S3 bucket according to tree (level)
- case "${GECKO_HEAD_REPOSITORY}" in
- *hg.mozilla.org/try*)
- bucket=taskcluster-level-1-sccache-${region}
- ;;
- *hg.mozilla.org/integration/autoland*|*hg.mozilla.org/integration/mozilla-inbound*)
- bucket=taskcluster-level-3-sccache-${region}
- ;;
- esac
-
- # set a dummy master
- case "${region}" in
- eu-central-1)
- master=dummy.euc1.mozilla.com
- ;;
- us-east-1)
- master=dummy.use1.mozilla.com
- ;;
- us-west-1)
- master=dummy.usw1.mozilla.com
- ;;
- us-west-2)
- master=dummy.usw2.mozilla.com
- ;;
- esac
- fi
- fi
-fi
-
-# if platform hasn't been determined from buildprops, and we're on windows,
-# it must be set to prevent adding ac_add_options --with-ccache below
-if test -z "$platform"; then
- # set platform based on the SYSTEMROOT env var
- case "${SYSTEMROOT}" in
- *Windows)
- platform=windows
- suffix=.exe
- ;;
- esac
-fi
-
-if test -z "$bucket"; then
- case "$platform" in
- win*) : ;;
- *)
- export CCACHE=ccache
- esac
-else
- mk_add_options "export SCCACHE_BUCKET=$bucket"
- case "$master" in
- *us[ew][12].mozilla.com*|*euc1.mozilla.com*)
- mk_add_options "export SCCACHE_NAMESERVER=169.254.169.253"
- ;;
- esac
- export CCACHE="$topsrcdir/sccache2/sccache${suffix}"
- export SCCACHE_VERBOSE_STATS=1
- mk_add_options MOZBUILD_MANAGE_SCCACHE_DAEMON=${topsrcdir}/sccache2/sccache
- mk_add_options "UPLOAD_EXTRA_FILES+=sccache.log.gz"
- case "$platform" in
- win*)
- # sccache supports a special flag to create depfiles.
- #TODO: bug 1318370 - move this all into toolchain.configure
- export _DEPEND_CFLAGS='-deps$(MDDEPDIR)/$(@F).pp'
- # Windows builds have a default wrapper that needs to be overridden
- mk_add_options "export CC_WRAPPER="
- mk_add_options "export CXX_WRAPPER="
- # For now, sccache doesn't support separate PDBs so force debug info to be
- # in object files.
- mk_add_options "export COMPILE_PDB_FLAG="
- mk_add_options "export HOST_PDB_FLAG="
- mk_add_options "export MOZ_DEBUG_FLAGS=-Z7"
- ;;
- esac
-fi
-
-fi