Debian Patches

Status for syslinux/3:6.04~git20190206.bf6db5b4+dfsg1-3.2

Patch Description Author Forwarded Bugs Origin Last update
0000-unreleased-changelog.patch Include changes since 6.03 in the changelog Lukas Schwaighofer <lukas@schwaighofer.name> not-needed http://www.syslinux.org/wiki/index.php?title=Syslinux_6_Changelog 2018-11-25
0002-gfxboot-menu-label.patch Allow boot entry to start with label instead of menu_label.
menu_ptr->menu_label is human-readable (perhaps even translatable!) text if
the MENU LABEL command is used, which isn't very convenient at the start of
a boot entry. Allow the entry to start with menu_ptr->label (an
identifier) as an alternative.
Colin Watson <cjwatson@ubuntu.com> no 2011-11-02
0004-gnu-efi-from-debian.patch Link against gnu-efi from Debian
Adjust EFIINC, LIBDIR and LIBEFI variables in mk/efi.mk to point to the
files installed by Debian's gnu-efi package.
- The LIBDIR path depends on the build hosts' architecture, so the
DEB_HOST_ARCH variable needs to be exported to determine the correct
paths.
Lukas Schwaighofer <lukas@schwaighofer.name> not-needed 2017-10-03
0005-gnu-efi-version-compatibility.patch Strip memtest and memcpy from libefi
Repack libefi.a to not contain the memset and memcpy symbols to make sure the
implementation from syslinux is used and no multiple symbol definitions are
present.
Lukas Schwaighofer <lukas@schwaighofer.name> no 2019-05-06
0016-strip-gnu-property.patch Strip the .note.gnu.property section for the mbr
This section is added since binutils Debian version 2.31.1-2 and causes mbr.bin
to grow in size beyond what can fit into the master boot record.
Lukas Schwaighofer <lukas@schwaighofer.name> yes 2018-08-18
0017-single-load-segment.patch Force the linker to put all sections into a single PT_LOAD segment
This is required when using binutils >= 2.31 which writes two PT_LOAD segments
by default. This is not supported by the wrapper.c script used to convert the
shared object into an elf binary.
Lukas Schwaighofer <lukas@schwaighofer.name> yes 2018-08-18
0018-prevent-pow-optimization.patch Prevent optimizing the pow() function
With the current GCC 8.2.0 from Debian, a section of code calling pow() in
zzjson_parse.c is turned into a sequence calling exp(). Since no exp()
implementation is available in syslinux those optimizations need to be
disabled.
Lukas Schwaighofer <lukas@schwaighofer.name> no 2019-02-26
0019-gcc-10-compatibility.patch GCC-10 compatibility patch
* Add `-fcommon` to most gcc invocations to allow duplicate definitions
* __builtin_strlen is not really a "builtin" an implementation still
needs to be provided (source:
https://bugzilla.suse.com/show_bug.cgi?id=1166605#c5). Work around the
issue by supplying an inline function. The strlen function added to
dos/string.h was copied from com32/lib/strlen.c.
Lukas Schwaighofer <lukas@schwaighofer.name> no 2020-08-16
0020-gcc-14-compatibility.patch 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.
Marek Benc <benc.marek.elektro98@proton.me> no debian 2025-04-11
0021-add_wchar_t-type-definition.patch [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
Julien Olivain <ju.o@free.fr> no 2024-02-27

All known versions for source package 'syslinux'

Links