[TCWG CI] Regression caused by gcc: rs6000: Harden mma_init_builtins: commit 6278065af07634278ba30029d92a82b089969baa Author: Peter Bergner bergner@linux.ibm.com
rs6000: Harden mma_init_builtins
Results regressed to # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 33 # First few build errors in logs: # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/latent_entropy_plugin.so] Error 1 # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/stackleak_plugin.so] Error 1 # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/randomize_layout_plugin.so] Error 1 # 00:03:13 make[1]: *** [scripts/gcc-plugins] Error 2 # 00:03:14 make: *** [scripts] Error 2
from # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 31574 # linux build successful: all # linux boot successful: boot
THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
This commit has regressed these CI configurations: - tcwg_kernel/gnu-release-aarch64-next-allmodconfig
First_bad build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-al... Last_good build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-al... Baseline build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-al... Even more details: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-al...
Reproduce builds: <cut> mkdir investigate-gcc-6278065af07634278ba30029d92a82b089969baa cd investigate-gcc-6278065af07634278ba30029d92a82b089969baa
# Fetch scripts git clone https://git.linaro.org/toolchain/jenkins-scripts
# Fetch manifests and test.sh script mkdir -p artifacts/manifests curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-al... --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-al... --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-al... --fail chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_kernel-build.sh @@ artifacts/manifests/build-baseline.sh
# Save baseline build state (which is then restored in artifacts/test.sh) mkdir -p ./bisect rsync -a --del --delete-excluded --exclude /bisect/ --exclude /artifacts/ --exclude /gcc/ ./ ./bisect/baseline/
cd gcc
# Reproduce first_bad build git checkout --detach 6278065af07634278ba30029d92a82b089969baa ../artifacts/test.sh
# Reproduce last_good build git checkout --detach a5b5c7c2840ebb0aaa0d0f1e090fb2fc6942196d ../artifacts/test.sh
cd .. </cut>
Full commit (up to 1000 lines): <cut> commit 6278065af07634278ba30029d92a82b089969baa Author: Peter Bergner bergner@linux.ibm.com Date: Wed Jul 7 11:39:34 2021 -0500
rs6000: Harden mma_init_builtins
The previous MMA patch added some fragile code to initialize its new built-ins. This patch hardens the initialization.
2021-07-07 Peter Bergner bergner@linux.ibm.com
gcc/ * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP and VSX_BUILTIN_STXVP. --- gcc/config/rs6000/rs6000-call.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c index 6115e3b34d9..904e104c058 100644 --- a/gcc/config/rs6000/rs6000-call.c +++ b/gcc/config/rs6000/rs6000-call.c @@ -14293,7 +14293,8 @@ mma_init_builtins (void) /* Some MMA built-ins that are expanded into gimple are converted into internal MMA built-ins that are expanded into rtl. The internal built-in follows immediately after this built-in. */ - if (d[1].icode != CODE_FOR_nothing) + if (d->code != VSX_BUILTIN_LXVP + && d->code != VSX_BUILTIN_STXVP) { op[nopnds++] = void_type_node; icode = d[1].icode; </cut>
On 5/31/22 8:09 AM, ci_notify@linaro.org wrote:
[TCWG CI] Regression caused by gcc: rs6000: Harden mma_init_builtins: commit 6278065af07634278ba30029d92a82b089969baa Author: Peter Bergner bergner@linux.ibm.com
rs6000: Harden mma_init_builtins
Results regressed to # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 33 # First few build errors in logs: # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/latent_entropy_plugin.so] Error 1 # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/stackleak_plugin.so] Error 1 # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/randomize_layout_plugin.so] Error 1 # 00:03:13 make[1]: *** [scripts/gcc-plugins] Error 2 # 00:03:14 make: *** [scripts] Error 2
It seems your CI tester really doesn't like me! ;-) Given my patch above could not have affected the existence of that header file, I'll ignore this one too.
Peter
On 31 May 2022, at 17:43, Peter Bergner bergner@linux.ibm.com wrote:
On 5/31/22 8:09 AM, ci_notify@linaro.org wrote:
[TCWG CI] Regression caused by gcc: rs6000: Harden mma_init_builtins: commit 6278065af07634278ba30029d92a82b089969baa Author: Peter Bergner bergner@linux.ibm.com
rs6000: Harden mma_init_builtins
Results regressed to # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 33 # First few build errors in logs: # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/latent_entropy_plugin.so] Error 1 # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/stackleak_plugin.so] Error 1 # 00:03:13 cc1plus: fatal error: ./include/generated/utsrelease.h: No such file or directory # 00:03:13 make[2]: *** [scripts/gcc-plugins/randomize_layout_plugin.so] Error 1 # 00:03:13 make[1]: *** [scripts/gcc-plugins] Error 2 # 00:03:14 make: *** [scripts] Error 2
It seems your CI tester really doesn't like me! ;-) Given my patch above could not have affected the existence of that header file, I'll ignore this one too.
Hi Peter,
I'm suspecting a makefile bug in Linux kernel that makes build process unreliable. It seems there's a missing dependency between latent_entropy_plugin.so and generated/utsrelease.h header.
I'm continuing to investigate this, but, meanwhile, [1] should fix spamming of upstream developers.
[1] https://review.linaro.org/c/toolchain/jenkins-scripts/+/41433
Regards,
-- Maxim Kuvyrkov https://www.linaro.org
linaro-toolchain@lists.linaro.org