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

selftests: always install UAPI headers to the correct directory

Currently the UAPI headers are always installed into the source directory.
When building out-of-tree this doesn't work, as the include path will be
wrong and it dirties the source tree, leading to complains by kbuild.

Make sure the 'headers' target installs the UAPI headers in the correctly.

The real target directory can come from multiple places. To handle them all
extract the target directory from KHDR_INCLUDES.

Link: https://lore.kernel.org/r/20250918-kselftest-uapi-out-of-tree-v1-1-f4434f28adcd@linutronix.de
Reported-by: Jason Gunthorpe <jgg@nvidia.com>
Closes: https://lore.kernel.org/lkml/20250917153209.GA2023406@nvidia.com/
Fixes: 1a59f5d31569 ("selftests: Add headers target")
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

authored by

Thomas Weißschuh and committed by
Shuah Khan
2c55daf7 3e23a3f6

+4 -1
+4 -1
tools/testing/selftests/lib.mk
··· 228 228 $(LINK.S) $^ $(LDLIBS) -o $@ 229 229 endif 230 230 231 + # Extract the expected header directory 232 + khdr_output := $(patsubst %/usr/include,%,$(filter %/usr/include,$(KHDR_INCLUDES))) 233 + 231 234 headers: 232 - $(Q)$(MAKE) -C $(top_srcdir) headers 235 + $(Q)$(MAKE) -f $(top_srcdir)/Makefile -C $(khdr_output) headers 233 236 234 237 .PHONY: run_tests all clean install emit_tests gen_mods_dir clean_mods_dir headers