[U-Boot] [PATCH v4 2/5] spl: don't mark __u_boot_cmd* as undefined

Ilya Yanok ilya.yanok at cogentembedded.com
Mon Aug 6 23:11:01 CEST 2012


Hi Tom,

On Tue, Aug 7, 2012 at 12:52 AM, Tom Rini <trini at ti.com> wrote:

> > By comparing of two images I've found that the difference comes from
> > ro-strings (two help strings in U_BOOT_CMD, string in printf, "sw" &
> "hw").
> > It looks like the linker doesn't collect ro-strings referenced from
> > collected functions... Probably that's a bug but I'm not sure...
>
> Yes.  What I meant was that not all of the stuff that is guarded today
> is garbage collected so the resulting image is larger than it must be.
>

Yep. And that's actually goes beyond the subject of this patch: as long as
we rely on linker GC and not putting guards by hands we will get unused
string literals compiled in.

I still think that this patch does the correct things (UNDEF_SYM is there
to protect commands from GC and we don't really want commands in SPL so
there is nothing to protect). But I will try to add guards to make net-spl
compile even without this patch.


> And yes, this is a toolchain issue of sorts (not being aggressive enough
> in collecting unreferenced data).
>

Looks like it can be fixed by forcing the compiler to emit symbols for
string literals... But I'm not really compiler guy...

Regards, Ilya.


More information about the U-Boot mailing list