Syslinux 5 Changelog

Changes in 5.10

PXELINUX: An entirely new network implementation based on the lwIP embedded TCP/IP stack. As a result, plain PXELINUX can now support HTTP and FTP without gPXE/iPXE. ls/readdir functionality is supported over HTTP with an indexing webserver, or over FTP with most common FTP servers. For the new network stack use lpxelinux.0. For the legacy stack use pxelinux.0.

Rename the "ipappend" option to "sysappend" ("ipappend" is still accepted as an alias) and make it available for all derivatives. Add additional strings derived from the system DMI/SMBIOS information if available.

"sysappend" strings are also sent as http cookies, with the prefix _Syslinux_ added, on all http transfers. This can be overridden with the SENDCOOKIES configuration file command.

poweroff.c32: A new module to power off a system via APM. It replaces the poweroff COMBOOT module (Sebastian Herbszt).

PXELINUX: Fix booting with DHCP options 209 and 210 which was broken in 5.00.

Handle loading kernel images with no protected mode code. A legitimate kernel image can consist solely of real-mode code. The support for booting such images was broken in 5.00 (Josh Triplett).

Fix a regression in the .psf font file loader introduced in 5.00.

Changes in 5.01

txt/: A new AsciiDoc documentation set (work-in-progress) (Gene Cumm).

core: Fix a bug in the realloc() implementation that caused machines to appear to run out of free memory.

ldlinux: Fix multiple buffer overflows in cmdline parsing code that resulted in files failing to run and cmdlines being truncated.

Changes in 5.00

com32: Switched from the COM32 object format to ELF as it is a much more powerful format that allows undefined symbols to be resolved at runtime and dynamic loading of module dependencies, which means modules now become shared object files instead of statically linked binaries - reducing both disk space and runtime memory consumption.

core: Split non-core functionality into ldlinux.c32, which is an ELF module loaded by the core that contains everything the core doesn't require to boot the system, e.g. config parser, command-line interface, etc.

Replaced __intcall() calls with direct function calls now that we can resolve undefined symbols at runtime, thanks to the ELF object support. Now that we no longer need to go through the 16-bit interrupt mechanism we can make full use of the 32-bit execution environment. This change required reimplementing lots of the 16-bit assembly code from core/ in C.

com32: __com32.cs_bounce is gone. Now we always run in a 32-bit environment once we execute ldlinux.c32.

ldlinux: A new "PATH" directive was added to the ldlinux.c32 config parser that specifies a colon-separated list of directories to search when attempting to load modules.

ALL: Delete all references to/code for 16-bit COMBOOT files. COMBOOT files (.cbt and .com) are no longer supported under Syslinux.