From 91b0dd097479c3278884a7008a64ff402c3de2b9 Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Thu, 6 Dec 2007 16:03:32 +0000 Subject: [PATCH] To reduce code duplication, make sure STAGE2_OBJ does not contain any object already mentioned in STAGE0_OBJ. This saves 386 bytes in qemu stage2 (~240 bytes after LZMA compression). Build tested and runtime tested in Qemu. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Peter Stuge git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@540 f3766cd6-281f-0410-b1cd-43a5c92072e9 --- arch/x86/Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/x86/Makefile b/arch/x86/Makefile index d27e4c9b23..0a058a0fee 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -198,11 +198,16 @@ endif STAGE2_OBJ += $(obj)/util/x86emu/libx86emu.a $(LIBGCC_FILE_NAME) endif -$(obj)/linuxbios.stage2 $(obj)/linuxbios.stage2.map: $(obj)/stage0.init $(STAGE2_OBJ) +# To reduce code duplication, always make sure STAGE2_OBJ does not contain +# any object from STAGE0_OBJ. + +STAGE2_OBJ_NEEDED = $(filter-out $(STAGE0_OBJ), $(STAGE2_OBJ)) + +$(obj)/linuxbios.stage2 $(obj)/linuxbios.stage2.map: $(obj)/stage0.init $(STAGE2_OBJ_NEEDED) $(Q)# leave a .o with full symbols in it for debugging. $(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n" $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x1000 --entry=stage2 \ - -o $(obj)/linuxbios.stage2 $(STAGE2_OBJ) + -o $(obj)/linuxbios.stage2 $(STAGE2_OBJ_NEEDED) $(Q)$(NM) $(obj)/linuxbios.stage2 | sort -u > $(obj)/linuxbios.stage2.map #