Re: [tip:mm/pkeys] mm/pkeys: Fix siginfo ABI breakage caused by new u64 field
From: Linus Torvalds
Date: Thu Mar 03 2016 - 12:28:52 EST
On Thu, Mar 3, 2016 at 8:53 AM, tip-bot for Dave Hansen
<tipbot@xxxxxxxxx> wrote:
>
> If u64 has a natural alignment of 8 bytes (this is rare, most 32-bit
> platforms align it to 4 bytes), then the leadup to the _sifields union
> matters:
Side note: I'm not sure that "this is rare" comment is necessarily correct.
I think natural alignment is pretty common, even for 32-bit targets.
x86-32 is I think the exception rather than the rule.
There is some real odd case iirc - embedded m68k, which has some
ridiculous alignment rules. I think it only ever aligns to 16-bit
boundaries.
I do keep coming back to the fact that we should *probably* just do
something like
typedef unsigned long long __attribute__((aligned(8))) __u64;
and then introduce a separate "u64_unaligned" type for all the legacy
cases that depended on 32-bit alignment.
It's horrendously nasty to test, though.
Linus