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