Following Build regressions warnings / errors noticed on Linux next-20230207.
Regressions found on x86_64:
- build/clang-15-lkftconfig-compat - build/clang-nightly-lkftconfig - build/clang-15-lkftconfig - build/clang-15-lkftconfig-kcsan - build/clang-lkftconfig
In file included from arch/x86/entry/vdso/vdso32/vgetcpu.c:2: In file included from arch/x86/entry/vdso/vdso32/../vgetcpu.c:8: In file included from include/linux/kernel.h:22: In file included from include/linux/bitops.h:68: In file included from arch/x86/include/asm/bitops.h:420: arch/x86/include/asm/arch_hweight.h:49:15: error: invalid input size for constraint 'D' : REG_IN (w)); ^ In file included from arch/x86/entry/vdso/vdso32/vgetcpu.c:2: In file included from arch/x86/entry/vdso/vdso32/../vgetcpu.c:8: In file included from include/linux/kernel.h:25: In file included from include/linux/math.h:6: arch/x86/include/asm/div64.h:85:34: error: invalid output size for constraint '=a' asm ("mulq %2; divq %3" : "=a" (q) ^ 2 errors generated.
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
Following config diff found. + CONFIG_COMPAT_WARN_32BIT_FILESYSTEM_ACCESS=y
Build details link, https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20230207/tes...
# To install tuxmake on your system globally: # sudo pip3 install -U tuxmake # # See https://docs.tuxmake.org/ for complete documentation. # Original tuxmake command with fragments listed below. tuxmake \ --runtime podman \ --target-arch x86_64 \ --toolchain clang-15 \ --kconfig defconfig \ --kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-ke... \ --kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-ke... \ --kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-ke... \ --kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-ke... \ --kconfig-add https://raw.githubusercontent.com/Linaro/meta-lkft/kirkstone/meta/recipes-ke... \ --kconfig-add CONFIG_IGB=y \ --kconfig-add CONFIG_UNWINDER_FRAME_POINTER=y LLVM=1 LLVM_IAS=1
-- Linaro LKFT https://lkft.linaro.org
Hi Naresh,
On Tue, Feb 07, 2023 at 01:27:05PM +0530, Naresh Kamboju wrote:
Following Build regressions warnings / errors noticed on Linux next-20230207.
Regressions found on x86_64:
- build/clang-15-lkftconfig-compat - build/clang-nightly-lkftconfig - build/clang-15-lkftconfig - build/clang-15-lkftconfig-kcsan - build/clang-lkftconfig
In file included from arch/x86/entry/vdso/vdso32/vgetcpu.c:2: In file included from arch/x86/entry/vdso/vdso32/../vgetcpu.c:8: In file included from include/linux/kernel.h:22: In file included from include/linux/bitops.h:68: In file included from arch/x86/include/asm/bitops.h:420: arch/x86/include/asm/arch_hweight.h:49:15: error: invalid input size for constraint 'D' : REG_IN (w)); ^ In file included from arch/x86/entry/vdso/vdso32/vgetcpu.c:2: In file included from arch/x86/entry/vdso/vdso32/../vgetcpu.c:8: In file included from include/linux/kernel.h:25: In file included from include/linux/math.h:6: arch/x86/include/asm/div64.h:85:34: error: invalid output size for constraint '=a' asm ("mulq %2; divq %3" : "=a" (q) ^ 2 errors generated.
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
Thanks a lot for the report as always! Looks like there is a fix pending on the list:
https://lore.kernel.org/Y+IsCWQdXEr8d9Vy@linutronix.de/
Cheers, Nathan
On Tue, Feb 07, 2023 at 09:28:58AM -0700, Nathan Chancellor wrote:
Thanks a lot for the report as always! Looks like there is a fix pending on the list:
Btw, while I have you, do you know why clang isn't DCOing this chunk like gcc does?
Thx.
On Tue, Feb 07, 2023 at 05:30:38PM +0100, Borislav Petkov wrote:
On Tue, Feb 07, 2023 at 09:28:58AM -0700, Nathan Chancellor wrote:
Thanks a lot for the report as always! Looks like there is a fix pending on the list:
Btw, while I have you, do you know why clang isn't DCOing this chunk like gcc does?
Clang does its semantic analysis before optimization, so it cannot dead code eliminate that chunk before it checks the validity of the asm constraints, that is just how the pipeline is structured as far as I understand it. That is one of the biggest and longest standing differences between clang and GCC that we know about, the upstream link in the issue below has some more info.
https://github.com/ClangBuiltLinux/linux/issues/3
I am not super familiar with the internal details of LLVM and clang as other folks are though so I could be wrong or missing something :)
Cheers, Nathan
On Tue, Feb 07, 2023 at 09:37:37AM -0700, Nathan Chancellor wrote:
Clang does its semantic analysis before optimization, so it cannot dead code eliminate that chunk before it checks the validity of the asm constraints, that is just how the pipeline is structured as far as I understand it. That is one of the biggest and longest standing differences between clang and GCC that we know about, the upstream link in the issue below has some more info.
https://github.com/ClangBuiltLinux/linux/issues/3
I am not super familiar with the internal details of LLVM and clang as other folks are though so I could be wrong or missing something :)
Thanks and wow, that's issue #3. Like wow that's old. And reading Nick's text, it sure does sound like that's the one.
Fun.