[U-Boot] [PATCH 62/71] serial: spl: Implement empty functions for SPL

Marek Vasut marex at denx.de
Tue Sep 18 21:25:21 CEST 2012


Dear Tom Rini,

> On 09/18/12 12:19, Marek Vasut wrote:
> > Dear Tom Rini,
> > 
> >> On 09/18/12 11:33, Marek Vasut wrote:
> >>> Dear Scott Wood,
> >> 
> >> [snip]
> >> 
> >>>> I think I got some wires crossed and was thinking about
> >>>> printf/puts. We want those to be optimized away at compile
> >>>> time (not pointed to a stub at link time) on an SPL that has
> >>>> no output support, but once that's done the low level serial
> >>>> functions shouldn't be referenced anymore, right?
> >>> 
> >>> But if you point them to stubs, that's OK. The compiler will GC
> >>> these useless stubs anyway. But wait, we're getting to LTO
> >>> here, right?
> >>> 
> >>> So the safest bet really is macro in serial.h ?
> >> 
> >> Due to the gcc bug I've mentioned before, yes.  Dummy functions
> >> will, I bet, keep the string constants around.  do {} while(0)
> >> will drop them out entirely.
> > 
> > Damn, not much gain on m28evk (with C functionss/with macros),
> > using gcc 4.7.1:
> > 
> > Configuring for m28evk board... text    data     bss     dec hex
> > filename 418994    7780  288632  715406   aea8e ./u-boot 11773 788
> > 12   12573    311d ./spl/u-boot-spl
> > 
> > Configuring for m28evk board... text    data     bss     dec hex
> > filename 418998    7780  288628  715406   aea8e ./u-boot 11765 788
> > 12   12565    3115 ./spl/u-boot-spl
> 
> Right, didn't have many strings.  But do you see what I mean now about
> not needing this patch as it stands currently?

No, I don't. If I remove this patch, the build breaks either because serial_* is 
defined twice or not defined at all.

Best regards,
Marek Vasut


More information about the U-Boot mailing list