mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-27 17:44:30 +00:00
kbuild: remove header compile test
There are both positive and negative options about this feature. At first, I thought it was a good idea, but actually Linus stated a negative opinion (https://lkml.org/lkml/2019/9/29/227). I admit it is ugly and annoying. The baseline I'd like to keep is the compile-test of uapi headers. (Otherwise, kernel developers have no way to ensure the correctness of the exported headers.) I will maintain a small build rule in usr/include/Makefile. Remove the other header test functionality. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
eba19032f9
commit
fcbb8461fd
8 changed files with 9 additions and 1252 deletions
|
@ -1115,23 +1115,6 @@ When kbuild executes, the following steps are followed (roughly):
|
||||||
In this example, extra-y is used to list object files that
|
In this example, extra-y is used to list object files that
|
||||||
shall be built, but shall not be linked as part of built-in.a.
|
shall be built, but shall not be linked as part of built-in.a.
|
||||||
|
|
||||||
header-test-y
|
|
||||||
|
|
||||||
header-test-y specifies headers (`*.h`) in the current directory that
|
|
||||||
should be compile tested to ensure they are self-contained,
|
|
||||||
i.e. compilable as standalone units. If CONFIG_HEADER_TEST is enabled,
|
|
||||||
this builds them as part of extra-y.
|
|
||||||
|
|
||||||
header-test-pattern-y
|
|
||||||
|
|
||||||
This works as a weaker version of header-test-y, and accepts wildcard
|
|
||||||
patterns. The typical usage is::
|
|
||||||
|
|
||||||
header-test-pattern-y += *.h
|
|
||||||
|
|
||||||
This specifies all the files that matches to `*.h` in the current
|
|
||||||
directory, but the files in 'header-test-' are excluded.
|
|
||||||
|
|
||||||
6.7 Commands useful for building a boot image
|
6.7 Commands useful for building a boot image
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
|
|
1
Makefile
1
Makefile
|
@ -618,7 +618,6 @@ ifeq ($(KBUILD_EXTMOD),)
|
||||||
init-y := init/
|
init-y := init/
|
||||||
drivers-y := drivers/ sound/
|
drivers-y := drivers/ sound/
|
||||||
drivers-$(CONFIG_SAMPLES) += samples/
|
drivers-$(CONFIG_SAMPLES) += samples/
|
||||||
drivers-$(CONFIG_KERNEL_HEADER_TEST) += include/
|
|
||||||
net-y := net/
|
net-y := net/
|
||||||
libs-y := lib/
|
libs-y := lib/
|
||||||
core-y := usr/
|
core-y := usr/
|
||||||
|
|
|
@ -7,7 +7,6 @@ config DRM_I915_WERROR
|
||||||
# We use the dependency on !COMPILE_TEST to not be enabled in
|
# We use the dependency on !COMPILE_TEST to not be enabled in
|
||||||
# allmodconfig or allyesconfig configurations
|
# allmodconfig or allyesconfig configurations
|
||||||
depends on !COMPILE_TEST
|
depends on !COMPILE_TEST
|
||||||
select HEADER_TEST
|
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Add -Werror to the build flags for (and only for) i915.ko.
|
Add -Werror to the build flags for (and only for) i915.ko.
|
||||||
|
|
1185
include/Kbuild
1185
include/Kbuild
File diff suppressed because it is too large
Load diff
22
init/Kconfig
22
init/Kconfig
|
@ -104,29 +104,9 @@ config COMPILE_TEST
|
||||||
here. If you are a user/distributor, say N here to exclude useless
|
here. If you are a user/distributor, say N here to exclude useless
|
||||||
drivers to be distributed.
|
drivers to be distributed.
|
||||||
|
|
||||||
config HEADER_TEST
|
|
||||||
bool "Compile test headers that should be standalone compilable"
|
|
||||||
help
|
|
||||||
Compile test headers listed in header-test-y target to ensure they are
|
|
||||||
self-contained, i.e. compilable as standalone units.
|
|
||||||
|
|
||||||
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.
|
|
||||||
Compile test them to ensure they are self-contained, i.e.
|
|
||||||
compilable as standalone units.
|
|
||||||
|
|
||||||
If you are a developer or tester and want to ensure the headers
|
|
||||||
in include/ are self-contained, say Y here. Otherwise, choose N.
|
|
||||||
|
|
||||||
config UAPI_HEADER_TEST
|
config UAPI_HEADER_TEST
|
||||||
bool "Compile test UAPI headers"
|
bool "Compile test UAPI headers"
|
||||||
depends on HEADER_TEST && HEADERS_INSTALL && CC_CAN_LINK
|
depends on HEADERS_INSTALL && CC_CAN_LINK
|
||||||
help
|
help
|
||||||
Compile test headers exported to user-space to ensure they are
|
Compile test headers exported to user-space to ensure they are
|
||||||
self-contained, i.e. compilable as standalone units.
|
self-contained, i.e. compilable as standalone units.
|
||||||
|
|
|
@ -283,15 +283,6 @@ quiet_cmd_cc_lst_c = MKLST $@
|
||||||
$(obj)/%.lst: $(src)/%.c FORCE
|
$(obj)/%.lst: $(src)/%.c FORCE
|
||||||
$(call if_changed_dep,cc_lst_c)
|
$(call if_changed_dep,cc_lst_c)
|
||||||
|
|
||||||
# header test (header-test-y, header-test-m target)
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
quiet_cmd_cc_s_h = CC $@
|
|
||||||
cmd_cc_s_h = $(CC) $(c_flags) -S -o $@ -x c /dev/null -include $<
|
|
||||||
|
|
||||||
$(obj)/%.h.s: $(src)/%.h FORCE
|
|
||||||
$(call if_changed_dep,cc_s_h)
|
|
||||||
|
|
||||||
# Compile assembler sources (.S)
|
# Compile assembler sources (.S)
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -65,20 +65,6 @@ extra-y += $(patsubst %.dtb,%.dt.yaml, $(dtb-y))
|
||||||
extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-))
|
extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Test self-contained headers
|
|
||||||
|
|
||||||
# Wildcard searches in $(srctree)/$(src)/, but not in $(objtree)/$(obj)/.
|
|
||||||
# Stale generated headers are often left over, so pattern matching should
|
|
||||||
# be avoided. Please notice $(srctree)/$(src)/ and $(objtree)/$(obj) point
|
|
||||||
# to the same location for in-tree building. So, header-test-pattern-y should
|
|
||||||
# be used with care.
|
|
||||||
header-test-y += $(filter-out $(header-test-), \
|
|
||||||
$(patsubst $(srctree)/$(src)/%, %, \
|
|
||||||
$(wildcard $(addprefix $(srctree)/$(src)/, \
|
|
||||||
$(header-test-pattern-y)))))
|
|
||||||
|
|
||||||
extra-$(CONFIG_HEADER_TEST) += $(addsuffix .s, $(header-test-y) $(header-test-m))
|
|
||||||
|
|
||||||
# Add subdir path
|
# Add subdir path
|
||||||
|
|
||||||
extra-y := $(addprefix $(obj)/,$(extra-y))
|
extra-y := $(addprefix $(obj)/,$(extra-y))
|
||||||
|
|
|
@ -95,9 +95,13 @@ endif
|
||||||
# asm-generic/*.h is used by asm/*.h, and should not be included directly
|
# asm-generic/*.h is used by asm/*.h, and should not be included directly
|
||||||
header-test- += asm-generic/%
|
header-test- += asm-generic/%
|
||||||
|
|
||||||
# The rest are compile-tested
|
extra-y := $(patsubst %.h,%.hdrtest, $(filter-out $(header-test-), \
|
||||||
header-test-y += $(filter-out $(header-test-), \
|
$(patsubst $(obj)/%,%, $(shell find $(obj) -name '*.h'))))
|
||||||
$(patsubst $(obj)/%,%, $(wildcard \
|
|
||||||
$(addprefix $(obj)/, *.h */*.h */*/*.h */*/*/*.h))))
|
quiet_cmd_hdrtest = HDRTEST $<
|
||||||
|
cmd_hdrtest = $(CC) $(c_flags) -S -o /dev/null -x c /dev/null -include $<; touch $@
|
||||||
|
|
||||||
|
$(obj)/%.hdrtest: $(obj)/%.h FORCE
|
||||||
|
$(call if_changed_dep,hdrtest)
|
||||||
|
|
||||||
clean-files += $(filter-out Makefile, $(notdir $(wildcard $(obj)/*)))
|
clean-files += $(filter-out Makefile, $(notdir $(wildcard $(obj)/*)))
|
||||||
|
|
Loading…
Add table
Reference in a new issue