Hi,
On Fri, Jan 27, 2012 at 8:27 AM, Karlsson, Jan
<Jan.Karlsson(a)sonyericsson.com> wrote:
This problem was really found by Pavel Modilaynen
(Pavel.Modilaynen(a)sonyericsson.com) working in the same group as I do. We saw the same
kind of information using struct -o that you found yourself. The only reason I can think
of for the 8-byte alignment is that the struct vfs_inode itself starts with an 8-byte
struct.
That we might not have exactly the same alignment rules on ARM and x86 worries me. The
whole idea to debug an ARM kernel using an x86 machine is based on the assumption that
sizes of types, alignment rules, and so on are the same.
Jan
I guess this is the result of the requirements of the ARM ABI found here:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
Table 1 in section 4.1 says that double-words should be 8 byte
aligned. Table 3 in section 7.1.1 maps double words to C long longs.
Section 4.3.1 says that aggregates (of which I believe structs are an
example) shall have the alignment of its "most-aligned component",
which is natural. struct inode contains at least one u64 that I can
see.
Regards,
Per