For creators of Linux distributions:

Syslinux is a notoriously hard program to debug, since it runs outside
of any operating system, and has a tendency to expose BIOS and
hardware bugs on various systems.  Therefore, I would appreciate if
you would resist the temptation of recompiling the Syslinux bootloader
itself (ldlinux.asm) if at all possible.  If you do that, I will have
to refer any bug reports I receive back to the respective distributor.

However, I have no such concerns about recompiling the installer
programs, and in fact, with both libc 5 and libc 6 in common use in
the Linux world today I understand if you wish to relink the
Linux-based installer against your system version of libc.  Therefore
a special makefile targets "make installer" has been included with the
Syslinux distribution, starting with version 1.42.

To rebuild the installer programs *only*, starting from a freshly
untarred distribution copy of Syslinux, do:

	make clean
	make installer

If you want to remove all intermediate files, including the ones
obtained from assembling ldlinux.asm and which are included in the
distribution, do "make spotless".

I appreciate your assistance in this matter.

	H. Peter Anvin
