Bug#1091027: syslinux NMU 3:6.04~git20190206.bf6db5b4+dfsg1-3.1

Philipp Kern <[email protected]>
Newsgroups gmane.linux.debian.devel.cd
Message-ID <ef180b0c-5eff-42e7-956c-b05a4acedf76__9023.18576570309$1744548338$gmane$org@debian.org>
user [email protected]
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 <[email protected]>  Sun, 13 Apr 2025 11:31:54 +0200

Kind regards
Philipp Kern
syslinux_6.04~git20190206.bf6db5b4+dfsg1-3_6.04~git20190206.bf6db5b4+dfsg1-3.1.nmudiff (text/plain, 12.4 KB)
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 <[email protected]>  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 <[email protected]>
 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 <[email protected]>
+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 <[email protected]>
+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 <[email protected]>
+---
+ 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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.