
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".