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