Browse Source

[PATCH] Add CONFIG_HEADERS_CHECK option to automatically run 'make headers_check'

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 <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Woodhouse 18 years ago
parent
commit
0f836e5fec
2 changed files with 16 additions and 0 deletions
  1. 3 0
      Makefile
  2. 13 0
      lib/Kconfig.debug

+ 3 - 0
Makefile

@@ -741,6 +741,9 @@ endif # ifdef CONFIG_KALLSYMS
 
 
 # vmlinux image - including updated kernel symbols
 # vmlinux image - including updated kernel symbols
 vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE
 vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE
+ifdef CONFIG_HEADERS_CHECK
+	$(Q)$(MAKE) headers_check
+endif
 	$(call if_changed_rule,vmlinux__)
 	$(call if_changed_rule,vmlinux__)
 	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost $@
 	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost $@
 	$(Q)rm -f .old_version
 	$(Q)rm -f .old_version

+ 13 - 0
lib/Kconfig.debug

@@ -371,6 +371,19 @@ config FORCED_INLINING
 	  become the default in the future, until then this option is there to
 	  become the default in the future, until then this option is there to
 	  test gcc for this.
 	  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
 config RCU_TORTURE_TEST
 	tristate "torture tests for RCU"
 	tristate "torture tests for RCU"
 	depends on DEBUG_KERNEL
 	depends on DEBUG_KERNEL