]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Refuse to attempt building with the GNU gold linker
authorMichael Brown <mcb30@ipxe.org>
Tue, 5 Apr 2011 13:59:27 +0000 (14:59 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 5 Apr 2011 13:59:27 +0000 (14:59 +0100)
GNU gold (part of newer binutils builds) does not appear to be
designed to support generic linker functionality, since its source
code contains several Linux-specific hard-coded assumptions about the
layout of ELF binaries.  Attempting to build iPXE using GNU gold will
generally cause some kind of "linker internal error".

Provide an explicit error message suggesting the use of GNU ld
instead.

Reported-by: Chris Hills <chaz@chaz6.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/Makefile.housekeeping

index 7d7bbebc0cecd5fbc2a946df39a0702cfad90852..ba01f16d5682edfc7fe095b658929b9695bc4805 100644 (file)
@@ -106,6 +106,13 @@ $(warning export LANG=$${LANG%.UTF-8})
 $(error Unsuitable build environment found)
 endif
 
+LD_GOLD_BANNER := $(shell $(LD) -v 2>&1 | grep 'GNU gold')
+ifneq ($(LD_GOLD_BANNER),)
+$(warning GNU gold is unsuitable for building iPXE)
+$(warning Use GNU ld instead)
+$(error Unsuitable build environment found)
+endif
+
 ###############################################################################
 #
 # Check for various tool workarounds