Hi Linus, As expected, kernel builds started failing in less-common configurations. In this particular case the culprit is amdgpu driver when built for 32-bit ARM in allmodconfig configuration using tip-of-trunk GCC.
Hi Alex, [picking your name from “git log drivers/gpu/drm/amd/amdgpu/amdgpu.h”], Would you please take a look? Let me know if the problem doesn’t reproduce for you, and I’ll help to investigate. 00:22:45 In file included from drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c:29: 00:22:45 drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c: In function ‘gmc_v6_0_set_prt’: 00:22:45 drivers/gpu/drm/amd/amdgpu/amdgpu.h:1227:53: error: ‘<<’ in boolean context, did you mean ‘<’? [-Werror=int-in-bool-context] 00:22:45 1227 | (REG_FIELD_MASK(reg, field) & ((field_val) << REG_FIELD_SHIFT(reg, field)))) 00:22:45 | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00:22:45 drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c:430:15: note: in expansion of macro ‘REG_SET_FIELD’ 00:22:45 430 | tmp = REG_SET_FIELD(tmp, VM_PRT_CNTL, 00:22:45 | ^~~~~~~~~~~~~ 00:22:45 cc1: all warnings being treated as errors 00:22:45 make[4]: *** [scripts/Makefile.build:277: drivers/gpu/drm/amd/amdgpu/gmc_v6_0.o] Error 1 00:40:28 make[4]: Target '__build' not remade because of errors. 00:40:28 make[3]: *** [scripts/Makefile.build:540: drivers/gpu/drm/amd/amdgpu] Error 2 00:41:17 make[3]: Target '__build' not remade because of errors. 00:41:17 make[2]: *** [scripts/Makefile.build:540: drivers/gpu/drm] Error 2 00:41:17 make[2]: Target '__build' not remade because of errors. 00:41:17 make[1]: *** [scripts/Makefile.build:540: drivers/gpu] Error 2 00:41:17 make[1]: Target '__build' not remade because of errors. 00:41:17 make: *** [Makefile:1872: drivers] Error 2 00:41:17 make: Target '__all' not remade because of errors. Regards, -- Maxim Kuvyrkov https://www.linaro.org > On 8 Sep 2021, at 11:40, ci_not...@linaro.org wrote: > > Successfully identified regression in *linux* in CI configuration > tcwg_kernel/gnu-master-arm-mainline-allmodconfig. So far, this commit has > regressed CI configurations: > - tcwg_kernel/gnu-master-arm-mainline-allmodconfig > > Culprit: > <cut> > commit 3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151 > Author: Linus Torvalds <torva...@linux-foundation.org> > Date: Sun Sep 5 11:24:05 2021 -0700 > > Enable '-Werror' by default for all kernel builds > > ... but make it a config option so that broken environments can disable > it when required. > > We really should always have a clean build, and will disable specific > over-eager warnings as required, if we can't fix them. But while I > fairly religiously enforce that in my own tree, it doesn't get enforced > by various build robots that don't necessarily report warnings. > > So this just makes '-Werror' a default compiler flag, but allows people > to disable it for their configuration if they have some particular > issues. > > Occasionally, new compiler versions end up enabling new warnings, and it > can take a while before we have them fixed (or the warnings disabled if > that is what it takes), so the config option allows for that situation. > > Hopefully this will mean that I get fewer pull requests that have new > warnings that were not noticed by various automation we have in place. > > Knock wood. > > Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> > </cut> > > Results regressed to (for first_bad == > 3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151) > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1: > -5 > # build_abe qemu: > -2 > # linux_n_obj: > 21769 > # First few build errors in logs: > > from (for last_good == fd47ff55c9c31101fcc06d20cb381da3d4089bd5) > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1: > -5 > # build_abe qemu: > -2 > # linux_n_obj: > 29880 > # linux build successful: > all > > Artifacts of last_good build: > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/artifact/artifacts/build-fd47ff55c9c31101fcc06d20cb381da3d4089bd5/ > Artifacts of first_bad build: > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/artifact/artifacts/build-3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151/ > Build top page/logs: > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/ > > Configuration details: > > > Reproduce builds: > <cut> > mkdir investigate-linux-3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151 > cd investigate-linux-3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151 > > git clone https://git.linaro.org/toolchain/jenkins-scripts > > mkdir -p artifacts/manifests > curl -o artifacts/manifests/build-baseline.sh > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/artifact/artifacts/manifests/build-baseline.sh > --fail > curl -o artifacts/manifests/build-parameters.sh > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/artifact/artifacts/manifests/build-parameters.sh > --fail > curl -o artifacts/test.sh > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/artifact/artifacts/test.sh > --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 /linux/ ./ ./bisect/baseline/ > > cd linux > > # Reproduce first_bad build > git checkout --detach 3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151 > ../artifacts/test.sh > > # Reproduce last_good build > git checkout --detach fd47ff55c9c31101fcc06d20cb381da3d4089bd5 > ../artifacts/test.sh > > cd .. > </cut> > > History of pending regressions and results: > https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/ci/tcwg_kernel/gnu-master-arm-mainline-allmodconfig > > Artifacts: > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/artifact/artifacts/ > Build log: > https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-master-arm-mainline-allmodconfig/28/consoleText > > Full commit (up to 1000 lines): > <cut> > commit 3fe617ccafd6f5bb33c2391d6f4eeb41c1fd0151 > Author: Linus Torvalds <torva...@linux-foundation.org> > Date: Sun Sep 5 11:24:05 2021 -0700 > > Enable '-Werror' by default for all kernel builds > > ... but make it a config option so that broken environments can disable > it when required. > > We really should always have a clean build, and will disable specific > over-eager warnings as required, if we can't fix them. But while I > fairly religiously enforce that in my own tree, it doesn't get enforced > by various build robots that don't necessarily report warnings. > > So this just makes '-Werror' a default compiler flag, but allows people > to disable it for their configuration if they have some particular > issues. > > Occasionally, new compiler versions end up enabling new warnings, and it > can take a while before we have them fixed (or the warnings disabled if > that is what it takes), so the config option allows for that situation. > > Hopefully this will mean that I get fewer pull requests that have new > warnings that were not noticed by various automation we have in place. > > Knock wood. > > Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> > --- > Makefile | 3 +++ > init/Kconfig | 14 ++++++++++++++ > 2 files changed, 17 insertions(+) > > diff --git a/Makefile b/Makefile > index 6bc1c5b17a62..d45fc2edf186 100644 > --- a/Makefile > +++ b/Makefile > @@ -785,6 +785,9 @@ stackp-flags-$(CONFIG_STACKPROTECTOR_STRONG) := > -fstack-protector-strong > > KBUILD_CFLAGS += $(stackp-flags-y) > > +KBUILD_CFLAGS-$(CONFIG_WERROR) += -Werror > +KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) > + > ifdef CONFIG_CC_IS_CLANG > KBUILD_CPPFLAGS += -Qunused-arguments > # The kernel builds with '-std=gnu89' so use of GNU extensions is acceptable. > diff --git a/init/Kconfig b/init/Kconfig > index e708180e9a59..8cb97f141b70 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -137,6 +137,20 @@ config COMPILE_TEST > here. If you are a user/distributor, say N here to exclude useless > drivers to be distributed. > > +config WERROR > + bool "Compile the kernel with warnings as errors" > + default y > + help > + A kernel build should not cause any compiler warnings, and this > + enables the '-Werror' flag to enforce that rule by default. > + > + However, if you have a new (or very old) compiler with odd and > + unusual warnings, or you have some architecture with problems, > + you may need to disable this config option in order to > + successfully build the kernel. > + > + If in doubt, say Y. > + > config UAPI_HEADER_TEST > bool "Compile test UAPI headers" > depends on HEADERS_INSTALL && CC_CAN_LINK > </cut> _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain