summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTCWG BuildSlave <tcwg-buildslave@linaro.org>2023-12-12 22:16:47 +0000
committerTCWG BuildSlave <tcwg-buildslave@linaro.org>2023-12-12 22:16:47 +0000
commit6681d3852e476ec533c3c54b1f5bb3afab330a7d (patch)
tree4c65775e137611da9328353e4a65a1fc598ce960
parentea7ae7f018953f2ce7de6ddb2bc7d9764ce6ad73 (diff)
onsuccess: #113: 22078: [TCWG CI] https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/
Results : | # reset_artifacts: | -10 | # build_abe binutils: | -9 | # build_kernel_llvm: | -5 | # build_abe qemu: | -2 | # linux_n_obj: | 22078 check_regression status : 0
-rw-r--r--01-reset_artifacts/console.log.xzbin2092 -> 2312 bytes
-rw-r--r--02-prepare_abe/console.log.xzbin2604 -> 2608 bytes
-rw-r--r--03-build_abe-binutils/console.log.xzbin28216 -> 27408 bytes
-rw-r--r--03-build_abe-binutils/make-binutils.log.xzbin17928 -> 17672 bytes
-rw-r--r--04-build_kernel_llvm/console.log.xzbin68316 -> 70596 bytes
-rw-r--r--05-build_abe-qemu/console.log.xzbin32848 -> 33528 bytes
-rw-r--r--05-build_abe-qemu/make-qemu.log.xzbin22260 -> 23100 bytes
-rw-r--r--06-build_linux/console.log.xzbin3456 -> 3444 bytes
-rw-r--r--08-check_regression/console.log.xzbin1212 -> 1320 bytes
-rw-r--r--git/binutils_rev2
-rw-r--r--git/llvm_rev2
-rw-r--r--jenkins/build-name2
-rw-r--r--jenkins/notify-full.log2497
-rw-r--r--jenkins/notify-init.log155
-rw-r--r--jenkins/run-build.env16
-rw-r--r--manifest.sh12
-rw-r--r--notify/jira/comment-template.txt2
-rw-r--r--notify/mail-body.txt33
-rw-r--r--notify/mail-recipients.txt2
-rw-r--r--notify/mail-subject.txt2
20 files changed, 349 insertions, 2376 deletions
diff --git a/01-reset_artifacts/console.log.xz b/01-reset_artifacts/console.log.xz
index 16fb365..0b89563 100644
--- a/01-reset_artifacts/console.log.xz
+++ b/01-reset_artifacts/console.log.xz
Binary files differ
diff --git a/02-prepare_abe/console.log.xz b/02-prepare_abe/console.log.xz
index 4450ed0..9124c8e 100644
--- a/02-prepare_abe/console.log.xz
+++ b/02-prepare_abe/console.log.xz
Binary files differ
diff --git a/03-build_abe-binutils/console.log.xz b/03-build_abe-binutils/console.log.xz
index d7dfcef..58e59c9 100644
--- a/03-build_abe-binutils/console.log.xz
+++ b/03-build_abe-binutils/console.log.xz
Binary files differ
diff --git a/03-build_abe-binutils/make-binutils.log.xz b/03-build_abe-binutils/make-binutils.log.xz
index 1e1047a..36eff48 100644
--- a/03-build_abe-binutils/make-binutils.log.xz
+++ b/03-build_abe-binutils/make-binutils.log.xz
Binary files differ
diff --git a/04-build_kernel_llvm/console.log.xz b/04-build_kernel_llvm/console.log.xz
index b0496ed..e943120 100644
--- a/04-build_kernel_llvm/console.log.xz
+++ b/04-build_kernel_llvm/console.log.xz
Binary files differ
diff --git a/05-build_abe-qemu/console.log.xz b/05-build_abe-qemu/console.log.xz
index 2abcf8a..f5d47ba 100644
--- a/05-build_abe-qemu/console.log.xz
+++ b/05-build_abe-qemu/console.log.xz
Binary files differ
diff --git a/05-build_abe-qemu/make-qemu.log.xz b/05-build_abe-qemu/make-qemu.log.xz
index 16bd5db..ae3d78a 100644
--- a/05-build_abe-qemu/make-qemu.log.xz
+++ b/05-build_abe-qemu/make-qemu.log.xz
Binary files differ
diff --git a/06-build_linux/console.log.xz b/06-build_linux/console.log.xz
index e94fbb4..8676b49 100644
--- a/06-build_linux/console.log.xz
+++ b/06-build_linux/console.log.xz
Binary files differ
diff --git a/08-check_regression/console.log.xz b/08-check_regression/console.log.xz
index f087e3b..5710094 100644
--- a/08-check_regression/console.log.xz
+++ b/08-check_regression/console.log.xz
Binary files differ
diff --git a/git/binutils_rev b/git/binutils_rev
index f6d5a21..1a0f0ac 100644
--- a/git/binutils_rev
+++ b/git/binutils_rev
@@ -1 +1 @@
-612f120d41e81056bf29db07f494f0cdf27b545d
+fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
diff --git a/git/llvm_rev b/git/llvm_rev
index 55a1fc8..19146aa 100644
--- a/git/llvm_rev
+++ b/git/llvm_rev
@@ -1 +1 @@
-a17671084db17bbe45d96024af30e172b350c66d
+0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
diff --git a/jenkins/build-name b/jenkins/build-name
index c311323..4b1542f 100644
--- a/jenkins/build-name
+++ b/jenkins/build-name
@@ -1 +1 @@
-#112-llvm-R22078
+#113-binutils-linux-llvm-qemu-R22078
diff --git a/jenkins/notify-full.log b/jenkins/notify-full.log
index 76b7766..16cb3c2 100644
--- a/jenkins/notify-full.log
+++ b/jenkins/notify-full.log
@@ -2,7 +2,6 @@
/home/tcwg-buildslave/workspace/tcwg_kernel_1/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ATATT3xFfGF0T6lmyRRI1GPXAjFc6UC66WsAJyuXpga-0JusQbYQdlG4NfS8kED4ejPRlZs9E57FWxFlN7K67E-9t-EXcNqVpzVQwTRd2JDDboAUNRnk00rMY9KXELe8Jb9dKP7p3MTXz2HTqtpMKIM2VZQUmZf_TcIuAN0mVpSPtZtdoLZBnCk=34F9AA87 __stage full __verbose true __build_script tcwg_kernel-build.sh
-# setup_notify_environment
+ false
+ dryrun=
+ declare top_artifacts ci_project ci_config
@@ -10,6 +9,7 @@
+ declare -a changed_components
+ declare print_commits_f print_result_f print_config_f print_last_icommit_f
+ dump_model_only=false
+# setup_notify_environment
+ setup_notify_environment
+ echo '# setup_notify_environment'
+ top_artifacts=artifacts
@@ -26,17 +26,17 @@
++ get_baseline_manifest BUILD_URL
++ get_manifest base-artifacts/manifest.sh BUILD_URL false
++ set +x
-# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/111/
+# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/
# Using dir : base-artifacts
-+ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/111/'
++ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/'
+ echo '# Using dir : base-artifacts'
++ get_current_manifest BUILD_URL
++ get_manifest artifacts/manifest.sh BUILD_URL
++ set +x
-# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/
+# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/
# Using dir : artifacts
-+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/'
++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/'
+ echo '# Using dir : artifacts'
+ echo ''
+ mkdir -p artifacts/notify
@@ -61,17 +61,38 @@
+++ set -euf -o pipefail
+++ local c delim=
+++ for c in ${rr[components]}
-+++ '[' xbaseline '!=' xbaseline ']'
++++ '[' xgit://sourceware.org/git/binutils-gdb.git#master '!=' xbaseline ']'
++++ echo -ne binutils
++++ delim=' '
+++ for c in ${rr[components]}
+++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']'
-+++ echo -ne llvm
++++ echo -ne ' llvm'
+++ delim=' '
+++ for c in ${rr[components]}
-+++ '[' xbaseline '!=' xbaseline ']'
++++ '[' xhttps://git.linaro.org/kernel-org/linux-stable.git#linux-rolling-stable '!=' xbaseline ']'
++++ echo -ne ' linux'
++++ delim=' '
+++ for c in ${rr[components]}
-+++ '[' xbaseline '!=' xbaseline ']'
++++ '[' xhttps://gitlab.com/qemu-project/qemu.git#master '!=' xbaseline ']'
++++ echo -ne ' qemu'
++++ delim=' '
+++ echo
++ for c in $(print_updated_components)
++++ get_current_git binutils_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/binutils_rev
++++ get_baseline_git binutils_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/binutils_rev
+++ '[' xfa659800b009df1f0bdb0c5d24eec047fb9c3fa0 '!=' x612f120d41e81056bf29db07f494f0cdf27b545d ']'
+++ echo -ne binutils
+++ delim=' '
+++ for c in $(print_updated_components)
+++ get_current_git llvm_rev
+++ set -euf -o pipefail
+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
@@ -83,59 +104,63 @@
+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat base-artifacts/git/llvm_rev
-++ '[' xa17671084db17bbe45d96024af30e172b350c66d '!=' xd77067d08a3f56dc2d0e6c95bd2852c943df743a ']'
-++ echo -ne llvm
+++ '[' x0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a '!=' xa17671084db17bbe45d96024af30e172b350c66d ']'
+++ echo -ne ' llvm'
++ delim=' '
+++ for c in $(print_updated_components)
++++ get_current_git linux_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/linux_rev
++++ get_baseline_git linux_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/linux_rev
+++ '[' x288a2f83ed42ce91cf92c2b08dad298a3da0cd9a '!=' x288a2f83ed42ce91cf92c2b08dad298a3da0cd9a ']'
+++ for c in $(print_updated_components)
++++ get_current_git qemu_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/qemu_rev
++++ get_baseline_git qemu_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/qemu_rev
+++ '[' x9c74490bff6c8886a922008d0c9ce6cae70dd17e '!=' x9c74490bff6c8886a922008d0c9ce6cae70dd17e ']'
++ echo
+# Debug traces :
+# change_kind=multiple_components : binutils llvm
+ local c base_rev cur_rev c_commits
-+ '[' 1 = 0 ']'
-+ '[' 1 = 1 ']'
-+ changed_single_component=llvm
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ first_bad=a17671084db17bbe45d96024af30e172b350c66d
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ last_good=d77067d08a3f56dc2d0e6c95bd2852c943df743a
-+ local res
-+ res=0
-+ wait 5351
-+ git -C llvm rev-parse --verify HEAD
-+ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']'
-+ set -euf -o pipefail +x
-+ single_commit_p llvm
-+ set -euf -o pipefail
-+ local c=llvm
-+ local base_rev cur_rev sha1
-++ get_baseline_git llvm_rev
++ '[' 2 = 0 ']'
++ '[' 2 = 1 ']'
++ change_kind=multiple_components
++ changed_single_component=
++ echo '# Debug traces :'
++ echo '# change_kind=multiple_components : binutils llvm'
++ for c in "${changed_components[@]}"
+++ get_baseline_git binutils_rev
++ set -euf -o pipefail
++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
+++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']'
++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
-++ get_current_git llvm_rev
+++ cat base-artifacts/git/binutils_rev
++ base_rev=612f120d41e81056bf29db07f494f0cdf27b545d
+++ get_current_git binutils_rev
++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
+++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']'
++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-++ git -C llvm rev-parse 'a17671084db17bbe45d96024af30e172b350c66d^@'
-+ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@")
-+ '[' e3f154d8733928fa725584736a18b75832db30db = d77067d08a3f56dc2d0e6c95bd2852c943df743a ']'
-+ return 1
-# Debug traces :
-# change_kind=single_component : llvm
-+ change_kind=single_component
-+ echo '# Debug traces :'
-+ echo '# change_kind=single_component : llvm'
+++ cat artifacts/git/binutils_rev
++ cur_rev=fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+++ git -C binutils rev-list --count 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+# rev for binutils : 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0 (33 commits)
++ c_commits=33
++ echo '# rev for binutils : 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0 (33 commits)'
+ for c in "${changed_components[@]}"
++ get_baseline_git llvm_rev
++ set -euf -o pipefail
@@ -143,19 +168,18 @@
++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
++ set -euf -o pipefail +x
++ cat base-artifacts/git/llvm_rev
-# rev for llvm : d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d (362 commits)
-
-# post_interesting_commits
-+ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
++ base_rev=a17671084db17bbe45d96024af30e172b350c66d
++ get_current_git llvm_rev
++ set -euf -o pipefail
++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
++ set -euf -o pipefail +x
++ cat artifacts/git/llvm_rev
-+ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-++ git -C llvm rev-list --count d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-+ c_commits=362
-+ echo '# rev for llvm : d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d (362 commits)'
++ cur_rev=0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+++ git -C llvm rev-list --count a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+# rev for llvm : a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a (331 commits)
+
++ c_commits=331
++ echo '# rev for llvm : a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a (331 commits)'
+ echo ''
+ setup_stages_to_run
+ '[' ignore = onregression ']'
@@ -176,25 +200,26 @@
+ generate_extra_details_f=generate_extra_details
+ case "$ci_project" in
+ post_interesting_commits init
+# post_interesting_commits
+ set -euf -o pipefail
+ echo '# post_interesting_commits'
+ local stage=init
-+ '[' single_component '!=' single_commit ']'
++ '[' multiple_components '!=' single_commit ']'
+ return
+ '[' full '!=' full ']'
+ generate_extra_details
+ true
-# post_interesting_commits
+ check_if_first_report
+ declare -g first_icommit_to_report
+ first_icommit_to_report=false
-+ '[' xsingle_component '!=' xsingle_commit ']'
++ '[' xmultiple_components '!=' xsingle_commit ']'
+ return
+ post_interesting_commits full
+# post_interesting_commits
+ set -euf -o pipefail
+ echo '# post_interesting_commits'
+ local stage=full
-+ '[' single_component '!=' single_commit ']'
++ '[' multiple_components '!=' single_commit ']'
+ return
+ true
+ generate_jira_dir
@@ -205,7 +230,7 @@
++ set -euf -o pipefail
++ local print_arg=--entry
++ shift 1
-++ '[' xsingle_component '!=' xsingle_commit ']'
+++ '[' xmultiple_components '!=' xsingle_commit ']'
++ return 0
+ icommit_entry=
+ '[' '' '!=' '' ']'
@@ -229,9 +254,9 @@
+++ get_current_manifest BUILD_URL
+++ get_manifest artifacts/manifest.sh BUILD_URL
+++ set +x
-++ url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/artifact/artifacts
+++ url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/artifact/artifacts
++ '[' '' '!=' '' ']'
-++ echo 'https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/artifact/artifacts/notify/mail-body.txt/*view*/'
+++ echo 'https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/artifact/artifacts/notify/mail-body.txt/*view*/'
# print all notification files
+ echo '# print all notification files'
+ true
@@ -239,2172 +264,62 @@
+ set -euf -o pipefail
+ print_mail_recipients
+ set -euf -o pipefail
-+ local c=llvm
-+ '[' llvm = '' ']'
-+ local -A emails
-+ emails["tcwg-validation@linaro.org"]=bcc
-+ emails["author"]=cc
-+ emails["committer"]=to
-+ case "$ci_project/$ci_config:$c" in
-+ emails["author"]=no
-+ emails["committer"]=no
-+ emails["llvm@lists.linux.dev"]=to_postcommit
-+ local c email base_rev cur_rev
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-+ read -r email
-++ git -C llvm log --pretty=%ae d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ local precommit_postcommit=postcommit
++ local c=
+ '[' '' = '' ']'
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-+ read -r email
-++ git -C llvm log --pretty=%ce d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ unset 'emails[author]' 'emails[committer]'
-+ local type
-+ recipients=()
-+ local -a recipients
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=bcc
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ recipients+=("$type:$email")
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=to_postcommit
-+ case "$precommit_postcommit:$type" in
-+ type=to
-+ case "$type" in
-+ recipients+=("$email")
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ IFS=,
-+ echo bcc:tcwg-validation@linaro.org,llvm@lists.linux.dev
++ echo bcc:tcwg-validation@linaro.org
++ return 0
++ print_commits --oneline
++ set -euf -o pipefail
++ false
++ local print_arg=--oneline
-++ '[' single_component = no_change ']'
+++ '[' multiple_components = no_change ']'
++ local more_lines
-++ '[' single_component = single_commit ']'
-++ '[' single_component = single_component ']'
+++ '[' multiple_components = single_commit ']'
+++ '[' multiple_components = single_component ']'
+++ '[' multiple_components = multiple_components ']'
++ local new_commits c base_rev cur_rev c_commits components
++ local commits_or_patches
++ '[' '' '!=' '' ']'
++ commits_or_patches=commits
++ new_commits=0
++ for c in "${changed_components[@]}"
++++ get_baseline_git binutils_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/binutils_rev
+++ base_rev=612f120d41e81056bf29db07f494f0cdf27b545d
++++ get_current_git binutils_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/binutils_rev
+++ cur_rev=fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
++++ git -C binutils rev-list --count 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+++ c_commits=33
+++ new_commits=33
+++ for c in "${changed_components[@]}"
+++ get_baseline_git llvm_rev
+++ set -euf -o pipefail
+++ local base_artifacts=base-artifacts
+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat base-artifacts/git/llvm_rev
-++ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
+++ base_rev=a17671084db17bbe45d96024af30e172b350c66d
+++ get_current_git llvm_rev
+++ set -euf -o pipefail
+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat artifacts/git/llvm_rev
-++ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-+++ git -C llvm rev-list --count d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-++ c_commits=362
-++ new_commits=362
-+++ echo llvm
+++ cur_rev=0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
++++ git -C llvm rev-list --count a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+++ c_commits=331
+++ new_commits=364
++++ echo binutils llvm
+++ tr ' ' ,
-++ components=llvm
-++ echo '362 commits in llvm'
+++ components=binutils,llvm
+++ echo '364 commits in binutils,llvm'
++ '[' --oneline = --oneline ']'
++ return 0
++ print_result --oneline
@@ -2419,19 +334,19 @@
++ case "$print_arg" in
++ case "$ci_config" in
++ echo aarch64
-+ echo '[Linaro-TCWG-CI]' '362 commits in llvm: Success on aarch64'
++ echo '[Linaro-TCWG-CI]' '364 commits in binutils,llvm: Success on aarch64'
+ print_mail_body
+ local bad_artifacts_url good_artifacts_url
++ get_current_manifest BUILD_URL
++ get_manifest artifacts/manifest.sh BUILD_URL
++ set +x
-+ bad_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/artifact/artifacts
++ bad_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/artifact/artifacts
++ get_baseline_manifest BUILD_URL
++ get_manifest base-artifacts/manifest.sh BUILD_URL false
++ set +x
-+ good_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/111/artifact/artifacts
++ good_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/artifact/artifacts
+ local key=
-+ '[' single_component = single_commit ']'
++ '[' multiple_components = single_commit ']'
+ cat
+ '[' '' '!=' '' ']'
+ cat
@@ -2445,57 +360,96 @@
++ set -euf -o pipefail
++ false
++ local print_arg=--short
-++ '[' single_component = no_change ']'
+++ '[' multiple_components = no_change ']'
++ local more_lines
-++ '[' single_component = single_commit ']'
-++ '[' single_component = single_component ']'
+++ '[' multiple_components = single_commit ']'
+++ '[' multiple_components = single_component ']'
+++ '[' multiple_components = multiple_components ']'
++ local new_commits c base_rev cur_rev c_commits components
++ local commits_or_patches
++ '[' '' '!=' '' ']'
++ commits_or_patches=commits
++ new_commits=0
++ for c in "${changed_components[@]}"
++++ get_baseline_git binutils_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/binutils_rev
+++ base_rev=612f120d41e81056bf29db07f494f0cdf27b545d
++++ get_current_git binutils_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/binutils_rev
+++ cur_rev=fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
++++ git -C binutils rev-list --count 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+++ c_commits=33
+++ new_commits=33
+++ for c in "${changed_components[@]}"
+++ get_baseline_git llvm_rev
+++ set -euf -o pipefail
+++ local base_artifacts=base-artifacts
+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat base-artifacts/git/llvm_rev
-++ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
+++ base_rev=a17671084db17bbe45d96024af30e172b350c66d
+++ get_current_git llvm_rev
+++ set -euf -o pipefail
+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat artifacts/git/llvm_rev
-++ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-+++ git -C llvm rev-list --count d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-++ c_commits=362
-++ new_commits=362
-+++ echo llvm
+++ cur_rev=0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
++++ git -C llvm rev-list --count a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+++ c_commits=331
+++ new_commits=364
++++ echo binutils llvm
+++ tr ' ' ,
-++ components=llvm
-++ echo '362 commits in llvm'
+++ components=binutils,llvm
+++ echo '364 commits in binutils,llvm'
++ '[' --short = --oneline ']'
++ for c in "${changed_components[@]}"
++++ get_baseline_git binutils_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/binutils_rev
+++ base_rev=612f120d41e81056bf29db07f494f0cdf27b545d
++++ get_current_git binutils_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/binutils_rev
+++ cur_rev=fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
++++ git -C binutils rev-list --count 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+++ c_commits=33
+++ '[' '' '!=' '' ']'
+++ git -C binutils log -n 5 --oneline 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+++ '[' 33 -gt 5 ']'
+++ echo '... and 28 more commits in binutils'
+++ '[' '' '!=' '' ']'
+++ for c in "${changed_components[@]}"
+++ get_baseline_git llvm_rev
+++ set -euf -o pipefail
+++ local base_artifacts=base-artifacts
+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat base-artifacts/git/llvm_rev
-++ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
+++ base_rev=a17671084db17bbe45d96024af30e172b350c66d
+++ get_current_git llvm_rev
+++ set -euf -o pipefail
+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat artifacts/git/llvm_rev
-++ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-+++ git -C llvm rev-list --count d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-++ c_commits=362
+++ cur_rev=0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
++++ git -C llvm rev-list --count a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+++ c_commits=331
++ '[' '' '!=' '' ']'
-++ git -C llvm log -n 5 --oneline d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-++ '[' 362 -gt 5 ']'
-++ echo '... and 357 more commits in llvm'
+++ git -C llvm log -n 5 --oneline a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+++ '[' 331 -gt 5 ']'
+++ echo '... and 326 more commits in llvm'
++ '[' '' '!=' '' ']'
++ return 0
++ print_result --short
@@ -2526,28 +480,19 @@
# build_abe qemu:
-2
# linux_n_obj:
-22078
-# First few build errors in logs:
-
-# 00:24:17 ./include/linux/fortify-string.h:493:4: error: call to '\''__write_overflow_field'\'' declared with '\''warning'\'' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning]
-# 00:24:17 make[5]: *** [scripts/Makefile.build:243: fs/smb/client/cifsencrypt.o] Error 1
-# 00:26:24 make[4]: *** [scripts/Makefile.build:480: fs/smb/client] Error 2
-# 00:26:24 make[3]: *** [scripts/Makefile.build:480: fs/smb] Error 2
-# 01:04:43 make[2]: *** [scripts/Makefile.build:480: fs] Error 2
-# 01:11:21 make[1]: *** [/home/tcwg-buildslave/workspace/tcwg_kernel_1/linux/Makefile:2034: .] Error 2
-# 01:11:21 make: *** [Makefile:234: __sub-make] Error 2'
+22078'
++ print_config --long
++ false
++ local print_arg=--long
++ case "$print_arg" in
++ echo 'CI config tcwg_kernel/llvm-master-aarch64-stable-allyesconfig'
-+ '[' single_component '!=' single_commit ']'
++ '[' multiple_components '!=' single_commit ']'
+ return
+ true
+ generate_jenkins_html_files
-+ wait 5484
# generate_jenkins_html_files
... Skipping
++ wait 310278
+ set -euf -o pipefail
+ echo '# generate_jenkins_html_files'
+ true
@@ -2664,7 +609,6 @@
... Skipping
# post_dashboard_squad
... Skipping
-# generate_lnt_report
+ echo '# generate dashboard'
+ generate_dashboard_squad
+ local results_date
@@ -2678,10 +622,11 @@
+ echo '... Skipping'
+ return
+ generate_lnt_report
-+ wait 5516
++ wait 310310
+ set -euf -o pipefail
+ local results_date
+ echo '# generate_lnt_report'
+# generate_lnt_report
+ true
+ . /home/tcwg-buildslave/workspace/tcwg_kernel_1/jenkins-scripts/lnt-utils.sh
+ calculate_results_date
@@ -2704,14 +649,14 @@
++ assert_with_msg 'ERROR: No binutils in current git' '[' -f artifacts/git/binutils_rev ']'
++ set -euf -o pipefail +x
+++ cat artifacts/git/binutils_rev
-++ git -C binutils show --no-patch --pretty=%ct 612f120d41e81056bf29db07f494f0cdf27b545d
-+ cur_d=1702072951
+++ git -C binutils show --no-patch --pretty=%ct fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
++ cur_d=1702412370
+ '[' x1702072951 '!=' x ']'
-+ '[' x1702072951 = x ']'
-+ '[' 1702072951 -lt 1702072951 ']'
-+ '[' x1702072951 = x ']'
-+ '[' 1702072951 -gt 0 ']'
-+ results_date=1702072951
++ '[' x1702412370 = x ']'
++ '[' 1702412370 -lt 1702072951 ']'
++ '[' x1702412370 = x ']'
++ '[' 1702412370 -gt 0 ']'
++ results_date=1702412370
+ for c in $(get_current_manifest "{rr[components]}")
++ get_baseline_component_date llvm
++ set -euf -o pipefail
@@ -2719,21 +664,21 @@
++ assert_with_msg 'ERROR: No llvm in current git' '[' -f base-artifacts/git/llvm_rev ']'
++ set -euf -o pipefail +x
+++ cat base-artifacts/git/llvm_rev
-++ git -C llvm show --no-patch --pretty=%ct d77067d08a3f56dc2d0e6c95bd2852c943df743a
-+ base_d=1701868638
+++ git -C llvm show --no-patch --pretty=%ct a17671084db17bbe45d96024af30e172b350c66d
++ base_d=1702121954
++ get_current_component_date llvm
++ set -euf -o pipefail
++ assert_with_msg 'ERROR: No llvm in current git' '[' -f artifacts/git/llvm_rev ']'
++ set -euf -o pipefail +x
+++ cat artifacts/git/llvm_rev
-++ git -C llvm show --no-patch --pretty=%ct a17671084db17bbe45d96024af30e172b350c66d
-+ cur_d=1702121954
-+ '[' x1701868638 '!=' x ']'
-+ '[' x1702121954 = x ']'
-+ '[' 1702121954 -lt 1701868638 ']'
-+ '[' x1702121954 = x ']'
-+ '[' 1702121954 -gt 1702072951 ']'
-+ results_date=1702121954
+++ git -C llvm show --no-patch --pretty=%ct 0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
++ cur_d=1702414823
++ '[' x1702121954 '!=' x ']'
++ '[' x1702414823 = x ']'
++ '[' 1702414823 -lt 1702121954 ']'
++ '[' x1702414823 = x ']'
++ '[' 1702414823 -gt 1702412370 ']'
++ results_date=1702414823
+ for c in $(get_current_manifest "{rr[components]}")
++ get_baseline_component_date linux
++ set -euf -o pipefail
@@ -2754,7 +699,7 @@
+ '[' x1698228990 = x ']'
+ '[' 1698228990 -lt 1698228990 ']'
+ '[' x1698228990 = x ']'
-+ '[' 1698228990 -gt 1702121954 ']'
++ '[' 1698228990 -gt 1702414823 ']'
+ for c in $(get_current_manifest "{rr[components]}")
++ get_baseline_component_date qemu
++ set -euf -o pipefail
@@ -2775,31 +720,31 @@
+ '[' x1701891260 = x ']'
+ '[' 1701891260 -lt 1701891260 ']'
+ '[' x1701891260 = x ']'
-+ '[' 1701891260 -gt 1702121954 ']'
-+ assert_with_msg 'Failed to produce results_date' '[' 1702121954 -gt 0 ']'
++ '[' 1701891260 -gt 1702414823 ']'
++ assert_with_msg 'Failed to produce results_date' '[' 1702414823 -gt 0 ']'
+ set -euf -o pipefail +x
++ get_baseline_manifest '{rr[results_date]}'
++ get_manifest base-artifacts/manifest.sh '{rr[results_date]}' false
++ set +x
-+ base_d=1702007895
-+ '[' 1702007895 '!=' '' ']'
-+ assert '[' 1702121954 -ge 1702007895 ']'
++ base_d=1702064924
++ '[' 1702064924 '!=' '' ']'
++ assert '[' 1702414823 -ge 1702064924 ']'
+ set -euf -o pipefail +x
-+ '[' 1702121954 -gt 1702007895 ']'
-+ results_date=1702064924
-+ rr[results_date]=1702064924
++ '[' 1702414823 -gt 1702064924 ']'
++ results_date=1702239873
++ rr[results_date]=1702239873
+ cat
+ manifest_out
+ cat
++ get_current_manifest '{rr[results_date]}'
++ get_manifest artifacts/manifest.sh '{rr[results_date]}'
++ set +x
-+ results_date=1702064924
-++ date '+%Y-%m-%d %H:%M:%S' --date @1702064924
++ results_date=1702239873
+++ date '+%Y-%m-%d %H:%M:%S' --date @1702239873
... Skipping
# release_testresults_files
... Done
-+ results_date='2023-12-08 19:48:44'
++ results_date='2023-12-10 20:24:33'
+ case "$ci_project" in
+ echo '... Skipping'
+ return
diff --git a/jenkins/notify-init.log b/jenkins/notify-init.log
index 573cab9..bfeaacc 100644
--- a/jenkins/notify-init.log
+++ b/jenkins/notify-init.log
@@ -17,32 +17,32 @@
++ get_manifest artifacts/manifest.sh '{rr[ci_project]}'
++ set +x
+ ci_project=tcwg_kernel
+# Debug traces :
+# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/
+# Using dir : base-artifacts
++ get_current_manifest '{rr[ci_config]}'
++ get_manifest artifacts/manifest.sh '{rr[ci_config]}'
++ set +x
-# Debug traces :
+ ci_config=llvm-master-aarch64-stable-allyesconfig
+ echo '# Debug traces :'
++ get_baseline_manifest BUILD_URL
++ get_manifest base-artifacts/manifest.sh BUILD_URL false
++ set +x
-# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/111/
-# Using dir : base-artifacts
-+ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/111/'
++ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/'
+ echo '# Using dir : base-artifacts'
++ get_current_manifest BUILD_URL
++ get_manifest artifacts/manifest.sh BUILD_URL
++ set +x
-# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/
+# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/
# Using dir : artifacts
-+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/'
++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/'
+ echo '# Using dir : artifacts'
+ echo ''
+ mkdir -p artifacts/notify
+ '[' -f /home/tcwg-buildslave/.jipdate.yml ']'
-# check_source_changes
+ set +x
+# check_source_changes
+ case "$notify" in
+ declare -Ag pw
+ '[' ignore = precommit ']'
@@ -61,17 +61,38 @@
+++ set -euf -o pipefail
+++ local c delim=
+++ for c in ${rr[components]}
-+++ '[' xbaseline '!=' xbaseline ']'
++++ '[' xgit://sourceware.org/git/binutils-gdb.git#master '!=' xbaseline ']'
++++ echo -ne binutils
++++ delim=' '
+++ for c in ${rr[components]}
+++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']'
-+++ echo -ne llvm
++++ echo -ne ' llvm'
+++ delim=' '
+++ for c in ${rr[components]}
-+++ '[' xbaseline '!=' xbaseline ']'
++++ '[' xhttps://git.linaro.org/kernel-org/linux-stable.git#linux-rolling-stable '!=' xbaseline ']'
++++ echo -ne ' linux'
++++ delim=' '
+++ for c in ${rr[components]}
-+++ '[' xbaseline '!=' xbaseline ']'
++++ '[' xhttps://gitlab.com/qemu-project/qemu.git#master '!=' xbaseline ']'
++++ echo -ne ' qemu'
++++ delim=' '
+++ echo
++ for c in $(print_updated_components)
++++ get_current_git binutils_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/binutils_rev
++++ get_baseline_git binutils_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/binutils_rev
+++ '[' xfa659800b009df1f0bdb0c5d24eec047fb9c3fa0 '!=' x612f120d41e81056bf29db07f494f0cdf27b545d ']'
+++ echo -ne binutils
+++ delim=' '
+++ for c in $(print_updated_components)
+++ get_current_git llvm_rev
+++ set -euf -o pipefail
+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
@@ -83,59 +104,63 @@
+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
+++ set -euf -o pipefail +x
+++ cat base-artifacts/git/llvm_rev
-++ '[' xa17671084db17bbe45d96024af30e172b350c66d '!=' xd77067d08a3f56dc2d0e6c95bd2852c943df743a ']'
-++ echo -ne llvm
+++ '[' x0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a '!=' xa17671084db17bbe45d96024af30e172b350c66d ']'
+++ echo -ne ' llvm'
++ delim=' '
+++ for c in $(print_updated_components)
++++ get_current_git linux_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/linux_rev
++++ get_baseline_git linux_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/linux_rev
+++ '[' x288a2f83ed42ce91cf92c2b08dad298a3da0cd9a '!=' x288a2f83ed42ce91cf92c2b08dad298a3da0cd9a ']'
+++ for c in $(print_updated_components)
++++ get_current_git qemu_rev
++++ set -euf -o pipefail
++++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']'
++++ set -euf -o pipefail +x
++++ cat artifacts/git/qemu_rev
++++ get_baseline_git qemu_rev
++++ set -euf -o pipefail
++++ local base_artifacts=base-artifacts
++++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']'
++++ set -euf -o pipefail +x
++++ cat base-artifacts/git/qemu_rev
+++ '[' x9c74490bff6c8886a922008d0c9ce6cae70dd17e '!=' x9c74490bff6c8886a922008d0c9ce6cae70dd17e ']'
++ echo
+# Debug traces :
+# change_kind=multiple_components : binutils llvm
+ local c base_rev cur_rev c_commits
-+ '[' 1 = 0 ']'
-+ '[' 1 = 1 ']'
-+ changed_single_component=llvm
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ first_bad=a17671084db17bbe45d96024af30e172b350c66d
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ last_good=d77067d08a3f56dc2d0e6c95bd2852c943df743a
-+ local res
-+ res=0
-+ wait 5238
-+ git -C llvm rev-parse --verify HEAD
-+ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']'
-+ set -euf -o pipefail +x
-+ single_commit_p llvm
-+ set -euf -o pipefail
-+ local c=llvm
-+ local base_rev cur_rev sha1
-++ get_baseline_git llvm_rev
++ '[' 2 = 0 ']'
++ '[' 2 = 1 ']'
++ change_kind=multiple_components
++ changed_single_component=
++ echo '# Debug traces :'
++ echo '# change_kind=multiple_components : binutils llvm'
++ for c in "${changed_components[@]}"
+++ get_baseline_git binutils_rev
++ set -euf -o pipefail
++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
+++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']'
++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
-++ get_current_git llvm_rev
+++ cat base-artifacts/git/binutils_rev
++ base_rev=612f120d41e81056bf29db07f494f0cdf27b545d
+++ get_current_git binutils_rev
++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
+++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']'
++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-++ git -C llvm rev-parse 'a17671084db17bbe45d96024af30e172b350c66d^@'
-# Debug traces :
-# change_kind=single_component : llvm
-+ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@")
-+ '[' e3f154d8733928fa725584736a18b75832db30db = d77067d08a3f56dc2d0e6c95bd2852c943df743a ']'
-+ return 1
-+ change_kind=single_component
-+ echo '# Debug traces :'
-+ echo '# change_kind=single_component : llvm'
+++ cat artifacts/git/binutils_rev
++ cur_rev=fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+++ git -C binutils rev-list --count 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0
+# rev for binutils : 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0 (33 commits)
++ c_commits=33
++ echo '# rev for binutils : 612f120d41e81056bf29db07f494f0cdf27b545d..fa659800b009df1f0bdb0c5d24eec047fb9c3fa0 (33 commits)'
+ for c in "${changed_components[@]}"
++ get_baseline_git llvm_rev
++ set -euf -o pipefail
@@ -143,18 +168,19 @@
++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
++ set -euf -o pipefail +x
++ cat base-artifacts/git/llvm_rev
-+ base_rev=d77067d08a3f56dc2d0e6c95bd2852c943df743a
++ base_rev=a17671084db17bbe45d96024af30e172b350c66d
++ get_current_git llvm_rev
++ set -euf -o pipefail
++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
++ set -euf -o pipefail +x
++ cat artifacts/git/llvm_rev
-+ cur_rev=a17671084db17bbe45d96024af30e172b350c66d
-++ git -C llvm rev-list --count d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d
-# rev for llvm : d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d (362 commits)
++ cur_rev=0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+++ git -C llvm rev-list --count a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a
+# rev for llvm : a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a (331 commits)
-+ c_commits=362
-+ echo '# rev for llvm : d77067d08a3f56dc2d0e6c95bd2852c943df743a..a17671084db17bbe45d96024af30e172b350c66d (362 commits)'
+# post_interesting_commits
++ c_commits=331
++ echo '# rev for llvm : a17671084db17bbe45d96024af30e172b350c66d..0d1490f09f23bf204b714c3c6ba5e0aaf4eeed9a (331 commits)'
+ echo ''
+ setup_stages_to_run
+ '[' ignore = onregression ']'
@@ -175,13 +201,12 @@
+ generate_extra_details_f=generate_extra_details
+ case "$ci_project" in
+ post_interesting_commits init
-# post_interesting_commits
-Init stage ran successfully.
+ set -euf -o pipefail
+ echo '# post_interesting_commits'
+ local stage=init
-+ '[' single_component '!=' single_commit ']'
++ '[' multiple_components '!=' single_commit ']'
+ return
+Init stage ran successfully.
+ '[' init '!=' full ']'
+ echo 'Init stage ran successfully.'
+ exit 0
diff --git a/jenkins/run-build.env b/jenkins/run-build.env
index 1f3de44..7807dd5 100644
--- a/jenkins/run-build.env
+++ b/jenkins/run-build.env
@@ -1,9 +1,15 @@
-build_name="#112"
+build_name="#113"
docker_opts=(--distro
default )
source build_container.sh
trap "cleanup_all_containers" EXIT
-build_name="#112-llvm"
-branch_opt=(==rr\[llvm_git\]
-https://github.com/llvm/llvm-project.git#main )
-build_name="#112-llvm-R22078"
+build_name="#113-binutils-linux-llvm-qemu"
+branch_opt=(==rr\[binutils_git\]
+git://sourceware.org/git/binutils-gdb.git#master
+==rr\[linux_git\]
+https://git.linaro.org/kernel-org/linux-stable.git#linux-rolling-stable
+==rr\[llvm_git\]
+https://github.com/llvm/llvm-project.git#main
+==rr\[qemu_git\]
+https://gitlab.com/qemu-project/qemu.git#master )
+build_name="#113-binutils-linux-llvm-qemu-R22078"
diff --git a/manifest.sh b/manifest.sh
index ea3088b..83fea37 100644
--- a/manifest.sh
+++ b/manifest.sh
@@ -1,4 +1,4 @@
-declare -g "jenkins_scripts_rev=fb752d67b9980b7c9c100c85ea1d18f8866f7411"
+declare -g "jenkins_scripts_rev=c06465e1333ba6b83641814c1877e7d65b2f4d15"
# Artifacts directory
# Recording parameters to manifest: artifacts/manifest.sh
rr[ci_project]="tcwg_kernel"
@@ -6,23 +6,23 @@ rr[ci_config]="llvm-master-aarch64-stable-allyesconfig"
declare -g "scripts_branch=master"
rr[mode]="build"
rr[update_baseline]="onsuccess"
-declare -g "BUILD_URL=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/"
+declare -g "BUILD_URL=https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/"
declare -g "SQUAD_GRP="
+rr[binutils_git]="git://sourceware.org/git/binutils-gdb.git#master"
+rr[linux_git]="https://git.linaro.org/kernel-org/linux-stable.git#linux-rolling-stable"
rr[llvm_git]="https://github.com/llvm/llvm-project.git#main"
+rr[qemu_git]="https://gitlab.com/qemu-project/qemu.git#master"
# Saving rr[] in the manifest
rr[abe_branch]="master"
rr[abe_repo]="https://git-us.linaro.org/toolchain/abe.git"
rr[baseline_branch]="linaro-local/ci/tcwg_kernel/llvm-master-aarch64-stable-allyesconfig"
-rr[binutils_git]="baseline"
rr[breakup_changed_components]="breakup_changed_components linux"
rr[components]="binutils llvm linux qemu"
rr[host_c++]="/usr/bin/g++"
rr[host_cc]="/usr/bin/gcc"
-rr[linux_git]="baseline"
rr[no_regression_p]="no_regression_p"
rr[no_regression_result]="0"
-rr[qemu_git]="baseline"
rr[target]="aarch64"
rr[toolchain]="llvm"
declare -g "notify=ignore"
-rr[results_date]="1702064924"
+rr[results_date]="1702239873"
diff --git a/notify/jira/comment-template.txt b/notify/jira/comment-template.txt
index ee55c82..0f72fb0 100644
--- a/notify/jira/comment-template.txt
+++ b/notify/jira/comment-template.txt
@@ -1,3 +1,3 @@
[LLVM-646]
Success
-Details: https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/artifact/artifacts/notify/mail-body.txt/*view*/
+Details: https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/artifact/artifacts/notify/mail-body.txt/*view*/
diff --git a/notify/mail-body.txt b/notify/mail-body.txt
index 580ef67..0640544 100644
--- a/notify/mail-body.txt
+++ b/notify/mail-body.txt
@@ -2,13 +2,19 @@ Dear contributor, our automatic CI has detected problems related to your patch(e
In CI config tcwg_kernel/llvm-master-aarch64-stable-allyesconfig after:
- | 362 commits in llvm
- | a17671084db1 [mlir][ArmSME] Update `-allocate-arm-sme-tiles` description (NFC) (#74871)
- | e3f154d87339 [libc++] Implements Runtime format strings. (#73353)
- | 3ec6c7255184 [AST] Fix -Wlogical-op-parentheses in ExprConstant.cpp (NFC)
- | fa981f57dde3 [bazel] Port 46708a5bcba28955b2ddeddf5c0e64398223642b
- | b3e6ff331925 [clang-cl] Add support for [[msvc::constexpr]] C++11 attribute (#71300)
- | ... and 357 more commits in llvm
+ | 364 commits in binutils,llvm
+ | fa659800b00 gdbserver/win32: fix crash on detach
+ | 80ffe722645 Fix gdb.FinishBreakpoint when returning to an inlined function
+ | 52e0b52e6f2 Support dynamically computed convenience variables in get_internalvar_integer
+ | 0804d18a023 Support rodata in flash for more AVR devices
+ | 14f2724f80b Fix whitespace snafu in tc-riscv.c
+ | ... and 28 more commits in binutils
+ | 0d1490f09f23 [MLIR] Flatten fused locations when merging constants. (#75218)
+ | fe6f137e48ce [OpenMP][NFC] Move mapping related code into OpenMP/Mapping.cpp (#75239)
+ | 61ee9232569d [SystemZ][z/OS] Fix build errors on z/OS in the Unix .inc files (#74758)
+ | 3959231695a0 [X86][FastISel] Bail out on large objects when materializing a GlobalValue
+ | 047399c213a0 [mlir][sparse] cleanup of CodegenEnv reduction API (#75243)
+ | ... and 326 more commits in llvm
Results changed to
# reset_artifacts:
@@ -33,15 +39,6 @@ From
-2
# linux_n_obj:
22078
-# First few build errors in logs:
-
-# 00:24:17 ./include/linux/fortify-string.h:493:4: error: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning]
-# 00:24:17 make[5]: *** [scripts/Makefile.build:243: fs/smb/client/cifsencrypt.o] Error 1
-# 00:26:24 make[4]: *** [scripts/Makefile.build:480: fs/smb/client] Error 2
-# 00:26:24 make[3]: *** [scripts/Makefile.build:480: fs/smb] Error 2
-# 01:04:43 make[2]: *** [scripts/Makefile.build:480: fs] Error 2
-# 01:11:21 make[1]: *** [/home/tcwg-buildslave/workspace/tcwg_kernel_1/linux/Makefile:2034: .] Error 2
-# 01:11:21 make: *** [Makefile:234: __sub-make] Error 2
The configuration of this build is:
CI config tcwg_kernel/llvm-master-aarch64-stable-allyesconfig
@@ -49,6 +46,6 @@ CI config tcwg_kernel/llvm-master-aarch64-stable-allyesconfig
-----------------8<--------------------------8<--------------------------8<--------------------------
The information below can be used to reproduce a debug environment:
-Current build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/artifact/artifacts
-Reference build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/111/artifact/artifacts
+Current build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/113/artifact/artifacts
+Reference build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-aarch64-stable-allyesconfig-build/112/artifact/artifacts
diff --git a/notify/mail-recipients.txt b/notify/mail-recipients.txt
index f4dbb23..aa219ef 100644
--- a/notify/mail-recipients.txt
+++ b/notify/mail-recipients.txt
@@ -1 +1 @@
-bcc:tcwg-validation@linaro.org,llvm@lists.linux.dev
+bcc:tcwg-validation@linaro.org
diff --git a/notify/mail-subject.txt b/notify/mail-subject.txt
index ef239e7..3894844 100644
--- a/notify/mail-subject.txt
+++ b/notify/mail-subject.txt
@@ -1 +1 @@
-[Linaro-TCWG-CI] 362 commits in llvm: Success on aarch64
+[Linaro-TCWG-CI] 364 commits in binutils,llvm: Success on aarch64