[PATCH] selftests: always install UAPI headers to the correct directory

Thomas Weißschuh posted 1 patch 1 week, 6 days ago
tools/testing/selftests/lib.mk | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH] selftests: always install UAPI headers to the correct directory
Posted by Thomas Weißschuh 1 week, 6 days ago
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.

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>
---
 tools/testing/selftests/lib.mk | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
index 5303900339292e618dee4fd7ff8a7c2fa3209a68..a448fae57831d86098806adaff53f6f1a747febb 100644
--- a/tools/testing/selftests/lib.mk
+++ b/tools/testing/selftests/lib.mk
@@ -228,7 +228,10 @@ $(OUTPUT)/%:%.S
 	$(LINK.S) $^ $(LDLIBS) -o $@
 endif
 
+# Extract the expected header directory
+khdr_output := $(patsubst %/usr/include,%,$(filter %/usr/include,$(KHDR_INCLUDES)))
+
 headers:
-	$(Q)$(MAKE) -C $(top_srcdir) headers
+	$(Q)$(MAKE) -f $(top_srcdir)/Makefile -C $(khdr_output) headers
 
 .PHONY: run_tests all clean install emit_tests gen_mods_dir clean_mods_dir headers

---
base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
change-id: 20250918-kselftest-uapi-out-of-tree-98d50f59040c

Best regards,
-- 
Thomas Weißschuh <thomas.weissschuh@linutronix.de>

Re: [PATCH] selftests: always install UAPI headers to the correct directory
Posted by Shuah Khan 1 week, 6 days ago
On 9/18/25 03:56, Thomas Weißschuh wrote:
> 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.
> 
> 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>
> ---
>   tools/testing/selftests/lib.mk | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 

Applied to linux-kselftest next branch for Linux 6.18-rc1

thanks,
-- Shuah