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

Hello,
I used to compile U-Boot with ELDK, but I currently need to work with newer toolchain : - binutils-2.16 - gcc-3.4.3
The "__u_boot_cmd_start" symbol value, generated with this new toolchain, is wrong (U-Boot crashes when relocating the command table). There are two new sections between "__u_boot_cmd_start" and ".u_boot_cmd" address : - .data.rel.local - .data.rel
I don't know what these (new) sections are, but the problem can be solved in "u-boot.lds" : - __u_boot_cmd_start = .; .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .; + __u_boot_cmd_start = ADDR(.u_boot_cmd);
Best regards, Cedric VINCENT.

In message c8f10050526062372e8a833@mail.gmail.com you wrote:
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 ?
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?
I don't know what these (new) sections are, but the problem can be solved in "u-boot.lds" :
- __u_boot_cmd_start = .; .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .;
- __u_boot_cmd_start = ADDR(.u_boot_cmd);
I would like to understand this problem first before deciding about any fixes or patches.
Thanks.
Best regards,
Wolfgang Denk
participants (2)
-
Cedric VINCENT
-
Wolfgang Denk