From: Alexander Sverdlin <alexander.sverdlin@gmail.com>
To: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: buildroot@buildroot.org, Andreas Ziegler <br025@umbiko.net>
Subject: Re: [Buildroot] [PATCH v2] boot/syslinux: Bump to 6.04-pre2
Date: Mon, 26 Oct 2026 21:45:35 +0100 [thread overview]
Message-ID: <e34f4a3f8aaee192923e3ecdde4a287a1cfaabda.camel@gmail.com> (raw)
In-Reply-To: <at5oC97YlhN98HHS@windsurf>
Hi Thomas,
On Sun, 2026-10-25 at 21:36 +0100, Thomas Petazzoni wrote:
> On Sun, Oct 25, 2026 at 12:08:44AM +0200, Alexander Sverdlin wrote:
> > The revision to build comes from Archlinux syslinux package, the archive
> > from debian (to save time for git clone).
> >
> > Add patch fixing passing &load_error_buf to setjmp()/longjmp(), rejected
> > since gcc 14 made -Wincompatible-pointer-types an error by default.
> >
> > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
>
> Does it make sense to keep syslinux? Even Wikipedia says it's
> "discontinued". Do you still use it?
I'll be fine having it downstream. I just thought, there is still an
interest [1] in this update ;-)
> What about all the patches you are dropping, are they all "upstream"?
> We usually like to have some clarification in the commit log on why
> patches are dropped.
Sorry, yes, all the dropped are "already applied", I will mention this
in the commit message if you'll have interest in it.
> > diff --git a/boot/syslinux/0001-efi-main.c-fix-jmp_buf-passing.patch b/boot/syslinux/0001-efi-main.c-fix-jmp_buf-passing.patch
> > new file mode 100644
> > index 0000000000..3baabc2b2e
> > --- /dev/null
> > +++ b/boot/syslinux/0001-efi-main.c-fix-jmp_buf-passing.patch
> > @@ -0,0 +1,34 @@
> > +From: Alexander Sverdlin <alexander.sverdlin@gmail.com>
> > +Subject: [PATCH] efi/main.c: pass jmp_buf directly to setjmp()/longjmp()
> > +
> > +gnu-efi's jmp_buf is a one-element array, so load_error_buf already decays
> > +to the element pointer setjmp()/longjmp() expect. Passing &load_error_buf
> > +hands over a pointer-to-array instead, rejected since gcc 14 made
> > +-Wincompatible-pointer-types an error by default.
> > +
> > +Upstream: N/A, dead
> > +Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
> > +---
> > + efi/main.c | 4 ++--
> > + 1 file changed, 2 insertions(+), 2 deletions(-)
> > +
> > +diff --git a/efi/main.c b/efi/main.c
> > +--- a/efi/main.c
> > ++++ b/efi/main.c
> > +@@ -184,7 +184,7 @@ __export void local_boot(uint16_t ax)
> > + * Inform the firmware that we failed to execute correctly, which
> > + * will trigger the next entry in the EFI Boot Manager list.
> > + */
> > +- longjmp(&load_error_buf, 1);
> > ++ longjmp(load_error_buf, 1);
>
> Are you sure this is the right fix...
It is confusing, but indeed, this has been changed back and forth in the
syslinux itself and because of the fact that buildroot builds syslinux
against buildroot gnuefi package.
> > diff --git a/boot/syslinux/0024-efi-main.c-fix-incorrect-type-of-load_error_buf.patch b/boot/syslinux/0024-efi-main.c-fix-incorrect-type-of-load_error_buf.patch
> > deleted file mode 100644
> > index 9f61745a61..0000000000
> > --- a/boot/syslinux/0024-efi-main.c-fix-incorrect-type-of-load_error_buf.patch
> > +++ /dev/null
> > @@ -1,48 +0,0 @@
> > -From cbc8a8e25c3548771de5294f5a1eaef6bfe9b5da Mon Sep 17 00:00:00 2001
> > -From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > -Date: Sat, 18 Jan 2025 17:03:16 +0100
> > -Subject: [PATCH] efi/main.c: fix incorrect type of load_error_buf
> > -MIME-Version: 1.0
> > -Content-Type: text/plain; charset=UTF-8
> > -Content-Transfer-Encoding: 8bit
> > -
> > -load_error_buf is used as argument of setjmp()/longjmp(), so it should
> > -be a "jmp_buf", not a "jmp_buf *". According to the setjmp/longjmp man
> > -page:
> > -
> > - int setjmp(jmp_buf env);
> > - int sigsetjmp(sigjmp_buf env, int savesigs);
> > -
> > -Fixes build issue with GCC >= 14:
> > -
> > -efi/main.c:1329:21: error: passing argument 1 of ‘setjmp’ from incompatible pointer type [-Wincompatible-pointer-types]
> > - 1329 | if (!setjmp(load_error_buf))
> > - | ^~~~~~~~~~~~~~
> > - | |
> > - | struct <anonymous> (*)[1]
> > -x86_64-buildroot-linux-gnu/sysroot/usr/include/efi/efisetjmp.h:7:29: note: expected ‘struct <anonymous> *’ but argument is of type ‘struct <anonymous> (*)[1]’
> > - 7 | extern UINTN setjmp(jmp_buf env) __attribute__((returns_twice));
> > - | ~~~~~~~~^~~
> > -
> > -Upstream: N/A dead
> > -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ----
> > - efi/main.c | 2 +-
> > - 1 file changed, 1 insertion(+), 1 deletion(-)
> > -
> > -diff --git a/efi/main.c b/efi/main.c
> > -index 7dc7bca7..045dae56 100644
> > ---- a/efi/main.c
> > -+++ b/efi/main.c
> > -@@ -30,7 +30,7 @@ uint32_t timer_irq;
> > - __export uint8_t KbdMap[256];
> > - char aux_seg[256];
> > -
> > --static jmp_buf *load_error_buf;
> > -+static jmp_buf load_error_buf;
>
> And not this one, that you are removing?
So the patch 24 has partially reverted the patch 7, the latter is already merged
upstream, but in different form (22d32c15ea96
"Update the longjump calls to fit the new declaration").
Ultimately, patch 7 doesn't apply, patch 24 doesn't apply because patch
7 doesn't apply, but even if they would both apply, the net result will
be exactly what 6.04-pre2 has upstream. And it's not buildable against the
buildroot gnuefi package.
[1] https://lore.kernel.org/all/aq62x3ovAUoc_Lmn@windsurf/
--
Alexander Sverdlin.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2026-10-26 20:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-24 22:08 [Buildroot] [PATCH v2] boot/syslinux: Bump to 6.04-pre2 Alexander Sverdlin
2026-10-25 20:36 ` Thomas Petazzoni via buildroot
2026-10-26 20:45 ` Alexander Sverdlin [this message]
2026-10-27 4:54 ` Andreas Ziegler
2026-10-27 5:57 ` Alexander Sverdlin
2026-10-27 8:20 ` Thomas Petazzoni via buildroot
2026-10-27 15:12 ` Lance Fredrickson
2026-10-27 8:19 ` Thomas Petazzoni via buildroot
2026-10-28 4:48 ` Andreas Ziegler
2026-10-27 8:15 ` Thomas Petazzoni via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e34f4a3f8aaee192923e3ecdde4a287a1cfaabda.camel@gmail.com \
--to=alexander.sverdlin@gmail.com \
--cc=br025@umbiko.net \
--cc=buildroot@buildroot.org \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.