On Wed, Aug 07, 2024 at 05:38:28PM GMT, Nicolas Schier wrote: > On Wed, Aug 07, 2024 at 01:09:20AM +0200, Daniel Gomez via B4 Relay wrote: > > From: Daniel Gomez <da.gomez@xxxxxxxxxxx> > > > > The genheaders requires the bitsperlong.h and posix_types.h headers. > > To ensure these headers are found during compilation on macOS hosts, > > add usr/include to HOST_EXTRACFLAGS in the genheaders Makefile. This > > adjustment allows the compiler to locate all necessary headers when they > > are not available by default on macOS. > > > > Signed-off-by: Daniel Gomez <da.gomez@xxxxxxxxxxx> > > --- > > scripts/selinux/genheaders/Makefile | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/scripts/selinux/genheaders/Makefile b/scripts/selinux/genheaders/Makefile > > index 1faf7f07e8db..017149c90f8e 100644 > > --- a/scripts/selinux/genheaders/Makefile > > +++ b/scripts/selinux/genheaders/Makefile > > @@ -2,4 +2,5 @@ > > hostprogs-always-y += genheaders > > HOST_EXTRACFLAGS += \ > > -I$(srctree)/include/uapi -I$(srctree)/include \ > > - -I$(srctree)/security/selinux/include > > + -I$(srctree)/security/selinux/include \ > > + -I$(srctree)/usr/include > > 'make headers' composes the UAPI header tree in $(objtree)/usr/include. > So, if you build out-of-source, -I$(srctree)/usr/include will not match. > Just remove the '$(srctree)/' prefix as '$(objtree)/' is always '.'. The 'headers' target also deploys installs the headers in arch/$(SRCARCH)/ include/uapi, so I've updated selinux/genheaders/Makefile to the following: diff --git a/scripts/selinux/genheaders/Makefile b/scripts/selinux/genheaders/Makefile index 1faf7f07e8db..ae1f195b6f67 100644 --- a/scripts/selinux/genheaders/Makefile +++ b/scripts/selinux/genheaders/Makefile @@ -2,4 +2,6 @@ hostprogs-always-y += genheaders HOST_EXTRACFLAGS += \ -I$(srctree)/include/uapi -I$(srctree)/include \ - -I$(srctree)/security/selinux/include + -I$(srctree)/security/selinux/include \ + -I$(objtree)/arch/$(SRCARCH)/include/generated/uapi \ + -I$(objtree)/arch/$(SRCARCH)/include/uapi The include path -I$(objtree)/arch/$(SRCARCH)/include/generated/uapi enables locating the asm/types.h. The include path -I$(objtree)/arch/$(SRCARCH)/include/uapi enables locating the asm/bitsperlong.h and asm/posix_types.h. > > But I am suspecting that this break cross-building. I’ve tested this change on macOS with ARCH=arm64, as well as on Debian with ARCH=arm64 and ARCH=x86_64. Is it enough to just confirm that cross-building still works after this change? > > Kind regards, > Nicolas