[syslinux] EFI build problems

Ferenc Wagner wferi at niif.hu
Thu Jan 2 04:09:51 PST 2014


Ferenc Wagner <wferi at niif.hu> writes:

> The internal Gnu-EFI build gives me grief: [...]

Previous points still standing, but now I tried cleaning out everything
by hand.  I don't know whether it matters, but building gnu-efi pollutes
its source directory (unlike syslinux itself) with the following files
at least (found by git status in the gnu-efi submodule):

gnu-efi-3.0/gnuefi/crt0-efi-ia32.o
gnu-efi-3.0/lib/libefi.a

After removing these and the bios, efi32 and efi64 subdirectories, the
build failed ending with the following messages:

[...]
gcc -Wp,-MT,isohdppx_f.o,-MD,./.isohdppx_f.o.d -m32 -march=i386 -mpreferred-stack-boundary=2 -mincoming-stack-boundary=2 -ffreestanding -fno-stack-protector -fwrapv -freg-struct-return -Os -fomit-frame-pointer -msoft-float -fno-exceptions -fno-asynchronous-unwind-tables -fno-strict-aliasing -falign-functions=0 -falign-jumps=0 -falign-labels=0 -falign-loops=0 -fvisibility=hidden -g -W -Wall -Wstrict-prototypes  -Wno-clobbered  -DDYNAMIC_DEBUG -Wno-sign-compare   -D__ASSEMBLY__ -Wa,-a=isohdppx_f.lst -DFORCE_80 -c -o isohdppx_f.o /home/wferi/syslinux/syslinux/mbr/isohdppx.S
ld -m elf_i386  -T /home/wferi/syslinux/syslinux/mbr/i386/mbr.ld -e _start -o isohdppx_f.elf isohdppx_f.o
objcopy -O binary isohdppx_f.elf isohdppx_f.bin
perl /home/wferi/syslinux/syslinux/mbr/checksize.pl isohdppx_f.bin
chmod -x isohdppx_f.bin
rm mbr_f.o isohdppx_c.o altmbr_c.o isohdppx_f.o gptmbr_c.o isohdppx.o altmbr_f.o altmbr.o isohdpfx_c.o mbr_c.o gptmbr_f.o gptmbr.o isohdpfx_f.o isohdpfx.o mbr.o
make[3]: Leaving directory `/home/wferi/syslinux/syslinux/efi32/mbr'
make -r -C sample SRC="/home/wferi/syslinux/syslinux/sample" OBJ="/home/wferi/syslinux/syslinux/efi32/sample" \
		-f /home/wferi/syslinux/syslinux/sample/Makefile all
make[3]: Entering directory `/home/wferi/syslinux/syslinux/efi32/sample'
gzip -cd /home/wferi/syslinux/syslinux/sample/syslogo.ppm.gz | \
		/home/wferi/syslinux/syslinux/utils/ppmtolss16 \#000000=0 \#d0d0d0=7 \#f6f6f6=15	\
		> syslogo.lss
204480 pixels, 25715 bytes, (74.85% compression)
make[3]: Leaving directory `/home/wferi/syslinux/syslinux/efi32/sample'
make -r -C efi SRC="/home/wferi/syslinux/syslinux/efi" OBJ="/home/wferi/syslinux/syslinux/efi32/efi" \
		-f /home/wferi/syslinux/syslinux/efi/Makefile all
/usr/bin/ar: creating libefi.a
dpath.c: In function ‘_DevPathIPv4’:
dpath.c:678:27: warning: variable ‘IP’ set but not used [-Wunused-but-set-variable]
dpath.c: In function ‘_DevPathIPv6’:
dpath.c:690:27: warning: variable ‘IP’ set but not used [-Wunused-but-set-variable]
dpath.c: In function ‘_DevPathInfiniBand’:
dpath.c:702:30: warning: variable ‘InfiniBand’ set but not used [-Wunused-but-set-variable]
event.c: In function ‘LibCreateProtocolNotifyEvent’:
event.c:30:29: warning: variable ‘Status’ set but not used [-Wunused-but-set-variable]
hand.c: In function ‘LibLocateHandleByDiskSignature’:
hand.c:120:28: warning: variable ‘Start’ set but not used [-Wunused-but-set-variable]
hw.c: In function ‘ReadPort’:
hw.c:79:17: warning: variable ‘Status’ set but not used [-Wunused-but-set-variable]
hw.c: In function ‘WritePort’:
hw.c:94:17: warning: variable ‘Status’ set but not used [-Wunused-but-set-variable]
hw.c: In function ‘ReadPciConfig’:
hw.c:109:17: warning: variable ‘Status’ set but not used [-Wunused-but-set-variable]
hw.c: In function ‘WritePciConfig’:
hw.c:124:17: warning: variable ‘Status’ set but not used [-Wunused-but-set-variable]
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
make[2]: Leaving directory `/home/wferi/syslinux/syslinux/efi32'
make[1]: *** [efi32] Error 2
make[1]: Leaving directory `/home/wferi/syslinux/syslinux'
make: *** [all] Error 2

Issuing another make after this gave the previous error again:

isolinux.asm:1102: error: TIMES value -4 is negative
-- 
Regards,
Feri.



More information about the Syslinux mailing list