Mailing List Archive

SYSLINUX 3.61 released
Changes in 3.61:
* EXTLINUX: fix crash when accessing an empty file.
* elf.c32: If a PHDR segment is present, load it.
* Fix SHA-1 and MD5 passwords.
* ISOLINUX: fix booting when mastered without
mkisofs -boot-info-table (broken since 3.50, sigh...)
* Handle BIOSes which emit multiple contiguous valid
memory regions in the e820 map.

Begin3
Title: syslinux
Version: 3.61
Entered-date: 2008-02-03

Description: SYSLINUX is a collection of boot loaders for the Linux
operating system which operates off Linux ext2/3
filesystems, MS-DOS FAT filesystems, network servers
using PXE firmware, or from CD-ROMs. The FAT
filesystem version can be installed from DOS, NT, or
Linux.

It includes a sophisticated API for add-on "COM32"
modules, including a significant subset of the
standard C library.

It also includes MEMDISK, a tool to boot legacy
operating systems from nontraditional media like PXE
or CD-ROM.

Keywords: syslinux pxelinux isolinux extlinux msdos boot loader
floppy install network ext2 ext3 pxe iso9660 cdfs
memdisk com32
Author: hpa@zytor.com (H. Peter Anvin)
Maintained-by: hpa@zytor.com (H. Peter Anvin)
Primary-site: ftp.kernel.org /pub/linux/utils/boot/syslinux
2098157 syslinux-3.61.tar.gz
2417616 syslinux-3.61.zip
Platforms: DOS or Linux to install. Linux, perl and nasm 0.98.39 or
later required to build from source.
Copying-policy: GPL
End

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: SYSLINUX 3.61 released [ In reply to ]
On Sun, 3 Feb 2008, H. Peter Anvin wrote:

> Changes in 3.61:
> * EXTLINUX: fix crash when accessing an empty file.
> * elf.c32: If a PHDR segment is present, load it.
> * Fix SHA-1 and MD5 passwords.
> * ISOLINUX: fix booting when mastered without
> mkisofs -boot-info-table (broken since 3.50, sigh...)
> * Handle BIOSes which emit multiple contiguous valid
> memory regions in the e820 map.

Since this release, I am unable to build extlinux on RHEL3 and RH9 because
of the following compile error:

gcc -Wp,-MT,extlinux.o,-MMD,.extlinux.o.d -W -Wall -Wno-sign-compare -D_FILE_OFFSET_BITS=64 -g -Os -I. -I.. -I../libinstaller -c -o extlinux.o extlinux.c
In file included from /usr/include/linux/vfs.h:4,
from /usr/include/linux/fs.h:14,
from extlinux.c:43:
/usr/include/asm/statfs.h:12: redefinition of `struct statfs'
make[1]: *** [extlinux.o] Error 1
make[1]: Leaving directory `/dar/build/syslinux-3.61/extlinux'
make: *** [installer] Error 2

The following patch seems to fix the problem:

--- extlinux/extlinux.c.orig 2008-02-04 05:58:50.000000000 +0100
+++ extlinux/extlinux.c 2008-01-11 07:42:10.000000000 +0100
@@ -36,7 +36,6 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/mount.h>
-#include <sys/vfs.h>

#include <linux/fd.h> /* Floppy geometry */
#include <linux/hdreg.h> /* Hard disk geometry */

Kind regards,
--
-- dag wieers, dag@wieers.com, http://dag.wieers.com/ --
[Any errors in spelling, tact or fact are transmission errors]

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: SYSLINUX 3.61 released [ In reply to ]
Dag Wieers wrote:
> On Sun, 3 Feb 2008, H. Peter Anvin wrote:
>
>> Changes in 3.61:
>> * EXTLINUX: fix crash when accessing an empty file.
>> * elf.c32: If a PHDR segment is present, load it.
>> * Fix SHA-1 and MD5 passwords.
>> * ISOLINUX: fix booting when mastered without
>> mkisofs -boot-info-table (broken since 3.50, sigh...)
>> * Handle BIOSes which emit multiple contiguous valid
>> memory regions in the e820 map.
>
> Since this release, I am unable to build extlinux on RHEL3 and RH9 because
> of the following compile error:
>
> gcc -Wp,-MT,extlinux.o,-MMD,.extlinux.o.d -W -Wall -Wno-sign-compare -D_FILE_OFFSET_BITS=64 -g -Os -I. -I.. -I../libinstaller -c -o extlinux.o extlinux.c
> In file included from /usr/include/linux/vfs.h:4,
> from /usr/include/linux/fs.h:14,
> from extlinux.c:43:
> /usr/include/asm/statfs.h:12: redefinition of `struct statfs'
> make[1]: *** [extlinux.o] Error 1
> make[1]: Leaving directory `/dar/build/syslinux-3.61/extlinux'
> make: *** [installer] Error 2
>
> The following patch seems to fix the problem:
>
> --- extlinux/extlinux.c.orig 2008-02-04 05:58:50.000000000 +0100
> +++ extlinux/extlinux.c 2008-01-11 07:42:10.000000000 +0100
> @@ -36,7 +36,6 @@
> #include <sys/stat.h>
> #include <sys/types.h>
> #include <sys/mount.h>
> -#include <sys/vfs.h>
>
> #include <linux/fd.h> /* Floppy geometry */
> #include <linux/hdreg.h> /* Hard disk geometry */
>

That would be a bug in those distros... <sys/vfs.h> *is* the correct
header for statfs().

I don't have any system that old readily on hand to I can figure out a
workaround that doesn't bugger up other systems, I'm afraid.

However, the workaround you have used should work on those distros at least.

-hpa

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: SYSLINUX 3.61 released [ In reply to ]
--On Monday, February 04, 2008 09:41:31 AM -0800 "H. Peter Anvin"
<hpa@zytor.com> wrote:

> Dag Wieers wrote:
>> On Sun, 3 Feb 2008, H. Peter Anvin wrote:
>>
>>> Changes in 3.61:
>>> * EXTLINUX: fix crash when accessing an empty file.
>>> * elf.c32: If a PHDR segment is present, load it.
>>> * Fix SHA-1 and MD5 passwords.
>>> * ISOLINUX: fix booting when mastered without
>>> mkisofs -boot-info-table (broken since 3.50, sigh...)
>>> * Handle BIOSes which emit multiple contiguous valid
>>> memory regions in the e820 map.
>>
>> Since this release, I am unable to build extlinux on RHEL3 and RH9
>> because of the following compile error:
>>
>> gcc -Wp,-MT,extlinux.o,-MMD,.extlinux.o.d -W -Wall -Wno-sign-compare
>> -D_FILE_OFFSET_BITS=64 -g -Os -I. -I.. -I../libinstaller -c -o
>> extlinux.o extlinux.c In file included from /usr/include/linux/vfs.h:4,
>> from /usr/include/linux/fs.h:14,
>> from extlinux.c:43:
>> /usr/include/asm/statfs.h:12: redefinition of `struct statfs'
>> make[1]: *** [extlinux.o] Error 1
>> make[1]: Leaving directory `/dar/build/syslinux-3.61/extlinux'
>> make: *** [installer] Error 2
>>
>> The following patch seems to fix the problem:
>>
>> --- extlinux/extlinux.c.orig 2008-02-04 05:58:50.000000000 +0100
>> +++ extlinux/extlinux.c 2008-01-11 07:42:10.000000000 +0100
>> @@ -36,7 +36,6 @@
>> # include <sys/stat.h>
>> # include <sys/types.h>
>> # include <sys/mount.h>
>> -#include <sys/vfs.h>
>>
>> # include <linux/fd.h> /* Floppy geometry */
>> # include <linux/hdreg.h> /* Hard disk geometry */
>>
>
> That would be a bug in those distros... <sys/vfs.h> *is* the correct
> header for statfs().

I don't think it's fair to call it a bug in the distro. The problem is
that in 2.4, <linux/fs.h> pulls in quite a large number of other headers,
including ultimately <asm/statfs.h> where the kernel's struct statfs is
defined. I can't see a clean way to fix this, though perhaps it would work
to redefine 'statfs' to something else just long enough to pull in
<linux/fs.h>, and then put it back. Something like...

+#define statfs stupid_kernel_statfs
#include <linux/fs.h>
+#undef statfs

> I don't have any system that old readily on hand to I can figure out a
> workaround that doesn't bugger up other systems, I'm afraid.

I do, and it wouldn't be too hard to cons up a VM for you.

> However, the workaround you have used should work on those distros at
> least.

It may work, but it's pretty sketchy. Several fields in struct statfs are
always 32 bits wide in 2.4's kernel-mode struct statfs, but become wider in
user mode when FILE_OFFSET_BITS=64 is in effect. An extlinux built with
this patch will trample on the stack in install_loader(), which may or may
not be a problem depending on how the compiler happens to order locals on
the stack.

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
Carnegie Mellon University - Pittsburgh, PA

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: SYSLINUX 3.61 released [ In reply to ]
Jeffrey Hutzelman wrote:
>>>
>> That would be a bug in those distros... <sys/vfs.h> *is* the correct
>> header for statfs().
>
> I don't think it's fair to call it a bug in the distro. The problem is
> that in 2.4, <linux/fs.h> pulls in quite a large number of other headers,
> including ultimately <asm/statfs.h> where the kernel's struct statfs is
> defined. I can't see a clean way to fix this, though perhaps it would work
> to redefine 'statfs' to something else just long enough to pull in
> <linux/fs.h>, and then put it back. Something like...

Well, it is, because in 2.4 you were not supposed to have Linux kernel
headers under /usr/include/linux and /usr/include/asm. This of course
was an unrealistic policy, but it was.

> +#define statfs stupid_kernel_statfs
> #include <linux/fs.h>
> +#undef statfs

This probably is a better workaround. I'm not sure I want to put it in
the mainstream sources, but for wrapping up ancient-distro packages,
it's a good patch.

-hpa

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.