[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