[U-Boot] Making U-Boot smaller

Eugeniu Rosca erosca at de.adit-jv.com
Fri May 24 19:59:16 UTC 2019


On Wed, May 22, 2019 at 02:50:58PM -0400, Tom Rini wrote:
> On Wed, May 22, 2019 at 06:50:36PM +0200, Eugeniu Rosca wrote:
[..]
> > 0000000000000421 0000000000000024 T clk_free
> > 0000000000000961 0000000000000027 T clk_disable
> > 0000000000000888 0000000000000027 T clk_enable
> > 0000000000000000 0000000000000027 T clk_request
> > 0000000000000503 0000000000000027 T clk_set_parent
> > 0000000000000445 0000000000000029 T clk_get_rate
> > 0000000000000474 0000000000000029 T clk_set_rate
> 
> Right.  More numbers, and more easily readable is good.  But to be
> clear, since we use -ffunction-sections / -fdata-sections (and the
> kernel doesn't normally), we get can get a lot more detail than I might
> have implied.  It's not just that you'll see that U-Boot shrank X bytes
> with CONFIG_FEATURE_A disabled, it's that you'll see which functions
> shrank by how much.

Thanks for the useful highlights.

> What we don't have is the link between
> "CONFIG_OPTION_X" and "is part of functions A/B/C". 

Yes, that's the key part. I think the magnitude to have such a feature
is reflected by the number of touched components:
 - Kconfig/Kbuild, and possibly additional components on top of these,
   to decide which line in the C file is guarded by which configuration
 - Compiler/linker to inject that information into the ELF files
 - readelf/nm, to avoid manual parsing of U-Boot map files

A superhero or a motivated small team can possibly do it one day :-)

> But we have a lot
> of information like you would get out of nm already in u-boot*.map which
> also includes "and we discarded these functions".

-- 
Best Regards,
Eugeniu.


More information about the U-Boot mailing list