Re: x86-64: Maintain 16-byte stack alignment

From: Herbert Xu
Date: Tue Jan 10 2017 - 23:36:21 EST


On Tue, Jan 10, 2017 at 08:17:17PM -0800, Linus Torvalds wrote:
>
> That said, I do think that the "don't assume stack alignment, do it by
> hand" may be the safer thing. Because who knows what the random rules
> will be on other architectures.

Sure we can ban the use of attribute aligned on stacks. But
what about indirect uses through structures? For example, if
someone does

struct foo {
} __attribute__ ((__aligned__(16)));

int bar(...)
{
struct foo f;

return baz(&f);
}

then baz will end up with an unaligned argument. The worst part
is that it is not at all obvious to the person writing the function
bar.

Cheers,
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt