On Sun, Oct 27, 2024, at 06:16, Finn Thain wrote: > On Sun, 27 Oct 2024, Thorsten Glaser wrote: > >> Finn Thain dixit: >> >> >That would mean __alignof__(foo.b) == sizeof(foo.b) but that's not the >> >case on my Linux/i686 system. 4 != 8: >> > >> >struct baa { >> > int a; >> > long long b; >> >} foo; >> >> That struct is just 12 bytes for you then? >> > > Right. i686 and m68k agree on that.
The other ones that have misaligned 'long long' variables are arc arm (OABI only) csky microblaze nios2 openrisc superh i386 The 32-bit architectures that use a natural 8-byte alignment are arm (EABI) parisc mips powerpc riscv s390 sparc xtensa m68k is the only architecture supported by linux-6.x that does 2-byte alignment, otherwise the two seem to be equally common. Arnd