[U-Boot] [PATCH 5/7] dfu:cmd: Support for DFU u-boot command

Marek Vasut marex at denx.de
Fri Jul 20 13:35:21 CEST 2012


Dear Mike Frysinger,

> On Tuesday 03 July 2012 17:32:54 Marek Vasut wrote:
> > > +int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> > > +{
> > > +	char *str_env = NULL, *env_bkp = NULL;
> > > +	static char *s = "dfu";
> > > +	int ret = 0;
> > > +
> > > +	if (argc < 3)
> > > +		return CMD_RET_USAGE;
> > > +
> > > +	str_env = getenv("dfu_alt_info");
> > > +	if (str_env == NULL) {
> > > +		printf("%s: \"dfu_alt_info\" env variable not defined!\n",
> > > +		       __func__);
> > 
> > I was always curious if it's not possible to do something like
> > 
> > puts(__func__ "rest of string");
> > 
> > Maybe it'd help the overhead a bit? Certainly, it's beyond the scope of
> > this patchset, I'm just curious :)
> 
> not anymore -- gcc disabled support for that sometime ago.  and it's good
> they did as it causes more bloat than good.  as soon as you do more than
> one statement, you get duplication.  the string table will have:
> 	"some_func: rest of string"
> 	"some_func: boo"
> 	"some_func: another message"
> which takes up more space than:
> 	"some_func"
> 	"%s: rest of string"
> 	"%s: boo"
> 	"%s: another message"

Good knowing this. I'd expect gcc would build some trie in there to optimize the 
size.

> -mike

Best regards,
Marek Vasut


More information about the U-Boot mailing list