Global array is at an offset from the top of the bss section, instead of being at the top
Nagaraju Mekala
gnuuser.raj@gmail.com
Mon Jun 23 05:47:00 GMT 2014
Hi Senthil,
Thanks for the reply.
On Fri, Jun 20, 2014 at 11:51 AM, Senthil Kumar Selvaraj
<senthil_kumar.selvaraj@atmel.com> wrote:
> On Fri, Jun 20, 2014 at 11:20:49AM +0530, Nagaraju Mekala wrote:
>> Hi,
>>
>> I want to understand why few bytes are reserved in start of the bss section
>>
>> I have an array defined on top of the source code as follow:
>>
>> static int DestinationAddress[BUF_SIZE] ;
>>
>> My expectation is the linker will put it on top of the .bss section.
>> However I notice there are always 28 bytes sitting in front of
>> DestinationAddress[] no matter what I do.
>>
>> ffff0000 l .bss 00000000 completed.8489
>> ffff0004 l .bss 00000000 object.8494
>> ffff001c l O .bss 00007000 DestinationAddress
>>
>> I was hoping the linker puts DestinationAddress at 0xffff0000. It is
>> not clear to me what these items (completed.8489, object.8494) are.
>>
>> Can anyone please throw some light on it.
>
> Unless the linker itself put those two items, it must have come from
> some object file (and eventually some source file).
>
> If you link with -Wl,-Map=<some map filename>, the generated file will
> tell you which object file the two items came from. You can then go back
> to which source file from which the object file was generated.
>
> Hope that helps.
I got the required info. These 28 bytes are from crt files.
Thanks a lot,
Nagaraju
> Regards
> Senthil
More information about the Binutils
mailing list