mirror of
https://github.com/torvalds/linux.git
synced 2026-03-07 23:04:33 +01:00
kbuild: uapi: drop dependency on CC_CAN_LINK
The header tests try to compile each header. Some UAPI headers depend on libc headers so they need a full userspace toolchain to build. This dependency is expressed in kconfig as a dependency on CC_CAN_LINK. Many kernel builds do not satisfy CC_CAN_LINK as they only use a minimal kernel (cross-) compiler. In those configurations the UAPI headers are not tested at all. However most UAPI headers do not even depend on any libc headers, and such dependencies are undesired in any case. Also the static analysis performed by headers_check.pl does not need CC_CAN_LINK. Drop the hard dependency on CC_CAN_LINK and instead skip the affected compilation step for exactly those headers which require libc. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Link: https://patch.msgid.link/20251223-uapi-nostdinc-v1-5-d91545d794f7@linutronix.de Signed-off-by: Nathan Chancellor <nathan@kernel.org>
This commit is contained in:
parent
c25d01e1c4
commit
2a0a30805a
2 changed files with 3 additions and 2 deletions
|
|
@ -247,7 +247,7 @@ config WERROR
|
||||||
|
|
||||||
config UAPI_HEADER_TEST
|
config UAPI_HEADER_TEST
|
||||||
bool "Compile test UAPI headers"
|
bool "Compile test UAPI headers"
|
||||||
depends on HEADERS_INSTALL && CC_CAN_LINK
|
depends on HEADERS_INSTALL
|
||||||
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.
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,8 @@ endif
|
||||||
always-y := $(patsubst $(obj)/%.h,%.hdrtest, $(shell find $(obj) -name '*.h' 2>/dev/null))
|
always-y := $(patsubst $(obj)/%.h,%.hdrtest, $(shell find $(obj) -name '*.h' 2>/dev/null))
|
||||||
|
|
||||||
target-no-libc = $(filter-out $(uses-libc), $*.h)
|
target-no-libc = $(filter-out $(uses-libc), $*.h)
|
||||||
target-can-compile = $(filter-out $(no-header-test), $*.h)
|
target-can-compile = $(and $(filter-out $(no-header-test), $*.h), \
|
||||||
|
$(or $(CONFIG_CC_CAN_LINK), $(target-no-libc)))
|
||||||
|
|
||||||
# Include the header twice to detect missing include guard.
|
# Include the header twice to detect missing include guard.
|
||||||
quiet_cmd_hdrtest = HDRTEST $<
|
quiet_cmd_hdrtest = HDRTEST $<
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue