binutils 2.18 release linker script
Nick Clifton
nickc@redhat.com
Mon Sep 29 13:30:00 GMT 2008
Hi Jari,
> .sbss :
> {
> . = ALIGN(4);
> *(.sbss) /* small uninitialized data */
> . = ALIGN(4);
> *(.scommon) /* small common */
> } > external_ram AT > external_ram
> The external_ram is specified in MEMORY to address 0x400000:
> external_ram : org = 0x400000, len = 0x400000
>
> However when linking, the memory addresses (VMA and LMA) seem to be wrong:
> /usr/local/lib/gcc/powerpc-eabi/4.3.2/../../../../powerpc-eabi/bin/ld:
> section .sbss [00023f80 -> 000243bf] overlaps section .ramcode [00023f7d
> -> 0005d674]
> /usr/local/lib/gcc/powerpc-eabi/4.3.2/../../../../powerpc-eabi/bin/ld:
> section .reloc_exceptions [0005d675 -> 0005d774] overlaps section .bss
> [000243c0 -> 0008a11e]
>
> It seems that linker is still trying to put the .bss and .sbss data
> sections to rom despite the linker script output section attributes.
>
> Can someone tell me what I'm doing wrong?
First try repeating your test using a linker built from the latest
mainline binutils sources. (In case you have encountered a bug that has
already been fixed).
Second check the linker command line to make sure that your linker
script really is being used. If you are invoking the linker via gcc for
example then it is possible that another script is automatically being
added to the linker command line.
If the problem persists please file a bug report at:
http://sourceware.org/bugzilla/
It will really help if you can include a test case that reproduces the
problem.
Cheers
Nick
More information about the Binutils
mailing list