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]