Bug#1086145: syslinux NMU 3:6.04~git20190206.bf6db5b4+dfsg1-3.1
Philipp Kern
pkern at debian.org
Sun Apr 13 12:22:07 BST 2025
user debian-release at lists.debian.org
usertag 1091027 + bsp-2025-04-at-vienna
usertag 1057462 + bsp-2025-04-at-vienna
usertag 994274 + bsp-2025-04-at-vienna
tag 1091027 + pending
tag 1057462 + pending
tag 994274 + pending
thanks
Uploaded an NMU to DELAYED/0-day:
> syslinux (3:6.04~git20190206.bf6db5b4+dfsg1-3.1) unstable; urgency=medium
>
> * Non-maintainer upload.
> * Add GCC 14 compatibility patch. Thanks to Marek Benc.
> (Closes: #1091027, #1057462)
> * Add wchar_t definition for gnu-efi >= 3.0.16 compatibility.
> (Closes: #994274)
> * Update build dependency on e2fslibs-dev => libext2fs-dev.
> * Update Lintian overrides to match again.
>
> -- Philipp Kern <pkern at debian.org> Sun, 13 Apr 2025 11:31:54 +0200
Kind regards
Philipp Kern
-------------- next part --------------
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/changelog syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/changelog
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/changelog 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/changelog 2025-04-13 11:31:54.000000000 +0200
@@ -1,3 +1,15 @@
+syslinux (3:6.04~git20190206.bf6db5b4+dfsg1-3.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Add GCC 14 compatibility patch. Thanks to Marek Benc.
+ (Closes: #1091027, #1057462)
+ * Add wchar_t definition for gnu-efi >= 3.0.16 compatibility.
+ (Closes: #994274)
+ * Update build dependency on e2fslibs-dev => libext2fs-dev.
+ * Update Lintian overrides to match again.
+
+ -- Philipp Kern <pkern at debian.org> Sun, 13 Apr 2025 11:31:54 +0200
+
syslinux (3:6.04~git20190206.bf6db5b4+dfsg1-3) unstable; urgency=medium
* Add patch for compatibility with gcc-10 (Closes: 957858)
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/control syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/control
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/control 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/control 2025-04-13 11:31:54.000000000 +0200
@@ -5,7 +5,7 @@
Uploaders: Lukas Schwaighofer <lukas at schwaighofer.name>
Build-Depends:
debhelper-compat (= 12),
- e2fslibs-dev,
+ libext2fs-dev,
gcc-multilib [amd64 x32],
libc6-dev-i386 [amd64 x32],
nasm,
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/extlinux.lintian-overrides syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/extlinux.lintian-overrides
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/extlinux.lintian-overrides 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/extlinux.lintian-overrides 2025-04-13 11:31:54.000000000 +0200
@@ -1,2 +1,2 @@
# extlinux contains the VBR (volume boot record) which needs zlib embedded
-extlinux: embedded-library usr/bin/extlinux: zlib
+extlinux: embedded-library zlib [usr/bin/extlinux]
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/isolinux.lintian-overrides syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/isolinux.lintian-overrides
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/isolinux.lintian-overrides 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/isolinux.lintian-overrides 2025-04-13 11:31:54.000000000 +0200
@@ -1,2 +1,2 @@
# specific documentation for the contents of this directory
-isolinux: package-contains-documentation-outside-usr-share-doc usr/lib/ISOLINUX/extra/README
+isolinux: package-contains-documentation-outside-usr-share-doc [usr/lib/ISOLINUX/extra/README]
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0020-gcc-14-compatibility.patch syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0020-gcc-14-compatibility.patch
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0020-gcc-14-compatibility.patch 1970-01-01 01:00:00.000000000 +0100
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0020-gcc-14-compatibility.patch 2025-04-13 11:31:49.000000000 +0200
@@ -0,0 +1,71 @@
+Description: GCC-14 compatibility patch
+
+* Disable FCF protection on i386, where it's not supported.
+* Add missing include to resolve implicit printf() function declaration.
+* Add missing header file for long jumps in efi/main.c, fix invocations.
+* Type-cast addr_t pointer to size_t, assumes that their size is the same.
+
+Author: Marek Benc <benc.marek.elektro98 at proton.me>
+Bug-Debian: https://bugs.debian.org/1091027
+Last-Update: 2025-04-11
+
+--- syslinux-6.04~git20190206.bf6db5b4+dfsg1.orig/mk/embedded.mk
++++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/mk/embedded.mk
+@@ -24,6 +24,7 @@ GCCOPT :=
+ ifeq ($(ARCH),i386)
+ GCCOPT := $(call gcc_ok,-m32)
+ GCCOPT += $(call gcc_ok,-march=i386)
++ GCCOPT += $(call gcc_ok,-fcf-protection=none,)
+ GCCOPT += $(call gcc_ok,-mpreferred-stack-boundary=2,)
+ GCCOPT += $(call gcc_ok,-mincoming-stack-boundary=2,)
+ endif
+
+--- syslinux-6.04~git20190206.bf6db5b4+dfsg1.orig/com32/lib/syslinux/debug.c
++++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/com32/lib/syslinux/debug.c
+@@ -1,4 +1,5 @@
+ #include <linux/list.h>
++#include <stdio.h>
+ #include <string.h>
+ #include <stdbool.h>
+
+--- syslinux-6.04~git20190206.bf6db5b4+dfsg1.orig/efi/main.c
++++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/efi/main.c
+@@ -6,6 +6,7 @@
+ #include <core.h>
+ #include <fs.h>
+ #include <com32.h>
++#include <setjmp.h>
+ #include <syslinux/memscan.h>
+ #include <syslinux/firmware.h>
+ #include <syslinux/linux.h>
+@@ -184,7 +185,7 @@
+ * 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);
+ }
+
+ void bios_timer_cleanup(void)
+@@ -1382,7 +1383,7 @@
+ status = uefi_call_wrapper(in->ReadKeyStroke, 2, in, &key);
+ } while (status == EFI_SUCCESS);
+
+- if (!setjmp(&load_error_buf))
++ if (!setjmp(load_error_buf))
+ load_env32(NULL);
+
+ /* load_env32() failed.. cancel timer and bailout */
+
+--- syslinux-6.04~git20190206.bf6db5b4+dfsg1.orig/com32/chain/chain.c
++++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/com32/chain/chain.c
+@@ -514,7 +514,7 @@
+ if (opt.file) {
+ fdat.base = (opt.fseg << 4) + opt.foff;
+
+- if (loadfile(opt.file, &fdat.data, &fdat.size)) {
++ if (loadfile(opt.file, &fdat.data, (size_t *)&fdat.size)) {
+ error("Couldn't read the boot file.");
+ goto bail;
+ }
+
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0021-add_wchar_t-type-definition.patch syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0021-add_wchar_t-type-definition.patch
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0021-add_wchar_t-type-definition.patch 1970-01-01 01:00:00.000000000 +0100
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/0021-add_wchar_t-type-definition.patch 2025-04-13 11:31:54.000000000 +0200
@@ -0,0 +1,58 @@
+From 063dac55c45d0264671c3463e824ab659e5cbb87 Mon Sep 17 00:00:00 2001
+From: Julien Olivain <ju.o at 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 at 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
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/series syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/series
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/series 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/patches/series 2025-04-13 11:31:54.000000000 +0200
@@ -6,3 +6,5 @@
0017-single-load-segment.patch
0018-prevent-pow-optimization.patch
0019-gcc-10-compatibility.patch
+0020-gcc-14-compatibility.patch
+0021-add_wchar_t-type-definition.patch
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-common.lintian-overrides syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-common.lintian-overrides
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-common.lintian-overrides 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-common.lintian-overrides 2025-04-13 11:31:54.000000000 +0200
@@ -1,12 +1,13 @@
# bootloader modules are useful on all architectures
-syslinux-common: arch-independent-package-contains-binary-or-object usr/lib/syslinux/modules/*
+syslinux-common: arch-independent-package-contains-binary-or-object [usr/lib/syslinux/modules/*]
# bootloader modules are intentionally not linked against libc
-syslinux-common: library-not-linked-against-libc usr/lib/syslinux/modules/*
+syslinux-common: library-not-linked-against-libc [usr/lib/syslinux/modules/*]
# bootloder modules need zlib and libpng
-syslinux-common: embedded-library usr/lib/syslinux/modules/*
+syslinux-common: embedded-library libpng [usr/lib/syslinux/modules/*]
+syslinux-common: embedded-library zlib [usr/lib/syslinux/modules/*]
# bootloader modules are not loaded by the runtime linker; missing depends is a
# false positive and the executable stack is intentional
syslinux-common: missing-depends-line
-syslinux-common: shlib-with-executable-stack usr/lib/syslinux/modules/*
+syslinux-common: shlib-with-executable-stack [usr/lib/syslinux/modules/*]
# specific documentation for the contents of these directories
-syslinux-common: package-contains-documentation-outside-usr-share-doc usr/lib/syslinux/mbr/*/README
+syslinux-common: package-contains-documentation-outside-usr-share-doc [usr/lib/syslinux/mbr/*/README]
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-efi.lintian-overrides syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-efi.lintian-overrides
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-efi.lintian-overrides 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-efi.lintian-overrides 1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-# The syslinux efi binaries are not Microsoft Windows Portable Executable (PE)
-# files.
-syslinux-efi: portable-executable-missing-security-features usr/lib/SYSLINUX.EFI/efi32/syslinux.efi ASLR DEP/NX
-syslinux-efi: portable-executable-missing-security-features usr/lib/SYSLINUX.EFI/efi64/syslinux.efi ASLR DEP/NX
-
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux.lintian-overrides syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux.lintian-overrides
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux.lintian-overrides 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux.lintian-overrides 2025-04-13 11:31:54.000000000 +0200
@@ -1,2 +1,2 @@
# syslinux contains the VBR (volume boot record) which needs zlib embedded
-syslinux: embedded-library usr/bin/syslinux: zlib
+syslinux: embedded-library zlib [usr/bin/syslinux]
diff -Nru syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-utils.lintian-overrides syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-utils.lintian-overrides
--- syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-utils.lintian-overrides 2020-08-16 15:46:13.000000000 +0200
+++ syslinux-6.04~git20190206.bf6db5b4+dfsg1/debian/syslinux-utils.lintian-overrides 2025-04-13 11:31:54.000000000 +0200
@@ -1,2 +1,2 @@
# retained for compatibility with existing scripts
-syslinux-utils: script-with-language-extension usr/bin/isohybrid.pl
+syslinux-utils: script-with-language-extension [usr/bin/isohybrid.pl]
More information about the pkg-gnome-maintainers
mailing list