linker script question
Geoff Keating
geoffk@geoffk.org
Wed Mar 28 01:28:00 GMT 2001
> From: Nick Papadonis <npapadon@yahoo.com>
> Date: 28 Mar 2001 02:45:56 -0500
> Hi. Quick question that might help me resolve a possible bug in
> binutils.
>
> In the following linker script snippit:
>
> .data :
> {
> _sdata = . ;
> *(.data)
> } > ram
>
>
> Can I assume, _sdata becomes a symbol and is initialized with an
> unsigned integer value of the memory location at .data?
Yes. That is, the value of the symbol should be equal to the start of
the ".data" section.
> Should _sdata be a symbol located at .data and assigned nothing?
It should be equal to ".data+0". All symbols have some value. It
should not be '*ABS*+0', which is the location zero, unless the linker
knows this in some other way.
> 'ld' is apparently doing the later. I don't think this is correct.
I'm pretty sure this works. Many linker scripts use this construction.
--
- Geoffrey Keating <geoffk@geoffk.org>
More information about the Binutils
mailing list