Support building the syslinux installer with klibc.
diff --git a/syslinux/Makefile b/syslinux/Makefile
new file mode 100644
index 0000000..9a1de9b
--- /dev/null
+++ b/syslinux/Makefile
@@ -0,0 +1,13 @@
+SYSDIR = $(wildcard syslinux-[0-9]*)
+
+all:
+ $(MAKE) -C $(SYSDIR) installer
+ $(MAKE) -f Makefile.main
+
+clean:
+ $(MAKE) -f Makefile.main clean
+
+spotless:
+ $(MAKE) -C $(SYSDIR) clean
+ $(MAKE) -f Makefile.main spotless
+
diff --git a/syslinux/Makefile.main b/syslinux/Makefile.main
new file mode 100644
index 0000000..15d8f7e
--- /dev/null
+++ b/syslinux/Makefile.main
@@ -0,0 +1,45 @@
+SRCROOT = ..
+include ../MCONFIG
+
+SYSDIR = $(wildcard syslinux-[0-9]*)
+
+MAKEDEPS = -Wp,-MD,.$(subst /,-,$*).d
+CFLAGS = $(MAKEDEPS) $(OPTFLAGS) $(REQFLAGS) -W -Wall -DPATCH_OFFSET=`cat $(SYSDIR)/patch.offset`
+LIBS = $(KLIBC) $(LIBGCC)
+PROGS = syslinux syslinux.shared
+OBJS = syslinux-nomtools.o syslxmod.o bootsect_bin.o ldlinux_bin.o
+
+all: $(PROGS)
+
+syslinux: $(OBJS) $(CRT0) $(LIBS)
+ $(LD) $(LDFLAGS) -o $@ $(CRT0) $(OBJS) $(LIBS)
+ cp -f $@ $@.g
+ $(STRIP) $@
+
+syslinux.shared: $(OBJS) $(CRT0) $(LIBS)
+ $(LD) $(LDFLAGS) -o $@ $(EMAIN) $(CRTSHARED) $(OBJS) -R $(LIBSHARED) $(LIBGCC)
+ cp -f $@ $@.g
+ $(STRIP) $@
+
+%.c: $(SYSDIR)/%.c
+ cp -f $< $@
+
+%.h: $(SYSDIR)/%.h
+ cp -f $< $@
+
+$(CRT0) $(LIBS):
+ @echo '*** error: $@ not up to date' || exit 1
+
+clean:
+ $(RM) *.c *.h *.o $(PROGS) core .*.d
+
+spotless: clean
+ $(RM) *~
+
+syslinux-nomtools.o: syslinux-nomtools.c syslinux.h
+
+syslxmod.o: syslxmod.c syslinux.h
+
+ifneq ($(wildcard .*.d),)
+include $(wildcard .*.d)
+endif
diff --git a/syslinux/README b/syslinux/README
new file mode 100644
index 0000000..7f975f9
--- /dev/null
+++ b/syslinux/README
@@ -0,0 +1,5 @@
+To build the klibc version of SYSLINUX, extract the SYSLINUX
+distribution into this directory (so it creates a directory called
+syslinux-<version> inside this directory), and type "make".
+
+SYSLINUX version 2.10-pre6 or later is required.