[U-Boot-Users] the broken linker problem...

Hi list,
I followed the discussions about broken linker and wrong command table relocation and decided to dig somewhat deeper. I have sent a report to the binutils guys. Please see the short discussion on the binutils list about that issue: http://sourceware.org/ml/binutils/2005-08/msg00412.html
You'll also find the version information there, about the point the behaviour of the linker changed and the explanation of Alan Modra why it has been changed.
In the end, I got the expression, that we really need to introduce a small change to the linker scripts to fix that issue:
. = .; __u_boot_cmd_start = .; .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .;
The . = .; is the proposed fix. See ld.texinfo "dot outside sections" for more explanations.
Hope that sheds some light on that issue.
Cheers Gerhard

In message 200508311014.33369.g.jaeger@sysgo.com you wrote:
I followed the discussions about broken linker and wrong command table relocation and decided to dig somewhat deeper. I have sent a report to the binutils guys. Please see the short discussion on the binutils list about that issue: http://sourceware.org/ml/binutils/2005-08/msg00412.html
Thanks for all of this, this really helps a lot.
Umm... You write in this discussion:
| Hmmm, I get the impression, that I need to re-read the docs more carefully...
Well, I tried before. But the documentation for 2.15.94.0.2.2 which is for example used in Fedora Core 4 does not mention anythingof this. Not even a hint. So this is obviously a new "feature", and they even bothered to document it. I wonder why they broke existing behaviour in the first place. In my opinion the ". = ." thing is a workaround for a linke bug. But I have neither time nor nerves to do anything about it, so I'll give way.
In the end, I got the expression, that we really need to introduce a small change to the linker scripts to fix that issue:
. = .;
Will do that. Thanks again!!
Best regards,
Wolfgang Denk

Hi Wolfgang,
On Wednesday 31 August 2005 12:03, Wolfgang Denk wrote:
In message 200508311014.33369.g.jaeger@sysgo.com you wrote:
I followed the discussions about broken linker and wrong command table relocation and decided to dig somewhat deeper. I have sent a report to the binutils guys. Please see the short discussion on the binutils list about that issue: http://sourceware.org/ml/binutils/2005-08/msg00412.html
Thanks for all of this, this really helps a lot.
Umm... You write in this discussion:
| Hmmm, I get the impression, that I need to re-read the docs more carefully...
Well, I tried before. But the documentation for 2.15.94.0.2.2 which is for example used in Fedora Core 4 does not mention anythingof this. Not even a hint. So this is obviously a new "feature", and they even bothered to document it. I wonder why they broke existing behaviour in the first place. In my opinion the ". = ." thing is a workaround for a linke bug. But I have neither time nor nerves to do anything about it, so I'll give way.
well, this IMHO strange behaviour seems to be really documented in ld.texinfo, although the behaviour somehow interferes with the meaning of the dot (current location counter)....
In the end, I got the expression, that we really need to introduce a small change to the linker scripts to fix that issue:
. = .;
Will do that. Thanks again!!
Thanks - hope the bleeding-edge-tool will then be satisfied too ;) Gerhard
Gerhard Jaeger gjaeger@sysgo.com SYSGO AG Embedded and Real-Time Software www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de
participants (2)
-
Gerhard Jaeger
-
Wolfgang Denk