Patchwork [U-Boot,RFC] ARM: print gcc version

login
register
mail settings
Submitter Alexander Holler
Date Dec. 20, 2010, 4:38 p.m.
Message ID <1292863117-3175-1-git-send-email-holler@ahsoftware.de>
Download mbox | patch
Permalink /patch/76211/
State Changes Requested
Headers show

Comments

Alexander Holler - Dec. 20, 2010, 4:38 p.m.
It might be useful to see what compiler version was used to compile u-boot.
---
 arch/arm/lib/board.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Wolfgang Denk - Jan. 9, 2011, 9:03 p.m.
Dear Alexander Holler,

In message <1292863117-3175-1-git-send-email-holler@ahsoftware.de> you wrote:
> It might be useful to see what compiler version was used to compile u-boot.
> ---
>  arch/arm/lib/board.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
> index 96c0e30..df90b5e 100644
> --- a/arch/arm/lib/board.c
> +++ b/arch/arm/lib/board.c
> @@ -75,7 +75,7 @@ extern void dataflash_print_info(void);
>  #endif
>  
>  const char version_string[] =
> -	U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ")"CONFIG_IDENT_STRING;
> +	U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ", gcc " __VERSION__ ")"CONFIG_IDENT_STRING;

I understand your intention, but I'm not really happy with it.

So far, the version_string is mostly architecture and system independent.
I haven't seen any comments about this, but I can imagine that we want
such information globally.

On the other hand, that would require changes to many files, and the
gcc __VERSION__ string is pretty long on some systems, which may cause
additional problems.

I also doubt that we need this information with each boot message
(where it just slows down booting).

Would it not be sufficient to add this to the code of do_version() so
we can get this information when we want it, i. e. when running the
"version" command?

Best regards,

Wolfgang Denk
Alexander Holler - Jan. 11, 2011, 2 a.m.
Am 09.01.2011 22:03, schrieb Wolfgang Denk:
> Dear Alexander Holler,
>
> In message<1292863117-3175-1-git-send-email-holler@ahsoftware.de>  you wrote:
>> It might be useful to see what compiler version was used to compile u-boot.
>> ---
>>   arch/arm/lib/board.c |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
>> index 96c0e30..df90b5e 100644
>> --- a/arch/arm/lib/board.c
>> +++ b/arch/arm/lib/board.c
>> @@ -75,7 +75,7 @@ extern void dataflash_print_info(void);
>>   #endif
>>
>>   const char version_string[] =
>> -	U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ")"CONFIG_IDENT_STRING;
>> +	U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ", gcc " __VERSION__ ")"CONFIG_IDENT_STRING;
>
> I understand your intention, but I'm not really happy with it.
>
> So far, the version_string is mostly architecture and system independent.
> I haven't seen any comments about this, but I can imagine that we want
> such information globally.
>
> On the other hand, that would require changes to many files, and the
> gcc __VERSION__ string is pretty long on some systems, which may cause
> additional problems.

Hmm, here it includes only "4.5.2", the plain version and not the vendor 
version. Therfore I was happy with that, because the vendor version 
would be too long to display at startup.

> I also doubt that we need this information with each boot message
> (where it just slows down booting).

Hmm, I haven't counted the time needed to display additional 9 
characters, but displaying the version at startup is handy for "screen 
dumps" (e.g. stuff pasted by people with problems).

> Would it not be sufficient to add this to the code of do_version() so
> we can get this information when we want it, i. e. when running the
> "version" command?

I would like that. But as you said, my intention was really only because 
of the current problems with gcc for arm.

Besides that, I would found it handy to see the used compiler for 
u-boot's where I don't have the source by hand, e.g. those already found 
on boards. But that might be because I'm curious by default. ;)

Anyway, I would found it a nice feature, at startup or when running the 
version command, but both aren't a must.

Regards,

Alexander
Wolfgang Denk - Jan. 17, 2011, 10:28 p.m.
Dear Alexander Holler,

In message <4D2BB9AC.1040504@ahsoftware.de> you wrote:
>
> > On the other hand, that would require changes to many files, and the
> > gcc __VERSION__ string is pretty long on some systems, which may cause
> > additional problems.
> 
> Hmm, here it includes only "4.5.2", the plain version and not the vendor 
> version. Therfore I was happy with that, because the vendor version 
> would be too long to display at startup.

Well, what I see is for example "4.5.1 20100924 (Red Hat 4.5.1-4)"
with the native GCC on Fedora 14; some other tool chains provide
similar long results.


> > I also doubt that we need this information with each boot message
> > (where it just slows down booting).
> 
> Hmm, I haven't counted the time needed to display additional 9 
> characters, but displaying the version at startup is handy for "screen 

It's about 1 millisecond at 115 kbps, or 10 milliseconds at 9600 ;-)

> dumps" (e.g. stuff pasted by people with problems).

I think we're already printing way too muc information- and still
people don't include even the most vital information like which
version of U-Boot they are running.

> > Would it not be sufficient to add this to the code of do_version() so
> > we can get this information when we want it, i. e. when running the
> > "version" command?
> 
> I would like that. But as you said, my intention was really only because 
> of the current problems with gcc for arm.

So will you prepare a patch? [TIA!]

> Besides that, I would found it handy to see the used compiler for 
> u-boot's where I don't have the source by hand, e.g. those already found 
> on boards. But that might be because I'm curious by default. ;)

Well, eventually we should print more than __VERSION__, then. Becasue
if you see "4.4.1" - what does it tell you? You don't see that this is
the Sourcery G++ Lite 2010q1-202 version of GCC, or that ""4.5.0
20100729 (prerelease)" is a specific Poky release?

> Anyway, I would found it a nice feature, at startup or when running the 
> version command, but both aren't a must.

I think it would be a really useful extension to the version command.
Looking forwad to seeing your patch.

Best regards,

Wolfgang Denk
Alexander Holler - Jan. 18, 2011, 9:16 a.m.
Hello,

Am 17.01.2011 23:28, schrieb Wolfgang Denk:

>> Anyway, I would found it a nice feature, at startup or when running the
>> version command, but both aren't a must.
>
> I think it would be a really useful extension to the version command.
> Looking forwad to seeing your patch.

Maybe if someone could feed me with what to use for the version. E.g. my 
gcc here defines __VERSION__ as "4.5.2" but when I'm looking at
u-boot/lib/asm-offsets.s I see

.ident  "GCC: (Gentoo 4.5.2 p1.0, pie-0.4.5) 4.5.2"

So I would like to display that which would be in line with the comment 
section of generated binaries.

But when I use "gcc -E -dM empty.c" to print all predefined macros, I 
don't see the text found in .ident. Not even something else which 
includes "Gentoo".

Regards,

Alexander

Patch

diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index 96c0e30..df90b5e 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -75,7 +75,7 @@  extern void dataflash_print_info(void);
 #endif
 
 const char version_string[] =
-	U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ")"CONFIG_IDENT_STRING;
+	U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ", gcc " __VERSION__ ")"CONFIG_IDENT_STRING;
 
 #ifdef CONFIG_DRIVER_RTL8019
 extern void rtl8019_get_enetaddr (uchar * addr);