From 1fea8ce06abf997dbfd6b1f5e4470cd708b478c8 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sat, 30 Jan 2021 01:56:16 +0000 Subject: [PATCH] [build] Check for broken elftoolchain version of objcopy The elftoolchain version of objcopy (as used in FreeBSD) seems to be unusable for generating a raw binary file, since it will apparently ignore the load memory addresses specified for each section in the input file. The binutils version of objcopy may be used on FreeBSD by specifying OBJCOPY=/usr/local/bin/objcopy Detect an attempt to use the unusable elftoolchain version of objcopy and report it as an error. Signed-off-by: Michael Brown --- src/Makefile.housekeeping | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index 9b52e12c2..25abe5712 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -113,6 +113,13 @@ $(warning Use GNU ld instead) $(error Unsuitable build environment found) endif +OBJCOPY_ETC_BANNER := $(shell $(OBJCOPY) --version | grep 'elftoolchain') +ifneq ($(OBJCOPY_ETC_BANNER),) +$(warning The elftoolchain objcopy is unsuitable for building iPXE) +$(warning Use binutils objcopy instead) +$(error Unsuitable build environment found) +endif + ############################################################################### # # Check if $(eval ...) is available to use