[Icc-mot] BSS in reverse order?
Edward Karpicz
ekarpicz at freemail.lt
Thu Nov 15 06:15:55 PST 2007
Thanks for explanation. I never thought to align variables to ease
debugging. It makes sense.
Edward
Jim Fiocca wrote:
> The reverse order of the BSS just makes debugging a little awkward. When
> I look at a variable or array in memory, I'm used to seeing the next
> variable I declared in the file as the next variable in memory. This just
> caught me a little off guard and makes debugging a little more cumbersome.
> Especially if you want to add a dummy padding array to force alignment,
> you have to add it after the object you want to align.
>
> So I was just wondering, from a compiler writer's point of view, why this
> was done; because I've never seen it done before.
>
> Thanks,
> Jim
>
>
> Edward Karpicz wrote:
>> Jim Fiocca wrote:
>>
>>> ICC12-V7 questions:
>>>
>>> 1) In the generated map file (.mp), why are the memory addresses in the
>>> BSS section (area) in the reverse order that they were allocated in the
>>> program?
>>
>> Does ANSI C specify the order static vars are allocated? I don't think
>> so. For portability and compatibility with future ICC versions, I think
>> you shouldn't assume any order of allocation.
>> Maybe tell us what are you trying to do? Even structs get not portable as
>> soon as someone starts assuming that char is 8 bits or assuming any
>> struct packing etc
>>
>> struct {
>> char a;
>> short b;
>> } ...
>>
>> ^^ there can be a unused memory space between a and b fields, just enable
>> word alignment and see. The same way there can be a unused space between
>> statically allocated vars... So are you sure you need specific order of
>> allocation?
>>
>>
>>>
>>> 2) Is there some sort of data alignment pragma? Or other mechanism to
>>> align data on a specific boundary?
>>>
>>
>> There's a word alignment option. If you need specific address then you
>> should use abs_address pragma or your custom memory area with specific
>> start and end addresses. To get some every >2bytes alignment, I would use
>> structs and unions of specific size and custom area to allocate only such
>> structs.
>> I think you should tell us more about what you are trying to achive.
>>
>>
>> Edward
>>
>>> Thanks,
>>> Jim
>>>
>>>
>>>
>>> _______________________________________________
>>> Icc-mot mailing list
>>> Icc-mot at imagecraft.com
>>> http://dragonsgate.net/mailman/listinfo/icc-mot
>>>
>>
>> _______________________________________________
>> Icc-mot mailing list
>> Icc-mot at imagecraft.com
>> http://dragonsgate.net/mailman/listinfo/icc-mot
>
> _______________________________________________
> Icc-mot mailing list
> Icc-mot at imagecraft.com
> http://dragonsgate.net/mailman/listinfo/icc-mot
>
More information about the Icc-mot
mailing list