Patrick Georgi (pgeorgi@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10139
-gerrit
commit 0e1c5d1d0d2da09e0bec21843b412fa4f3f7c4e1 Author: Patrick Georgi pgeorgi@chromium.org Date: Thu May 7 22:24:41 2015 +0200
build system: use archives, not linker action to shorten command lines
Intermediate linking may distort linker behavior (in particular related to weak symbols). The idea is that archives are closer to 'just a list of object files', and ideally makes the linker more predictable.
Change-Id: Ie226c198a93bcdca2d82c02431c72108a1c6ea60 Signed-off-by: Patrick Georgi pgeorgi@chromium.org --- Makefile.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.inc b/Makefile.inc index 06c3302..f34aaac 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -115,8 +115,8 @@ files-in-dir=$(filter-out $(call dir-wildcards,$(call filter-out-dirs,$(1),$(sor # directory into an intermediate file ramstage-postprocess=$$(eval DEPENDENCIES+=$$(addsuffix .d,$$(basename $(1)))) \ $(foreach d,$(sort $(dir $(filter-out %.ld,$(1)))), \ - $(eval $(d)ramstage.o: $(call files-in-dir,$(d),$(filter-out %.ld,$(1))); $$(LD_ramstage) -o $$@ -r $$^ ) \ - $(eval ramstage-objs:=$(d)ramstage.o $(filter-out $(filter-out %.ld, $(call files-in-dir,$(d),$(1))),$(ramstage-objs)))) + $(eval $(d)ramstage.a: $(call files-in-dir,$(d),$(filter-out %.ld,$(1))); rm -f $$@ && $(AR_ramstage) rcsT $$@ $$^ ) \ + $(eval ramstage-objs:=$(d)ramstage.a $(filter-out $(filter-out %.ld, $(call files-in-dir,$(d),$(1))),$(ramstage-objs))))
bootblock-generic-ccopts += -D__PRE_RAM__ -D__BOOTBLOCK__ romstage-generic-ccopts += -D__PRE_RAM__ -D__ROMSTAGE__