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

Wolfgang Denk wd at denx.de
Thu Jun 23 11:37:23 CEST 2005

In message <E1DlMsF-0005rm-RG at mailer.emlix.com> you wrote:
> I've got the same problem with binutils 2.16 and gcc 3.4.4. also binutils 
> doesn't work right.

Maybe you should discuss this then on a binutils related list?

> >  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?

Bleading edge tools may have bugs, and incompatibilities.  Suchthings
should  be  discussed  on the respective tools related lists first. I
see no obvious bugs in the linker script, and it used to work fine so
far. I think it makes sense to check if  the  behaviour  of  the  new
tools is correct before "fixing" the problem on the application side.

> >  And which exact board are we talking about?

I repeat this question.

> >  > 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 repeat this question, too.

Can you show  the  difference  between  the  linker  maps  using  the
original and the patched versions? What exactly is changing?

> 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.

I tend to think that it is  a  linker  bug,  and  ask  to  take  this
discussion to the binutils people first.

> 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, 

A lot of maybes here. I would like to see facts first.  FOr  example,
the diff between the linke r maps and/or the binaries.

Best regards,

Wolfgang Denk

Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Anyone can count the seeds in an apple.
No one can count the apples in a seed.

More information about the U-Boot mailing list