This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: about alignment of structure


2010/5/19 Andrew Haley <aph@redhat.com>:
> On 05/19/2010 03:29 AM, YC Wang wrote:
>
>> When gcc processes a strucure declaration, what rules it will use? As
>> far as I know, gcc is supposed to conform to the platform ABI. For
>> example, below is extracted from the SysV i386 ABI:
>>
>> Â- An entire structure or union object is aligned on the same boundary as
>> Âits most strictly aligned member.
>>
>> Â- Each member is assigned to the lowest available offset with the
>> Âappropriate alignment. This may require internal padding, depending on the
>> Âprevious member.
>>
>> Â- A structure's size is increased, if necessary, to make it a multiple
>> Âof the alignment. This may require tail padding, depending on the last
>> Âmember.
>>
>> So, should gcc (whatever versions) always comform to these rules
>> (assume we don't specify special attributes or options)?
>
> Yes.
>
>> I ask this question because I just read the paper
>> "stable_api_nonsense" by Greg KH from Linux kernel Documentation,
>> and begin with line 54 the paper says "Depending on the version of
>> the C compiler you use, different kernel data structures will
>> contain different alignment of structures".
>
> We try to follow the ABI but sometimes we make mistakes. ÂHowever,
> it's impossible to tell what he's talking about for sure. ÂYou'd have
> to ask him.
>
> Andrew.
>

Actually, I had mailed him, but his mail-bot suggested me to ask
mailing lists. Maybe only himself can answer me this time. Anyway,
thank you for the reply.

YC wang


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]