[coreboot] [PATCH] update reference tool chain

Stefan Reinauer stepan at coresystems.de
Mon May 17 16:09:06 CEST 2010


On 5/17/10 3:00 AM, Carl-Daniel Hailfinger wrote:
> On 16.05.2010 21:45, Patrick Georgi wrote:
>   
>> Am 14.05.2010 19:19, schrieb Stefan Reinauer:
>>     
>>> See patch
>>>
>>>    
>>>       
>> +GCC_VERSION=4.4.4
>> +GCC_VERSION=4.5.0 # enable for Link Time Optimization&  Co
>>
>> That's supposed to be a user option with 4.5.0 as default? Why
>> "enable" in that line?
>>     
> Does GCC 4.5.0 generate smaller code than 4.4.4?
>
> Regards,
> Carl-Daniel
>   

It does create slightly smaller code than 4.4.2:

kontron 986lcd-m with 4.4.2:

*Name                           Offset     Type         Size
fallback/romstage              0x0        stage        33881
fallback/coreboot_ram          0x84c0     stage        101427
(empty)                        0x21140    null         912358
*
vs kontron 986lcd-m with 4.5.0:

*Name                           Offset     Type         Size
fallback/romstage              0x0        stage        32673
fallback/coreboot_ram          0x8000     stage        100936
(empty)                        0x20a80    null         914086*

In my tests there was absolutely no difference when using -flto, though.
Not even when getting rid of coreboot.a (which, as Kevin stated earlier,
might confuse lto)

*Index: src/arch/i386/Makefile.inc
===================================================================
--- src/arch/i386/Makefile.inc    (revision 5568)
+++ src/arch/i386/Makefile.inc    (working copy)
@@ -83,20 +83,15 @@
 #######################################################################
 # Build the coreboot_ram (stage 2)
 
-$(obj)/coreboot_ram: $(obj)/coreboot_ram.o
$(src)/arch/i386/coreboot_ram.ld #ldoptions
+$(obj)/coreboot_ram: $(obj)/coreboot_ram.o $(src)/arch/i386/coreboot_ram.ld
     @printf "    CC         $(subst $(obj)/,,$(@))\n"
-    $(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T
$(src)/arch/i386/coreboot_ram.ld $(obj)/coreboot_ram.o
+    $(CC) $(CFLAGS) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T
$(src)/arch/i386/coreboot_ram.ld $(obj)/coreboot_ram.o
     $(NM) -n $(obj)/coreboot_ram | sort > $(obj)/coreboot_ram.map
 
-$(obj)/coreboot_ram.o: $(obj)/arch/i386/lib/c_start.o $$(drivers)
$(obj)/coreboot.a $(LIBGCC_FILE_NAME)
+$(obj)/coreboot_ram.o: $(obj)/arch/i386/lib/c_start.o $$(drivers)
$$(objs) $(LIBGCC_FILE_NAME)
     @printf "    CC         $(subst $(obj)/,,$(@))\n"
-    $(CC) -nostdlib -r -o $@ $(obj)/arch/i386/lib/c_start.o $(drivers)
-Wl,--wrap,__divdi3 -Wl,--wrap,__udivdi3 -Wl,--wrap,__moddi3
-Wl,--wrap,__umoddi3 -Wl,--start-group $(obj)/coreboot.a
$(LIBGCC_FILE_NAME) -Wl,--end-group
+    $(CC) $(CFLAGS) -nostdlib -r -o $@ $(obj)/arch/i386/lib/c_start.o
$(drivers) -Wl,--wrap,__divdi3 -Wl,--wrap,__udivdi3 -Wl,--wrap,__moddi3
-Wl,--wrap,__umoddi3 -Wl,--start-group $$(objs) $(LIBGCC_FILE_NAME)
-Wl,--end-group
 
-$(obj)/coreboot.a: $$(objs)
-    @printf "    AR         $(subst $(obj)/,,$(@))\n"
-    rm -f $(obj)/coreboot.a
-    $(AR) cr $(obj)/coreboot.a $^
-
 #######################################################################
 # coreboot_ap.rom
 
@@ -104,7 +99,7 @@
 
 $(obj)/coreboot_ap: $(obj)/mainboard/$(MAINBOARDDIR)/ap_romstage.o
     @printf "    CC         $(subst $(obj)/,,$(@))\n"
-    $(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T
$(src)/arch/i386/init/ldscript_apc.lb $^
+    $(CC) $(CFLAGS) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T
$(src)/arch/i386/init/ldscript_apc.lb $^
     $(NM) -n $(obj)/coreboot_ap | sort > $(obj)/coreboot_ap.map
 
 
Index: util/xcompile/xcompile
===================================================================
--- util/xcompile/xcompile    (revision 5568)
+++ util/xcompile/xcompile    (working copy)
@@ -78,6 +78,7 @@
 testcc "$CC" "$CFLAGS-Wa,--divide " && CFLAGS="$CFLAGS-Wa,--divide "
 testcc "$CC" "$CFLAGS-fno-stack-protector " &&
CFLAGS="$CFLAGS-fno-stack-protector "
 testcc "$CC" "$CFLAGS-Wl,--build-id=none " &&
CFLAGS="$CFLAGS-Wl,--build-id=none "
+testcc "$CC" "$CFLAGS-flto " && CFLAGS="$CFLAGS-flto "
 
 if which gcc 2>/dev/null >/dev/null; then
     HOSTCC=gcc*


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20100517/b2fcb7c5/attachment.html>


More information about the coreboot mailing list