Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Thomas Weißschuh and committed by
Nathan Chancellor
2a0a3080 c25d01e1

+3 -2
+1 -1
init/Kconfig
··· 247 247 248 248 config UAPI_HEADER_TEST 249 249 bool "Compile test UAPI headers" 250 - depends on HEADERS_INSTALL && CC_CAN_LINK 250 + depends on HEADERS_INSTALL 251 251 help 252 252 Compile test headers exported to user-space to ensure they are 253 253 self-contained, i.e. compilable as standalone units.
+2 -1
usr/include/Makefile
··· 151 151 always-y := $(patsubst $(obj)/%.h,%.hdrtest, $(shell find $(obj) -name '*.h' 2>/dev/null)) 152 152 153 153 target-no-libc = $(filter-out $(uses-libc), $*.h) 154 - target-can-compile = $(filter-out $(no-header-test), $*.h) 154 + target-can-compile = $(and $(filter-out $(no-header-test), $*.h), \ 155 + $(or $(CONFIG_CC_CAN_LINK), $(target-no-libc))) 155 156 156 157 # Include the header twice to detect missing include guard. 157 158 quiet_cmd_hdrtest = HDRTEST $<