On Tue, Aug 27, 2024 at 05:29:56PM +0200, Jason A. Donenfeld wrote:
On Tue, Aug 27, 2024 at 5:29 PM Xi Ruoyao xry111@xry111.site wrote:
Or, I can add $(KHDR_INCLUDES) but also keep -isystem $(top_srcdir)/include/uapi, so "make -C tools/testing/selftests TARGETS=vDSO" will still (happens to) work on x86 and ppc (without headers in kernel-tree/usr).
Oh, the porquenolosdos solution. That sounds good to me.
Does the below work for you?
From 0a769491e0193cdf9728a23d02be5e6be975b513 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao xry111@xry111.site Date: Wed, 28 Aug 2024 13:29:57 +0200 Subject: [PATCH] selftests/vDSO: use KHDR_INCLUDES to locate UAPI headers for vdso_test_getrandom
Building test_vdso_getrandom currently leads to following issue:
In file included from /home/xry111/git-repos/linux/tools/include/linux/compiler_types.h:36, from /home/xry111/git-repos/linux/include/uapi/linux/stddef.h:5, from /home/xry111/git-repos/linux/include/uapi/linux/posix_types.h:5, from /usr/include/asm/sigcontext.h:12, from /usr/include/bits/sigcontext.h:30, from /usr/include/signal.h:301, from vdso_test_getrandom.c:14: /home/xry111/git-repos/linux/tools/include/linux/compiler-gcc.h:3:2: error: #error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead." 3 | #error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead." | ^~~~~
It's because the compiler_types.h inclusion in include/uapi/linux/stddef.h is expected to be removed by the header_install.sh script, as compiler_types.h shouldn't be used from user space.
Add KHDR_INCLUDES before the existing include/uapi inclusion so that usr/include takes precedence if it's populated.
Signed-off-by: Xi Ruoyao xry111@xry111.site Signed-off-by: Jason A. Donenfeld Jason@zx2c4.com --- tools/testing/selftests/vDSO/Makefile | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/vDSO/Makefile b/tools/testing/selftests/vDSO/Makefile index d1452c7d6d4f..13a626ef64f7 100644 --- a/tools/testing/selftests/vDSO/Makefile +++ b/tools/testing/selftests/vDSO/Makefile @@ -39,6 +39,7 @@ $(OUTPUT)/vdso_test_correctness: LDFLAGS += -ldl
$(OUTPUT)/vdso_test_getrandom: parse_vdso.c $(OUTPUT)/vdso_test_getrandom: CFLAGS += -isystem $(top_srcdir)/tools/include \ + $(KHDR_INCLUDES) \ -isystem $(top_srcdir)/include/uapi
$(OUTPUT)/vdso_test_chacha: $(top_srcdir)/tools/arch/$(ARCH)/vdso/vgetrandom-chacha.S -- 2.46.0