Re: [PATCH v1 1/1] delay: Replace kernel.h with the necessary inclusions

From: Guenter Roeck
Date: Thu Oct 28 2021 - 12:28:16 EST


On Thu, Oct 28, 2021 at 06:58:13PM +0300, Andy Shevchenko wrote:
> On Thu, Oct 28, 2021 at 08:30:55AM -0700, Guenter Roeck wrote:
> > On Wed, Oct 27, 2021 at 06:03:24PM +0300, Andy Shevchenko wrote:
> > > When kernel.h is used in the headers it adds a lot into dependency hell,
> > > especially when there are circular dependencies are involved.
> > >
> > > Replace kernel.h inclusion with the list of what is really being used.
> > >
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> >
> > In next-20211028:
> >
> > Building riscv32:defconfig ... failed
> > --------------
> > Error log:
> > arch/riscv/lib/delay.c: In function '__delay':
> > arch/riscv/lib/delay.c:77:17: error: implicit declaration of function 'cpu_relax'
> >
> > Building riscv:defconfig ... failed
> > --------------
> > Error log:
> > arch/riscv/lib/delay.c: In function '__delay':
> > arch/riscv/lib/delay.c:77:17: error: implicit declaration of function 'cpu_relax'
> >
> > Building s390:defconfig ... failed
> > --------------
> > Error log:
> > <stdin>:1559:2: warning: #warning syscall futex_waitv not implemented [-Wcpp]
> > In file included from arch/s390/pci/pci_insn.c:12:
> > arch/s390/include/asm/facility.h: In function '__stfle':
> > arch/s390/include/asm/facility.h:98:22: error: implicit declaration of function 'min_t'
> >
> > bisect to this patch. Probably more, but it is difficult to find out
> > since -next is too badly broken and has build failures all over the place.
>
> Thanks for the report!
>
> I have run it on x86_64 with `kcbench -m ...` and no failures.
>
> Can you share all build errors you found so far? I believe none of them related
> to x86* code.
>
> Above just revealed the problematic places in the first place. Why the
> programmers rely on delay.h to include full bloated header pile?! (Yeah, this
> is rhetorical, so please share the errors, I'll try to address them)
>

The ones listed above are the ones I was able to identify. As I said, there
are so many compile and runtime failures in linux-next that it is difficult
to track down individual failures. Just to give you an idea (this is for
next-20211028):

Build results:
total: 153 pass: 115 fail: 38
Failed builds:
alpha:allmodconfig
arm:allmodconfig
arm:omap2plus_defconfig
arm:davinci_all_defconfig
arm64:defconfig
arm64:allmodconfig
csky:allmodconfig
h8300:allnoconfig
h8300:tinyconfig
h8300:edosk2674_defconfig
h8300:h8300h-sim_defconfig
h8300:h8s-sim_defconfig
m68k:allmodconfig
mips:defconfig
mips:allmodconfig
mips:allnoconfig
mips:tinyconfig
mips:bcm47xx_defconfig
mips:bcm63xx_defconfig
mips:ath79_defconfig
mips:ar7_defconfig
mips:e55_defconfig
mips:cavium_octeon_defconfig
mips:malta_defconfig
mips:rt305x_defconfig
nds32:allmodconfig
parisc:allmodconfig
parisc:generic-32bit_defconfig
parisc64:generic-64bit_defconfig
powerpc:allmodconfig
riscv32:defconfig
riscv32:allmodconfig
riscv:defconfig
riscv:allmodconfig
s390:defconfig
s390:allmodconfig
sparc64:allmodconfig
xtensa:allmodconfig
Qemu test results:
total: 480 pass: 315 fail: 165
Failed tests:
<too many to list them all>

Build and boot logs are as always at https://kerneltests.org/builders
in the 'next' column in case you want to do some digging yourself.

Guenter