diff --git a/Makefile b/Makefile index 274b780029b..f242829c4f0 100644 --- a/Makefile +++ b/Makefile @@ -741,6 +741,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 --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 2d7cb0d04fc..8fd2dbf7eb5 100644 --- a/lib/Kconfig.debug +++ b/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