From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joel Fernandes Subject: Re: [PATCH 7/7] kbuild: compile-test kernel headers to ensure they are self-contained Date: Tue, 2 Jul 2019 12:47:12 -0400 Message-ID: <20190702164712.GA98338@google.com> References: <20190701005845.12475-1-yamada.masahiro@socionext.com> <20190701005845.12475-8-yamada.masahiro@socionext.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20190701005845.12475-8-yamada.masahiro@socionext.com> Sender: linux-kernel-owner@vger.kernel.org To: Masahiro Yamada Cc: linux-kbuild@vger.kernel.org, Sam Ravnborg , Tony Luck , John Fastabend , Jakub Kicinski , Daniel Borkmann , xdp-newbies@vger.kernel.org, Anton Vorontsov , Matthias Brugger , Song Liu , Yonghong Song , Michal Marek , Jesper Dangaard Brouer , Martin KaFai Lau , linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Colin Cross , "David S. Miller" , Kees Cook , Alexei Starovoitov , netdev@vger.kernel.orglinu List-Id: linux-mediatek@lists.infradead.org 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 > Tested-by: Jani Nikula > --- > > 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)