Message ID | 20240807-macos-build-support-v1-11-4cd1ded85694@samsung.com |
---|---|
State | New |
Headers | show |
Series | Enable build system on macOS hosts | expand |
On Wed, Aug 7, 2024 at 8:10 AM Daniel Gomez via B4 Relay <devnull+da.gomez.samsung.com@kernel.org> wrote: > > From: Daniel Gomez <da.gomez@samsung.com> > > macOS hosts do not provide the linux/limits.h header required for > conmakehash. To address this, ensure that usr/include is included in > the conmakehash HOSTCFLAGS. This will provide the necessary header for > successful compilation on macOS. > > Fixes error: > HOSTCC drivers/tty/vt/conmakehash - due to target missing > clang -Wp,-MMD,drivers/tty/vt/.conmakehash.d -Wall > -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer > -std=gnu11 -I ./scripts/include -o drivers/tty/vt/conmakehash > drivers/tty/vt/conmakehash.c > drivers/tty/vt/conmakehash.c:15:10: fatal error: 'linux/ > limits.h' file not found 15 | #include <linux/limits.h> | > ^~~~~~~~~~~~~~~~ The error is reported at line 15 of drivers/tty/vt/conmakehash.c The line 15 is #include <stdlib.h>: https://github.com/torvalds/linux/blob/v6.11-rc1/drivers/tty/vt/conmakehash.c#L15 So, host programs cannot include <stdlib.h> on your build machine. drivers/tty/vt/conmakehash.c has only 5 include directives: #include <stdio.h> #include <stdlib.h> #include <sysexits.h> #include <string.h> #include <ctype.h> You cannot build this, your build machine cannot build anything. > 1 error generated. > make[5]: *** [scripts/Makefile.host:116: drivers/tty/vt/conmakehash] > Error 1 > make[4]: *** [scripts/Makefile.build:485: drivers/tty/vt] Error 2 > make[3]: *** [scripts/Makefile.build:485: drivers/tty] Error 2 > make[2]: *** [scripts/Makefile.build:485: drivers] Error 2 > make[1]: *** [/Volumes/src/kernel/linux-next/Makefile:1925: .] Error 2 > make: *** [Makefile:224: __sub-make] Error 2 > > Signed-off-by: Daniel Gomez <da.gomez@samsung.com> > --- > drivers/tty/vt/Makefile | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/tty/vt/Makefile b/drivers/tty/vt/Makefile > index 2c8ce8b592ed..d266895357e5 100644 > --- a/drivers/tty/vt/Makefile > +++ b/drivers/tty/vt/Makefile > @@ -13,6 +13,7 @@ obj-$(CONFIG_CONSOLE_TRANSLATIONS) += consolemap.o consolemap_deftbl.o > clean-files := consolemap_deftbl.c defkeymap.c > > hostprogs += conmakehash > +HOSTCFLAGS_conmakehash.o = -I$(srctree)/usr/include > > quiet_cmd_conmk = CONMK $@ > cmd_conmk = $(obj)/conmakehash $< > $@ > > -- > Git-146) > > -- Best Regards Masahiro Yamada
On Fri, Aug 9, 2024 at 2:15 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Wed, Aug 7, 2024 at 8:10 AM Daniel Gomez via B4 Relay > <devnull+da.gomez.samsung.com@kernel.org> wrote: > > > > From: Daniel Gomez <da.gomez@samsung.com> > > > > macOS hosts do not provide the linux/limits.h header required for > > conmakehash. To address this, ensure that usr/include is included in > > the conmakehash HOSTCFLAGS. This will provide the necessary header for > > successful compilation on macOS. > > > > Fixes error: > > HOSTCC drivers/tty/vt/conmakehash - due to target missing > > clang -Wp,-MMD,drivers/tty/vt/.conmakehash.d -Wall > > -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer > > -std=gnu11 -I ./scripts/include -o drivers/tty/vt/conmakehash > > drivers/tty/vt/conmakehash.c > > drivers/tty/vt/conmakehash.c:15:10: fatal error: 'linux/ > > limits.h' file not found 15 | #include <linux/limits.h> | > > ^~~~~~~~~~~~~~~~ > > > The error is reported at line 15 of drivers/tty/vt/conmakehash.c > > > The line 15 is #include <stdlib.h>: > > https://github.com/torvalds/linux/blob/v6.11-rc1/drivers/tty/vt/conmakehash.c#L15 The patches were sent using the latest linux-next at the moment of sending, so next-20240806. B4 adds the baseline [1] used at the bottom. [1] base-commit: 1e391b34f6aa043c7afa40a2103163a0ef06d179 So line 15 is linux/limits.h header in this case: https://github.com/torvalds/linux/blob/1e391b34f6aa043c7afa40a2103163a0ef06d179/drivers/tty/vt/conmakehash.c#L15 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/tty/vt/conmakehash.c?h=1e391b34f6aa043c7afa40a2103163a0ef06d179#n15 This patch adds the header: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/tty/vt/conmakehash.c?h=next-20240809&id=6e20753da6bc651e02378a0cdb78f16c42098c88 > > > So, host programs cannot include <stdlib.h> on your build machine. > > > > drivers/tty/vt/conmakehash.c has only 5 include directives: > > #include <stdio.h> > #include <stdlib.h> > #include <sysexits.h> > #include <string.h> > #include <ctype.h> > > > You cannot build this, your build machine cannot build anything. > > > > > > > > > > > 1 error generated. > > make[5]: *** [scripts/Makefile.host:116: drivers/tty/vt/conmakehash] > > Error 1 > > make[4]: *** [scripts/Makefile.build:485: drivers/tty/vt] Error 2 > > make[3]: *** [scripts/Makefile.build:485: drivers/tty] Error 2 > > make[2]: *** [scripts/Makefile.build:485: drivers] Error 2 > > make[1]: *** [/Volumes/src/kernel/linux-next/Makefile:1925: .] Error 2 > > make: *** [Makefile:224: __sub-make] Error 2 > > > > Signed-off-by: Daniel Gomez <da.gomez@samsung.com> > > --- > > drivers/tty/vt/Makefile | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/tty/vt/Makefile b/drivers/tty/vt/Makefile > > index 2c8ce8b592ed..d266895357e5 100644 > > --- a/drivers/tty/vt/Makefile > > +++ b/drivers/tty/vt/Makefile > > @@ -13,6 +13,7 @@ obj-$(CONFIG_CONSOLE_TRANSLATIONS) += consolemap.o consolemap_deftbl.o > > clean-files := consolemap_deftbl.c defkeymap.c > > > > hostprogs += conmakehash > > +HOSTCFLAGS_conmakehash.o = -I$(srctree)/usr/include > > > > quiet_cmd_conmk = CONMK $@ > > cmd_conmk = $(obj)/conmakehash $< > $@ > > > > -- > > Git-146) > > > > > > > -- > Best Regards > Masahiro Yamada
diff --git a/drivers/tty/vt/Makefile b/drivers/tty/vt/Makefile index 2c8ce8b592ed..d266895357e5 100644 --- a/drivers/tty/vt/Makefile +++ b/drivers/tty/vt/Makefile @@ -13,6 +13,7 @@ obj-$(CONFIG_CONSOLE_TRANSLATIONS) += consolemap.o consolemap_deftbl.o clean-files := consolemap_deftbl.c defkeymap.c hostprogs += conmakehash +HOSTCFLAGS_conmakehash.o = -I$(srctree)/usr/include quiet_cmd_conmk = CONMK $@ cmd_conmk = $(obj)/conmakehash $< > $@