From affc219a5bac93cb6e774879c874c203f755ba11 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Mon, 13 Mar 2017 12:57:07 +0100 Subject: [PATCH] Fix regression in "objcopy version check" (AKA `expr: syntax error`) While commit 8418fee4 may have fixed the check for "some distributions" it broke the same check for others, like `GNU objcopy (WinAVR 20090313) 2.19` `GNU objcopy (AVR_8_bit_GNU_Toolchain_3.4.3_1072) 2.23.2` `GNU objcopy (Codescape GNU Tools 2016.05-03 for MIPS MTI Bare Metal) 2.24.90` `GNU objcopy (GNU Binutils; openSUSE Leap 42.2) 2.26.1` `GNU objcopy (GNU Binutils; SUSE Linux Enterprise 12) 2.26.1` (some more, some less relevant... ;) This version is meant to cover them all (or at least be easily extensible). Signed-off-by: Raymund Will --- efi/Makefile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/efi/Makefile b/efi/Makefile index 920c096..faf8ee2 100644 --- a/efi/Makefile +++ b/efi/Makefile @@ -15,7 +15,15 @@ CCLDFLAGS ?= -nostdlib -Wl,--warn-common \ -Wl,-shared -Wl,-Bsymbolic -L$(LIBDIR) -L$(GNUEFIDIR) \ -Wl,--build-id=sha1 -Wl,--hash-style=sysv \ $(GNUEFIDIR)/crt0-efi-$(ARCH).o -OBJCOPY_GTE224 = $(shell expr `$(OBJCOPY) --version |grep ^"GNU objcopy" | sed 's/^[^0-9]*//g' | cut -f1-2 -d.` \>= 2.24) + +define objcopy_version = + $(OBJCOPY) --version | + sed -e '/^GNU objcopy/! d; + : loop1; s/([^)(]*)//g; t loop1; + : loop2; s/\[[^][]*\]//g; t loop2; + s/.* \([0-9][0-9]*\.[0-9][0-9]*\).*/\1/;' +endef +OBJCOPY_GTE224 := $(shell expr `$(objcopy_version)` \>= 2.24) FWUP = fwupdate