[coreboot-gerrit] Patch set updated for coreboot: arch/x86/Makefile.inc: Update symbol check macro

Martin Roth (martinroth@google.com) gerrit at coreboot.org
Mon Jan 18 01:47:13 CET 2016


Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13018

-gerrit

commit 56c102192f397c81c4ec7255979bd4a23fc4faeb
Author: Martin Roth <martinroth at google.com>
Date:   Fri Jan 15 11:47:46 2016 -0700

    arch/x86/Makefile.inc: Update symbol check macro
    
    This was breaking the build on OS X, but also wasn't working correctly
    under linux anymore either. It wouldn't print the illegal symbols
    when it failed.
    
    - Split the generation of the offenders file from the actual check for
    offending symbols and just send all output to /dev/null.
    - Rewrite the check for offending symbols in a way that works with OS X.
    
    Tested by adding a global variable to romstage and verifying the
    failure is shown correctly.  Verified that it works correctly with no
    illegal variables.
    
    Change-Id: I5b3ac32448851884d78c3b3449508ffe014119ab
    Signed-off-by: Martin Roth <martinroth at google.com>
---
 src/arch/x86/Makefile.inc | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 9713d52..f41b33c 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -140,12 +140,11 @@ $(1)-S-ccopts += -I.
 $$(objcbfs)/$(1).debug: $$$$($(1)-libs) $$$$($(1)-objs)
 	@printf "    LINK       $$(subst $$(obj)/,,$$(@))\n"
 	$$(LD_$(1)) $$(LDFLAGS_$(1)) -o $$@ -L$$(obj) $$(COMPILER_RT_FLAGS_$(1)) --whole-archive --start-group $$(filter-out %.ld,$$($(1)-objs)) $$($(1)-libs) --no-whole-archive $$(COMPILER_RT_$(1)) --end-group -T $$(obj)/arch/x86/memlayout.$(1).ld --oformat $(2)
-	LANG=C LC_ALL= $$(OBJCOPY_$(1)) --only-section .illegal_globals $$(@) $$(objcbfs)/$(1)_null.offenders 2>&1 | \
-	grep -v "Empty loadable segment detected" && \
-	$$(NM_$(1)) $$(objcbfs)/$(1)_null.offenders | grep -q ""; if [ $$$$? -eq 0 ]; then \
-		echo "Forbidden global variables in "$(1)":"; \
+	-LANG=C LC_ALL= $$(OBJCOPY_$(1)) --only-section .illegal_globals $$(@) $$(objcbfs)/$(1)_null.offenders >/dev/null 2>&1
+	if [ -z "$$$$($$(NM_$(1)) $$(objcbfs)/$(1)_null.offenders 2>&1 | grep 'no symbols')" ];then \
+		echo "Forbidden global variables in $(1):"; \
 		$$(NM_$(1)) $$(objcbfs)/$(1)_null.offenders; false; \
-		else true; fi
+	fi
 endef
 
 ###############################################################################



More information about the coreboot-gerrit mailing list