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 <xry...@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 <xry...@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 <xry...@xry111.site>
Signed-off-by: Jason A. Donenfeld <ja...@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



Reply via email to