iPXE - Open Source Boot Firmware

[build] Avoid use of "ld --oformat binary"
authorMichael Brown <mcb30@ipxe.org>
Tue, 2 Jan 2018 20:26:40 +0000 (21:26 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 2 Jan 2018 20:26:40 +0000 (21:26 +0100)
commit2bb4ec1f54af11f51f6f064c0086b6b80be2dcd2
tree33dea6104ca71f5457a707609b12ebb9e712c707
parent00c5b958c59ec45736469fce674c5307cabbfd91
[build] Avoid use of "ld --oformat binary"

Using "ld --oformat binary" for mbr.bin and usbdisk.bin seems to cause
segmentation faults on some versions of binutils (observed on Fedora
27).  Work around this problem by using ld to create an intermediate
ELF object, followed by objcopy (via the existing %.tmp -> %.bin rule)
to create the final binary.

Note that we cannot simply use a single-stage "objcopy -O binary"
since this will not process the relocation records for x86_64: see
commit 1afcccd ("[build] Do not use "objcopy -O binary" for objects
with relocation records").

Reported-by: Brent S <bts@square-r00t.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/x86/Makefile.pcbios
src/arch/x86/prefix/mbr.S