Skip to content

Commit

Permalink
kbuild: move headers_check rule to usr/include/Makefile
Browse files Browse the repository at this point in the history
Currently, some sanity checks for uapi headers are done by
scripts/headers_check.pl, which is wired up to the 'headers_check'
target in the top Makefile.

It is true compiling headers has better test coverage, but there
are still several headers excluded from the compile test. I like
to keep headers_check.pl for a while, but we can delete a lot of
code by moving the build rule to usr/include/Makefile.

Signed-off-by: Masahiro Yamada <[email protected]>
  • Loading branch information
masahir0y committed Nov 14, 2019
1 parent fcbb846 commit 7ecaf06
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 40 deletions.
11 changes: 3 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1193,19 +1193,15 @@ headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts
$(Q)$(MAKE) $(hdr-inst)=include/uapi
$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi

# Deprecated. It is no-op now.
PHONY += headers_check
headers_check: headers
$(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1
$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi HDRCHECK=1
headers_check:
@:

ifdef CONFIG_HEADERS_INSTALL
prepare: headers
endif

ifdef CONFIG_HEADERS_CHECK
all: headers_check
endif

PHONY += scripts_unifdef
scripts_unifdef: scripts_basic
$(Q)$(MAKE) $(build)=scripts scripts/unifdef
Expand Down Expand Up @@ -1473,7 +1469,6 @@ help:
@echo ' versioncheck - Sanity check on version.h usage'
@echo ' includecheck - Check for duplicate included header files'
@echo ' export_report - List the usages of all exported symbols'
@echo ' headers_check - Sanity check on exported headers'
@echo ' headerdep - Detect inclusion cycles in headers'
@echo ' coccicheck - Check with Coccinelle'
@echo ''
Expand Down
11 changes: 0 additions & 11 deletions lib/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -299,17 +299,6 @@ config HEADERS_INSTALL
user-space program samples. It is also needed by some features such
as uapi header sanity checks.

config HEADERS_CHECK
bool "Run sanity checks on uapi headers when building 'all'"
depends on HEADERS_INSTALL
help
This option will run basic sanity checks on uapi headers when
building the 'all' target, for example, ensure that they 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'.

config OPTIMIZE_INLINING
def_bool y
help
Expand Down
18 changes: 0 additions & 18 deletions scripts/Makefile.headersinst
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,6 @@ new-dirs := $(filter-out $(existing-dirs), $(wanted-dirs))
$(if $(new-dirs), $(shell mkdir -p $(new-dirs)))

# Rules

ifndef HDRCHECK

quiet_cmd_install = HDRINST $@
cmd_install = $(CONFIG_SHELL) $(srctree)/scripts/headers_install.sh $< $@

Expand All @@ -81,21 +78,6 @@ existing-headers := $(filter $(old-headers), $(all-headers))

-include $(foreach f,$(existing-headers),$(dir $(f)).$(notdir $(f)).cmd)

else

quiet_cmd_check = HDRCHK $<
cmd_check = $(PERL) $(srctree)/scripts/headers_check.pl $(dst) $(SRCARCH) $<; touch $@

check-files := $(addsuffix .chk, $(all-headers))

$(check-files): $(dst)/%.chk : $(dst)/% $(srctree)/scripts/headers_check.pl
$(call cmd,check)

__headers: $(check-files)
@:

endif

PHONY += FORCE
FORCE:

Expand Down
9 changes: 6 additions & 3 deletions usr/include/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,14 @@ endif
# asm-generic/*.h is used by asm/*.h, and should not be included directly
header-test- += asm-generic/%

extra-y := $(patsubst %.h,%.hdrtest, $(filter-out $(header-test-), \
$(patsubst $(obj)/%,%, $(shell find $(obj) -name '*.h'))))
extra-y := $(patsubst $(obj)/%.h,%.hdrtest, $(shell find $(obj) -name '*.h'))

quiet_cmd_hdrtest = HDRTEST $<
cmd_hdrtest = $(CC) $(c_flags) -S -o /dev/null -x c /dev/null -include $<; touch $@
cmd_hdrtest = \
$(CC) $(c_flags) -S -o /dev/null -x c /dev/null \
$(if $(filter-out $(header-test-), $*.h), -include $<); \
$(PERL) $(srctree)/scripts/headers_check.pl $(obj) $(SRCARCH) $<; \
touch $@

$(obj)/%.hdrtest: $(obj)/%.h FORCE
$(call if_changed_dep,hdrtest)
Expand Down

0 comments on commit 7ecaf06

Please sign in to comment.