[lkml]   [2011]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] Force same size of struct autofs_v5_packet on x86 and x86_64
    On Mon, Sep 19, 2011 at 11:52:48AM +0800, Ian Kent wrote:

    > > btw. where are the padding bytes are added? how to tell gcc to display
    > > this?
    > It's also been a long time since I looked into this so I don't remember
    > the processor alignment details.
    > Not sure if there is a compiler option that would report this, sorry,
    > anyone else?

    Padding is added in the very end. The thing is, it's not a misaligned
    field per se; they all have a natural alignment in there. It's that
    __u64 ino has alignment 8 on amd64 and alignment 4 on i386. So the alignment
    requirements for the entire structure are different - on amd64 the address
    of the entire thing must be a multiple of 8 and on i386 it can be any multiple
    of 4. IOW, on i386 you can just put them one after another in e.g. an array
    (the size without any padding is 300 bytes) and on amd64 you need 4 bytes
    of padding added between them. I.e. sizeof needs to go up by 4, with the
    padding added in the end.

     \ /
      Last update: 2011-09-19 08:13    [W:0.019 / U:26.820 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site