From: David Woodhouse In order to encourage people to notice when they break the exported headers, add a config option which automatically runs the sanity checks when building vmlinux. That way, those who use allyesconfig will notice failures. Signed-off-by: David Woodhouse Signed-off-by: Andrew Morton --- Makefile | 3 +++ lib/Kconfig.debug | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff -puN Makefile~add-config_headers_check-option-to-automatically-run-make-headers_check Makefile --- a/Makefile~add-config_headers_check-option-to-automatically-run-make-headers_check +++ a/Makefile @@ -735,6 +735,9 @@ endif # ifdef CONFIG_KALLSYMS # vmlinux image - including updated kernel symbols vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE +ifdef CONFIG_HEADERS_CHECK + $(Q)$(MAKE) headers_check +endif $(call if_changed_rule,vmlinux__) $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost $@ $(Q)rm -f .old_version diff -puN lib/Kconfig.debug~add-config_headers_check-option-to-automatically-run-make-headers_check lib/Kconfig.debug --- a/lib/Kconfig.debug~add-config_headers_check-option-to-automatically-run-make-headers_check +++ a/lib/Kconfig.debug @@ -371,6 +371,19 @@ config FORCED_INLINING become the default in the future, until then this option is there to test gcc for this. +config HEADERS_CHECK + bool "Run 'make headers_check' when building vmlinux" + help + This option will extract the user-visible kernel headers whenever + building the kernel, and will run basic sanity checks on them to + ensure that exported files do not attempt to include files which + were not exported, etc. + + If you're making modifications to header files which are + relevant for userspace, say 'Y', and check the headers + exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in + your build tree), to make sure they're suitable. + config RCU_TORTURE_TEST tristate "torture tests for RCU" depends on DEBUG_KERNEL _