[U-Boot-Users] Re: compile u-boot with recent toolchain : symbols problem

Anton Wöllert aw at emlix.com
Thu Jun 23 10:15:45 CEST 2005


I've got the same problem with binutils 2.16 and gcc 3.4.4. also binutils 
2.16.91.0.1 doesn't work right.

>  > 
>  > I used to compile U-Boot with ELDK, but I currently need to work with
>  > newer toolchain :
>  >  - binutils-2.16
>  >  - gcc-3.4.3
>  
>  This looks line a binutils problem, then. May I ask why you  have  to
>  use binutils-2.16 ?

May I ask you why it should not be used? How to recover bugs, if people just 
use older software?

>  
>  And which exact board are we talking about?
>  
>  > The "__u_boot_cmd_start" symbol value, generated with this new
>  > toolchain, is wrong (U-Boot crashes when relocating the command
>  > table).
>  
>  Can you please provide exact data, like the differences  between  the
>  System.map  and  the  u-boot.map  files  when using binutils-2.16 and
>  another, working version of binutils? [Please use the _same_  version
>  of GCC for this comparison.]
>  
>  > There are two new sections between "__u_boot_cmd_start" and
>  > ".u_boot_cmd" address :
>  >  - .data.rel.local
>  >  - .data.rel
>  
>  Can you please show exactly what happens?

The above, i couldn't acknowledge, but u-boot definitly hangs _after_ 
relocating to memory. it will dump 'Now running in RAM at .....'. But then it 
hangs. After relocating, it tries to manually relocate the command table. But 
that doesn't work. Don't know why, but with the patch it works.
Obviously 

	__u_boot_cmd_start = .;
	.u_boot_cmd : { *(.u_boot_cmd) }
	__u_boot_cmd_end = .;

and

	__u_boot_cmd_start = ADDR(.u_boot_cmd);
	.u_boot_cmd : { *(.u_boot_cmd) }
	__u_boot_cmd_end = .;

should be the same. However, this should be a binutils bug or the linker 
script voodoo that is done with the first script above isn't really valid. 
Maybe .u_boot_cmd gets misalligned. Maybe i should try to DEBUG(& 
__u_boot_cmd_start) in both (the patched and unpatched) versions to see, 
where it points, or maybe objdump show more. Btw. this happens on the tqm8xx 
board. Thanks to Vincent for recovering that, that saved me a lot of time...

kind regards

Anton Wöllert





More information about the U-Boot mailing list