linker script for V850?

Nick Clifton nickc@redhat.com
Tue May 2 08:52:00 GMT 2006


Hi Torsten,

   First of all, this question should be asked on the binutils mailing 
list (binutils@sourceware.org) since it concerns the linker and linker 
scripts and not the newlib mailing list since it does not concern the 
newlib C library.  I am adding a CC to the the binutils list and I 
suggest that future respondents remove the CC to newlib.

   Second of all, it really helps if you can provide a *small* 
reproducible example when you encounter a problem like this.  It lets us 
investigate the problem on our own machines, often leading to a much 
speedier answer.

   Also you do not mention which version of the linker you are using, 
nor whether you have checked to see if this problem still exists with 
the sources in the mainline binutils CVS repository.  (It may be that 
there is an actual bug in the linker that you are using and that this 
bug has now been fixed).

> So i tried to split it into two sections ".tdata_ram" and
> ".tdata_rom":
> 
>   .tdata_ram ALIGN (4) :
>   {
>         PROVIDE (__ep = .);
>         *(.tbyte)
>         *(.tcommon_byte)
>         *(.tbss)
>         *(.tcommon)
>   } >ram
> 
>   .tdata_rom ALIGN (4) :
>   {
>         *(.tdata)
>   } >ram AT>rom

In theory this looks like the right way to solve your problem.

> But this also fails.  I expected this to work, as i really separate
> RAM and ROM.  The error at linking is this:
> 
> v850e-unknown-elf-gcc -o hw2.elf \
> Â Â Â Â Â Â Â Â -Wl,-Map=hw2.map \
> Â Â Â Â Â Â Â Â -Wl,-Tv850.x \
> Â Â Â Â Â Â Â Â main.o vectors.o
> c:\v850e\bin\..\lib\gcc\v850e-unknown-elf\3.4.6\..\..\..\..
> \v850e-unknown-elf\bin\ld.exe: address 0x75ec of hw2.elf section .tdata is 
> not within region ram

Have you tried separating the .tdata_ram and .tdata_rom sections so that 
the .tdata_rom section is near the beginning of the SECTIONS part of the 
linker script, with the other sections that are being placed into the 
rom memory region and the .tdata_ram section is near the end of the 
SECTIONS part of the script, with the other sections that are being 
placed into the ram memory region ?

Cheers
   Nick



More information about the Newlib mailing list