[syslinux] EFI build problems

Celelibi celelibi at gmail.com
Wed Dec 18 17:39:23 PST 2013


2013/12/17, Ferenc Wagner <wferi at niif.hu>:
> Hi,
>
> 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.
> --
> Thanks,
> Feri.

Hello,
I confirm the command realpath wasn't installed by default on my
debian either. And it seems it can be easily replaced by readlink -f.
And actually I find its use doubtful.

However, as you may have seen, these scripts are quite new and may
have bugs. Using pushd/popd in a /bin/sh script is a bug. IIRC, by
default, on debian, /bin/sh points to dash, and not bash.

About the make spotless, I don't know much about the Makefiles, thus I
can't help, sorry.

I hope Matt will see this mail. :)


Celelibi


More information about the Syslinux mailing list