* [Buildroot] [PATCH v2 1/1] boot/syslinux: fix build with gnu-efi >= 3.0.16
@ 2024-02-28 18:14 Julien Olivain
2024-02-28 21:39 ` Romain Naour
2024-03-01 18:18 ` Peter Korsgaard
0 siblings, 2 replies; 3+ messages in thread
From: Julien Olivain @ 2024-02-28 18:14 UTC (permalink / raw)
To: buildroot; +Cc: Julien Olivain
Commit fa9893ad8f "package/gnu-efi: bump to version 3.0.17" updated
gnu-efi. This update introduced syslinux build failure, as reported
in [1].
This commit adds a package patch to fix this issue. For technical
details of the issue, see the package patch commit log.
Fixes:
- https://gitlab.com/buildroot.org/buildroot/-/jobs/6256880937
- https://gitlab.com/buildroot.org/buildroot/-/jobs/6256880949
[1] https://lists.buildroot.org/pipermail/buildroot/2024-February/685971.html
Signed-off-by: Julien Olivain <ju.o@free.fr>
---
Changes v1 -> v2:
- Removed .checkpackageignore entry for the patch
- Added Upstream: tag with upstream proposal URL in the patch
---
...stddef.h-add-wchar_t-type-definition.patch | 59 +++++++++++++++++++
1 file changed, 59 insertions(+)
create mode 100644 boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch
diff --git a/boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch b/boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch
new file mode 100644
index 00000000000..65d9463a6f6
--- /dev/null
+++ b/boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch
@@ -0,0 +1,59 @@
+From 063dac55c45d0264671c3463e824ab659e5cbb87 Mon Sep 17 00:00:00 2001
+From: Julien Olivain <ju.o@free.fr>
+Date: Tue, 27 Feb 2024 21:09:15 +0100
+Subject: [PATCH] stddef.h: add wchar_t type definition
+
+Syslinux fail to build with gnu-efi >= 3.0.16 with error:
+
+ In file included from /host/i686-buildroot-linux-gnu/sysroot/usr/include/efi/efi.h:44,
+ from /build/syslinux-6.03/efi/efi.h:23,
+ from /build/syslinux-6.03/efi/adv.h:4,
+ from /build/syslinux-6.03/efi/adv.c:29:
+ /host/i686-buildroot-linux-gnu/sysroot/usr/include/efi/ia32/efibind.h:90:9: error: unknown type name 'wchar_t'
+ typedef wchar_t CHAR16;
+ ^~~~~~~
+
+This is because gnu-efi started to use the "wchar_t" type from the
+toolchain's <stddef.h> header, in commit [1]. Before this commit,
+gnu-efi was defining the type as "short".
+
+Syslinux is including its own minimal stddef.h file, which masks the
+one provided by the toolchain. See [2]. This file does not have a type
+definition for "wchar_t".
+
+Finally, the POSIX <stddef.h> header is supposed to provide this
+"wchar_t" type definition. See [3].
+
+This commit fixes the issue by adding the "wchar_t" type definition in
+the com32/include/stddef.h header. Since Syslinux has "-fshort-wchar"
+in its CFLAGS (see [4]), "wchar_t" is simply defined as "short". This
+also follow the previous gnu-efi < 3.0.16 behavior.
+
+This issue was seen in Buildroot Linux, in [5].
+
+[1] https://sourceforge.net/p/gnu-efi/code/ci/189200d0b0f6fff473d302880d9569f45d4d8c4d
+[2] https://repo.or.cz/syslinux.git/blob/refs/tags/syslinux-6.03:/com32/include/stddef.h
+[3] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html
+[4] https://repo.or.cz/syslinux.git/blob/refs/tags/syslinux-6.03:/mk/efi.mk#l27
+[5] https://lists.buildroot.org/pipermail/buildroot/2024-February/685971.html
+
+Upstream: Proposed: https://www.syslinux.org/archives/2024-February/026903.html
+Signed-off-by: Julien Olivain <ju.o@free.fr>
+---
+ com32/include/stddef.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/com32/include/stddef.h b/com32/include/stddef.h
+index f52d62f3..437b11f2 100644
+--- a/com32/include/stddef.h
++++ b/com32/include/stddef.h
+@@ -29,4 +29,6 @@
+ */
+ #define container_of(p, c, m) ((c *)((char *)(p) - offsetof(c,m)))
+
++typedef short wchar_t;
++
+ #endif /* _STDDEF_H */
+--
+2.44.0
+
--
2.44.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH v2 1/1] boot/syslinux: fix build with gnu-efi >= 3.0.16
2024-02-28 18:14 [Buildroot] [PATCH v2 1/1] boot/syslinux: fix build with gnu-efi >= 3.0.16 Julien Olivain
@ 2024-02-28 21:39 ` Romain Naour
2024-03-01 18:18 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Romain Naour @ 2024-02-28 21:39 UTC (permalink / raw)
To: Julien Olivain, buildroot
Hello Julien,
Le 28/02/2024 à 19:14, Julien Olivain a écrit :
> Commit fa9893ad8f "package/gnu-efi: bump to version 3.0.17" updated
> gnu-efi. This update introduced syslinux build failure, as reported
> in [1].
>
> This commit adds a package patch to fix this issue. For technical
> details of the issue, see the package patch commit log.
>
> Fixes:
> - https://gitlab.com/buildroot.org/buildroot/-/jobs/6256880937
> - https://gitlab.com/buildroot.org/buildroot/-/jobs/6256880949
>
> [1] https://lists.buildroot.org/pipermail/buildroot/2024-February/685971.html
>
> Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Best regards,
Romain
> ---
> Changes v1 -> v2:
> - Removed .checkpackageignore entry for the patch
> - Added Upstream: tag with upstream proposal URL in the patch
> ---
> ...stddef.h-add-wchar_t-type-definition.patch | 59 +++++++++++++++++++
> 1 file changed, 59 insertions(+)
> create mode 100644 boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch
>
> diff --git a/boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch b/boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch
> new file mode 100644
> index 00000000000..65d9463a6f6
> --- /dev/null
> +++ b/boot/syslinux/0019-stddef.h-add-wchar_t-type-definition.patch
> @@ -0,0 +1,59 @@
> +From 063dac55c45d0264671c3463e824ab659e5cbb87 Mon Sep 17 00:00:00 2001
> +From: Julien Olivain <ju.o@free.fr>
> +Date: Tue, 27 Feb 2024 21:09:15 +0100
> +Subject: [PATCH] stddef.h: add wchar_t type definition
> +
> +Syslinux fail to build with gnu-efi >= 3.0.16 with error:
> +
> + In file included from /host/i686-buildroot-linux-gnu/sysroot/usr/include/efi/efi.h:44,
> + from /build/syslinux-6.03/efi/efi.h:23,
> + from /build/syslinux-6.03/efi/adv.h:4,
> + from /build/syslinux-6.03/efi/adv.c:29:
> + /host/i686-buildroot-linux-gnu/sysroot/usr/include/efi/ia32/efibind.h:90:9: error: unknown type name 'wchar_t'
> + typedef wchar_t CHAR16;
> + ^~~~~~~
> +
> +This is because gnu-efi started to use the "wchar_t" type from the
> +toolchain's <stddef.h> header, in commit [1]. Before this commit,
> +gnu-efi was defining the type as "short".
> +
> +Syslinux is including its own minimal stddef.h file, which masks the
> +one provided by the toolchain. See [2]. This file does not have a type
> +definition for "wchar_t".
> +
> +Finally, the POSIX <stddef.h> header is supposed to provide this
> +"wchar_t" type definition. See [3].
> +
> +This commit fixes the issue by adding the "wchar_t" type definition in
> +the com32/include/stddef.h header. Since Syslinux has "-fshort-wchar"
> +in its CFLAGS (see [4]), "wchar_t" is simply defined as "short". This
> +also follow the previous gnu-efi < 3.0.16 behavior.
> +
> +This issue was seen in Buildroot Linux, in [5].
> +
> +[1] https://sourceforge.net/p/gnu-efi/code/ci/189200d0b0f6fff473d302880d9569f45d4d8c4d
> +[2] https://repo.or.cz/syslinux.git/blob/refs/tags/syslinux-6.03:/com32/include/stddef.h
> +[3] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html
> +[4] https://repo.or.cz/syslinux.git/blob/refs/tags/syslinux-6.03:/mk/efi.mk#l27
> +[5] https://lists.buildroot.org/pipermail/buildroot/2024-February/685971.html
> +
> +Upstream: Proposed: https://www.syslinux.org/archives/2024-February/026903.html
> +Signed-off-by: Julien Olivain <ju.o@free.fr>
> +---
> + com32/include/stddef.h | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/com32/include/stddef.h b/com32/include/stddef.h
> +index f52d62f3..437b11f2 100644
> +--- a/com32/include/stddef.h
> ++++ b/com32/include/stddef.h
> +@@ -29,4 +29,6 @@
> + */
> + #define container_of(p, c, m) ((c *)((char *)(p) - offsetof(c,m)))
> +
> ++typedef short wchar_t;
> ++
> + #endif /* _STDDEF_H */
> +--
> +2.44.0
> +
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH v2 1/1] boot/syslinux: fix build with gnu-efi >= 3.0.16
2024-02-28 18:14 [Buildroot] [PATCH v2 1/1] boot/syslinux: fix build with gnu-efi >= 3.0.16 Julien Olivain
2024-02-28 21:39 ` Romain Naour
@ 2024-03-01 18:18 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2024-03-01 18:18 UTC (permalink / raw)
To: Julien Olivain; +Cc: buildroot
>>>>> "Julien" == Julien Olivain <ju.o@free.fr> writes:
> Commit fa9893ad8f "package/gnu-efi: bump to version 3.0.17" updated
> gnu-efi. This update introduced syslinux build failure, as reported
> in [1].
> This commit adds a package patch to fix this issue. For technical
> details of the issue, see the package patch commit log.
> Fixes:
> - https://gitlab.com/buildroot.org/buildroot/-/jobs/6256880937
> - https://gitlab.com/buildroot.org/buildroot/-/jobs/6256880949
> [1] https://lists.buildroot.org/pipermail/buildroot/2024-February/685971.html
> Signed-off-by: Julien Olivain <ju.o@free.fr>
> ---
> Changes v1 -> v2:
> - Removed .checkpackageignore entry for the patch
> - Added Upstream: tag with upstream proposal URL in the patch
Committed, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-03-01 18:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-28 18:14 [Buildroot] [PATCH v2 1/1] boot/syslinux: fix build with gnu-efi >= 3.0.16 Julien Olivain
2024-02-28 21:39 ` Romain Naour
2024-03-01 18:18 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox