summaryrefslogtreecommitdiff
path: root/round-robin.sh
diff options
context:
space:
mode:
Diffstat (limited to 'round-robin.sh')
-rw-r--r--round-robin.sh65
1 files changed, 47 insertions, 18 deletions
diff --git a/round-robin.sh b/round-robin.sh
index 95ce74c9..0844c9de 100644
--- a/round-robin.sh
+++ b/round-robin.sh
@@ -91,14 +91,24 @@ reset_artifacts ()
local single_branch=${rr[baseline_branch]}
- # Clone base-artifacts so that run_step can rsync artifacts for skipped
- # steps.
+ # Clone base-artifacts here so that bisect runs (which skip this step)
+ # don't overwrite it.
# base-artifacts repo is big and changes all the time, so we
# fetch only the $baseline_branch, instead of all branches.
- rr[base-artifacts_rev]="${rr[base-artifacts_rev]-${rr[baseline_branch]}}"
if ${rr[init_configuration]-false}; then
rr[base-artifacts_rev]=empty
single_branch=empty
+ elif [ x"${rr[base-artifacts_rev]+set}" = x"set" ] && ${rr[reset_baseline]}; then
+ # Since we re-write history of base-artifacts all the time we can't
+ # rely on SHA1 stored in manifests (aka ${rr[base-artifacts_rev]}) to
+ # exist. The important case here is reproduction of regressions from
+ # email instructions: baseline run with reset_baseline set. We could
+ # have tagged such SHA1s to keep them stored in the repo, but it is easier
+ # to just ignore base-artifacts_rev when reset_baseline is set.
+ rr[base-artifacts_rev]=empty
+ single_branch=empty
+ else
+ rr[base-artifacts_rev]="${rr[base-artifacts_rev]-${rr[baseline_branch]}}"
fi
clone_or_update_repo base-artifacts ${rr[base-artifacts_rev]} https://git-us.linaro.org/toolchain/ci/base-artifacts.git auto $single_branch
@@ -201,7 +211,9 @@ build_abe ()
local component="$1"
- local project stage
+ local project stage action
+ action="build"
+
case "$component" in
stage1)
project=gcc
@@ -211,6 +223,30 @@ build_abe ()
project=gcc
stage="--stage 2"
;;
+ bootstrap)
+ project=gcc
+ stage="--enable bootstrap"
+ ;;
+ bootstrap_ubsan)
+ project=gcc
+ stage="--set buildconfig=bootstrap-ubsan"
+ ;;
+ bootstrap_O3)
+ project=gcc
+ stage="--set buildconfig=bootstrap-O3"
+ ;;
+ bootstrap_O1)
+ project=gcc
+ stage="--set buildconfig=bootstrap-O1"
+ ;;
+ bootstrap_lto)
+ project=gcc
+ stage="--set buildconfig=bootstrap-lto"
+ ;;
+ bootstrap_debug)
+ project=gcc
+ stage="--set buildconfig=bootstrap-debug"
+ ;;
*)
project=$component
stage=""
@@ -256,10 +292,15 @@ build_abe ()
fi
ccache -z
+ local target_opt=""
+ if [ x"${rr[target]}" != x"native" ]; then
+ target_opt="--target $gnu_target"
+ fi
+
# Run "./abe.sh --build $project".
./abe.sh \
- --build $project \
- --target $gnu_target \
+ --$action $project \
+ $target_opt \
--extraconfigdir config/master \
$custom_abe_src_opt \
$stage
@@ -442,18 +483,6 @@ update_baseline ()
git -C base-artifacts commit $amend -m "$msg_title
$(cat ${rr[top_artifacts]}/results)"
-
- # We saw strange behavior with base-artifacts/results not being updated
- # in the rsync above. This should be fixed by "-I" rsync option, but
- # keep below asserts just in case.
- if [ x"$(diff -up ${rr[top_artifacts]}/results base-artifacts/results)" != x"" ] \
- || [ x"$amend" = x"" -a x"$(git -C base-artifacts diff HEAD HEAD^ -- results)" = x"" ]; then
- cd base-artifacts
- git status
- cat results
- ls -la
- assert false
- fi
)
}