H. Peter Anvin
2008-Feb-26 05:14 UTC
[syslinux] 3.62-pre16: Compiling on old (2.4 kernel) distros
I have put a compile hack in for older distros and pushed it out as syslinux-3.62-pre16; for those who have reported compilation problem on older distros I would greatly appreciate if you could confirm if it works now (it worked for me on a CentOS 3.9 VM.) -hpa
Gabor Z. Papp
2008-Feb-26 06:53 UTC
[syslinux] 3.62-pre16: Compiling on old (2.4 kernel) distros
* "H. Peter Anvin" <hpa at zytor.com>: | I have put a compile hack in for older distros and pushed it out as | syslinux-3.62-pre16; for those who have reported compilation problem on | older distros I would greatly appreciate if you could confirm if it | works now (it worked for me on a CentOS 3.9 VM.) Compiled fine, thanks for the fix. One thing that seems to me like broken since several releases is the CC variable in the toplevel Makefile. If set to gcc-3.4.6 then the make output looks like this: Makefile:266: .depend: No such file or directory rm -f .depend for csrc in gethostip.c ; do gcc-3.4.6 -MM $csrc >> .depend ; done for nsrc in copybs.asm extlinux.asm isolinux-debug.asm isolinux.asm ldlinux.asm pxelinux.asm ; do nasm -DDEPEND set -e ; for i in mbr ; do make DATE=0x47c39fbb HEXDATE=0x47c39fbb -C $i all ; done make[1]: Entering directory `/home/gzp/src/syslinux-3.62-pre16/mbr' gcc -m32 -ffreestanding -fno-stack-protector -march=i386 -Wa,-a=mbr.lst -c -o mbr.o mbr.S ld -m elf_i386 -T mbr.ld -e _start -o mbr.elf mbr.o objcopy -O binary mbr.elf mbr.bin perl checksize.pl mbr.bin 440 make[1]: Leaving directory `/home/gzp/src/syslinux-3.62-pre16/mbr' make DATE=0x47c39fbb HEXDATE=0x47c39fbb all-local make[1]: Entering directory `/home/gzp/src/syslinux-3.62-pre16' nasm -O9999 -f bin -DDATE_STR="'0x47c39fbb'" -DHEXDATE="0x47c39fbb" \ -DMAP=pxelinux.map -l pxelinux.lsr -o pxelinux.bin pxelinux.asm perl lstadjust.pl pxelinux.lsr pxelinux.map pxelinux.lst perl checkov.pl pxelinux.map pxelinux.bin cp pxelinux.bin pxelinux.0 gcc-3.4.6 -W -Wall -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -c gethostip.c gcc-3.4.6 -O2 -s -Wl,--hash-style=both -o gethostip gethostip.o perl bin2hex.pl < mbr/mbr.bin | cat mkdiskimage.in - > mkdiskimage chmod a+x mkdiskimage perl bin2c.pl syslinux_bootsect < ldlinux.bss > bootsect_bin.c perl bin2c.pl syslinux_ldlinux < ldlinux.sys > ldlinux_bin.c perl bin2c.pl syslinux_mbr < mbr/mbr.bin > mbr_bin.c perl bin2c.pl extlinux_bootsect < extlinux.bss > extlinux_bss_bin.c perl bin2c.pl extlinux_image 512 < extlinux.sys > extlinux_sys_bin.c make[1]: Leaving directory `/home/gzp/src/syslinux-3.62-pre16' set -e ; for i in memdisk memdump dos win32 mtools unix extlinux sample com32 ; do make DATE=0x47c39fbb HEXDATE=0 make[1]: Entering directory `/home/gzp/src/syslinux-3.62-pre16/memdisk' Makefile:128: .depend: No such file or directory rm -f .depend for csrc in *.c ; do gcc -I../com32/include -m32 -ffreestanding -fno-stack-protector -g -W -Wall -Wno-sign-compar for ssrc in *.S ; do gcc -I../com32/include -m32 -march=i386 -D__ASSEMBLY__ -MM $ssrc >> .depend ; done for nsrc in memdisk.asm memdisk16.asm ; do nasm -DDEPEND -o `echo $nsrc | sed -e 's/\.asm/\.bin/'` -M $nsrc >> . make[1]: Leaving directory `/home/gzp/src/syslinux-3.62-pre16/memdisk' make[1]: Entering directory `/home/gzp/src/syslinux-3.62-pre16/memdisk' nasm -f bin -O9999 -dVERSION='"3.62"' -dDATE='"0x47c39fbb"' -dWITH_EDD -o memdisk16.bin -l memdisk16.lst memdisk gcc -I../com32/include -m32 -march=i386 -D__ASSEMBLY__ -c -o start32.o start32.S [...] Since this point there is no more gcc-3.4.6 in the log, assuming make is using gcc what is 4.2.3.
Gilles Espinasse
2008-Feb-26 22:00 UTC
[syslinux] 3.62-pre16: Compiling on old (2.4 kernel) distros
----- Original Message ----- From: "H. Peter Anvin" <hpa at zytor.com> To: "SYSLINUX mailing list" <syslinux at zytor.com> Sent: Tuesday, February 26, 2008 6:14 AM Subject: [syslinux] 3.62-pre16: Compiling on old (2.4 kernel) distros> I have put a compile hack in for older distros and pushed it out as > syslinux-3.62-pre16; for those who have reported compilation problem on > older distros I would greatly appreciate if you could confirm if it > works now (it worked for me on a CentOS 3.9 VM.) >Using linux-2.4.36.1 vanilla kernel, gcc-3.3.1 uClibc with make clean make installer It compile fine and with no warning (gcc-3.3.1) until gcc -o extlinux extlinux.o setadv.o extlinux_bss_bin.o extlinux_sys_bin.o make[2]: Leaving directory `/usr/src/syslinux-3.62-pre16/extlinux' make[2]: Entering directory `/usr/src/syslinux-3.62-pre16/sample' pngtopnm syslogo.png | \ ../ppmtolss16 \#000000=0 \#d0d0d0=7 \#f6f6f6=15 \ > syslogo.lss /bin/sh: line 1: pngtopnm: command not found Using with nasm-0.98.39 make clean make there is only this warning twice In file included from stdio.h:5, from argv.c:37: stdlib.h:7: warning: redefinition of `size_t' /usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/stddef.h:213: warning: `size_t' previously declared here Then it similary fail because pngtopnm is not available. Using one sed to not depend on pngtopnm, sed -i -e 's/all: syslogo.lss /all: /' sample/Makefile compilation is successfull but there is some compilation warnings. Gilles