On Mon, Jul 01, 2019 at 09:58:45AM +0900, Masahiro Yamada wrote: > The headers in include/ are globally used in the kernel source tree > to provide common APIs. They are included from external modules, too. > > It will be useful to make as many headers self-contained as possible > so that we do not have to rely on a specific include order. > > There are more than 4000 headers in include/. In my rough analysis, > 70% of them are already self-contained. With efforts, most of them > can be self-contained. > > For now, we must exclude more than 1000 headers just because they > cannot be compiled as standalone units. I added them to header-test-. > The blacklist was mostly generated by a script, so the reason of the > breakage should be checked later. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > Tested-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > > Changes in v4: > - Fix vmlinux build error > - Exclude more headers for sparc > > Changes in v3: > - Exclude more headers > (Tested for allnoconfig + CONFIG_HEADER_TEST=y) > > Changes in v2: > - Add everything to test coverage, and exclude broken ones > - Rename 'Makefile' to 'Kbuild' > - Add CONFIG_KERNEL_HEADER_TEST option > > Makefile | 1 + > include/Kbuild | 1253 ++++++++++++++++++++++++++++++++++++++++++++++++ > init/Kconfig | 11 + > 3 files changed, 1265 insertions(+) > create mode 100644 include/Kbuild [snip > diff --git a/init/Kconfig b/init/Kconfig > index 74192de8ada6..e2e99544da8d 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -108,6 +108,17 @@ config HEADER_TEST > If you are a developer or tester and want to ensure the requested > headers are self-contained, say Y here. Otherwise, choose N. > > +config KERNEL_HEADER_TEST > + bool "Compile test kernel headers" > + depends on HEADER_TEST > + help > + Headers in include/ are used to build external moduls. Nit: modules. Otherwise lgtm, thanks for the cc. Reviewed-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>