[coreboot] Patch set updated for coreboot: faf9d55 Drop ramstage.a

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Fri Nov 16 02:27:25 CET 2012


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1566

-gerrit

commit faf9d55dd5b36b7147ebf6f039186f214562b629
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Sun Oct 7 22:11:07 2012 +0200

    Drop ramstage.a
    
    ramstage.a has two issues:
    1. duplicate source filenames don't survive the ar(1)
       treatment properly (so files aren't considered)
    2. ld doesn't resolve symbols if it isn't forced to, in
       particular no overrides of weak symbols
    
    Downside: The resulting binaries get slightly larger.
    Link time optimizations should fix that, as would tighter
    rules in the build system (to not compile unused code in
    the first place).
    
    Change-Id: Iaae771ec8f92b42069237acd3b79c14e5bf9c03d
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
---
 src/arch/x86/Makefile.inc | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 44787a3..fe74959 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -161,19 +161,14 @@ else
 	$(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(src)/arch/x86/coreboot_ram.ld $<
 endif
 
-$(objgenerated)/coreboot_ram.o: $(obj)/arch/x86/lib/c_start.ramstage.o $$(driver-objs) $(objgenerated)/ramstage.a $(LIBGCC_FILE_NAME)
+$(objgenerated)/coreboot_ram.o: $(obj)/arch/x86/lib/c_start.ramstage.o $$(driver-objs) $$(ramstage-objs) $(LIBGCC_FILE_NAME)
 	@printf "    CC         $(subst $(obj)/,,$(@))\n"
 ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
-	$(LD) -m elf_i386 -r -o $@ $(obj)/arch/x86/lib/c_start.ramstage.o $(driver-objs) --wrap __divdi3 --wrap __udivdi3 --wrap __moddi3 --wrap __umoddi3 --start-group $(objgenerated)/ramstage.a $(LIBGCC_FILE_NAME) --end-group
+	$(LD) -m elf_i386 -r -o $@ $(obj)/arch/x86/lib/c_start.ramstage.o $(driver-objs) --wrap __divdi3 --wrap __udivdi3 --wrap __moddi3 --wrap __umoddi3 --start-group $(filter-out $(obj)/arch/x86/lib/c_start.ramstage.o,$(ramstage-objs)) $(LIBGCC_FILE_NAME) --end-group
 else
-	$(CC) -nostdlib -r -o $@ $(obj)/arch/x86/lib/c_start.ramstage.o $(driver-objs) -Wl,--wrap,__divdi3 -Wl,--wrap,__udivdi3 -Wl,--wrap,__moddi3 -Wl,--wrap,__umoddi3 -Wl,--start-group $(objgenerated)/ramstage.a $(LIBGCC_FILE_NAME) -Wl,--end-group
+	$(CC) -nostdlib -r -o $@ $(obj)/arch/x86/lib/c_start.ramstage.o $(driver-objs) -Wl,--wrap,__divdi3 -Wl,--wrap,__udivdi3 -Wl,--wrap,__moddi3 -Wl,--wrap,__umoddi3 -Wl,--start-group $(filter-out $(obj)/arch/x86/lib/c_start.ramstage.o,$(ramstage-objs)) $(LIBGCC_FILE_NAME) -Wl,--end-group
 endif
 
-$(objgenerated)/ramstage.a: $$(ramstage-objs)
-	@printf "    AR         $(subst $(obj)/,,$(@))\n"
-	rm -f $@
-	$(AR) cr $@ $^
-
 ################################################################################
 # Ramstage for AP CPU (AMD K8, obsolete?)
 




More information about the coreboot mailing list