Re: [PATCH] kbuild: disable compile-test of kernel headers for now

From: Sam Ravnborg
Date: Fri Jul 19 2019 - 08:40:38 EST


Hi Masahiro.

On Fri, Jul 19, 2019 at 07:08:59PM +0900, Masahiro Yamada wrote:
> This compile-test started from the strong belief that (almost) all
> headers should be able to be compiled as a standalone unit, but this
> requirement seems to be just annoying.
>
> I believe compile-test of exported headers is good. On the other hand,
> in-kernel headers are not necessarily supposed to be always compilable.
> Actually, some headers are only included under a certain combination
> of CONFIG options, and that is definitely fine.
>
> This test is still causing false positive errors in randconfig.
> Moreover, newly added headers are compile-tested by default, sometimes
> they catch (not fatal) bugs, but often raise false positive errors to
> end up with making people upset.
>
> The merge window is closing shortly, so there is not much I can do.
> Disable it for now, and take a pause to re-think whether we should
> continue this or change the course.

The present status is that iomap.h fails - and Arnd promptly
made a fix for it:
https://lore.kernel.org/lkml/20190719113139.4005262-1-arnd@xxxxxxxx/T/#u

You already fixed another issue.
So the fall-out so far is miniaml and already fixed (pending Arnd's
patch).

If headers are not self-contained then one needs to include them in a
specific order which can be quite hard to get right.
Especially if the requirements differ across different architectures.
So the whole concept seems sane.

I have thrown it after may array of cross builds:
=> alpha arm arm64 sparc64 i386 x86 powerpc s390 riscv sh

For each arch I try:
=> allmodconfig allyesconfig allnoconfig defconfig

No errros.
But that obviously only coveres a very minial set of configurations.
Arnd's result from his randconfig are also very promising.

I advise to keep it enabled and if there is a steady stream of
new errors after -rc1 and -rc2 then to disable the testing.
We will not get the coverage unless this is upstreamed.
And the testing is relevant.

Sam