[syslinux] EFI build problems

Ferenc Wagner wferi at niif.hu
Tue Dec 17 05:39:48 PST 2013


The internal Gnu-EFI build gives me grief:

* efi/check-gnu-efi.sh: uses realpath, which is not available on my
  Debian wheezy system.  I now use readlink -f, but wonder if it's
  needed at all.

* efi/build-gnu-efi.sh: uses realpath, like above, and also pushd/popd,
  which is not built into a standard Bourne shell invoked by #!/bin/sh.
  Again I wonder what's the point of it, as the script exits right after
  the popd, and it is not sourced but executed, so the current working
  directory is discarded anyway.

* make spotless still fails after working around the above:
  make -r -C efi SRC="/home/wferi/syslinux/syslinux/efi" OBJ="/home/wferi/syslinux/syslinux/efi32/efi" \
  		-f /home/wferi/syslinux/syslinux/efi/Makefile spotless
  In file included from /usr/include/elf.h:24:0,
                   from reloc_ia32.c:39:
  /usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
  compilation terminated.
  make[4]: *** [reloc_ia32.o] Error 1
  make[3]: *** [gnuefi] Error 2
  make[3]: Entering directory `/home/wferi/syslinux/syslinux/efi32/efi'
  /home/wferi/syslinux/syslinux/mk/efi.mk:27: *** Failed to build gnu-efi for ia32.  Stop.
  make[3]: Leaving directory `/home/wferi/syslinux/syslinux/efi32/efi'
  make[2]: *** [efi] Error 2

* maybe unrelated, but make bios also fails in this state:
  objdump -h isolinux.elf > isolinux.sec
  perl /home/wferi/syslinux/syslinux/core/lstadjust.pl isolinux.lsr isolinux.sec isolinux.lst
  objcopy -O binary -S isolinux.elf isolinux.raw
  /home/wferi/syslinux/syslinux/bios/core/../lzo/prepcore isolinux.raw isolinux.bin
  nasm -f elf -Ox  -g -F dwarf -DDATE_STR="'6.03-pre1-29-gecc43ff*'" \
  		-DHEXDATE="0x52b052e6" \
  		-Di386 \
  		-I/home/wferi/syslinux/syslinux/core/ \
  		-l isolinux-debug.lsr -o isolinux-debug.o -MP -MD ./.isolinux-debug.o.d /home/wferi/syslinux/syslinux/core/isolinux-debug.asm
  isolinux.asm:1102: error: TIMES value -4 is negative
  make[3]: *** [isolinux-debug.o] Error 1
  rm isolinux.raw isolinux.o ldlinux.o ldlinux.raw
  make[3]: Leaving directory `/home/wferi/syslinux/syslinux/bios/core'
  make[2]: *** [core] Error 2

Do these ring any bells?  At commit 67aaaeeb I could build everything
with 3.0u installed independently.

More information about the Syslinux mailing list