[U-Boot] [PATCH v3] mkimage: add "-V" option to print version information

Albert ARIBAUD
2011-02-12T06:47:38Z

Le 12/02/2011 00:11, Kim Phillips a ?crit :
> On Fri, 11 Feb 2011 23:41:43 +0100
> Wolfgang Denk<wd@denx.de> wrote:
>
>> + case 'V':
>> + /*
>> + * Skip the "U-Boot " part in
>> + * U_BOOT_VERSION by adding 7
>> + */
>> + printf("mkimage version %s\n",
>> + U_BOOT_VERSION + 7);

Now I get it. :)

I might argue that this is kind of a hack, and that rather than trying
to prune the U_BOOT_VERSION string, one should define two macros, for
instance:

#define PLAIN_VERSION "whatever"
#define U_BOOT_VERSION "U-Boot " PLAIN_VERSION

... which has the advantage of not affecting the existing code, or a
cleaner, but more invasive, change...

#define U_BOOT_VERSION "whatever" /* without "U-Boot " */
#define U_BOOT_VERSION_BANNER "U-Boot " U_BOOT_VERSION

... and use the right macro for the right need.

> I'd have done it without magic nor comments as
>
> U_BOOT_VERSION[sizeof("U-Boot ") + 1]
>
> or even
>
> U_BOOT_VERSION[strlen("U-Boot ")]

The second one calls strlen() at run-time, plus it allocates the "U-Boot
" string for no justifiable reason -- assuming the first one can be
compile-time evaluated by the compiler, of course.

> Kim

Amicalement,
--
Albert.