diff options
Diffstat (limited to 'round-robin.sh')
-rw-r--r-- | round-robin.sh | 65 |
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 ) } |