Messages in this thread | | | Date | Thu, 3 Mar 2016 09:28:46 -0800 | Subject | Re: [tip:mm/pkeys] mm/pkeys: Fix siginfo ABI breakage caused by new u64 field | From | Linus Torvalds <> |
| |
On Thu, Mar 3, 2016 at 8:53 AM, tip-bot for Dave Hansen <tipbot@zytor.com> 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
| |