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