Re: i386 ABI and the stack

From: Albert Cahalan
Date: Fri Jun 23 2006 - 22:43:25 EST


On 6/23/06, Linus Torvalds <torvalds@xxxxxxxx> wrote:
On Fri, 23 Jun 2006, H. Peter Anvin wrote:
> >
> > The x86-64 ABI has a 128-byte(*) zone that is safe from signals etc, so you
> > can use a small amount of stack below the stackpointer safely. Not so on
> > x86.
>
> Adding a small redzone like this to i386 would be easy, though -- just drop
> the stack pointer by that much when creating a signal frame. 128 bytes isn't
> enough to interfere with libraries.

However, any binaries created with that in mind would be
buggy-by-definition on older kernels, so I don't think it's worth it.

Since gcc-2.96 would access 256 bytes below the stack pointer
(according to the valgrind man page), the kernel needs to allow
for this in signal handlers anyway.

I'm pretty sure I saw that code in the kernel in fact, but I
can't find it now. Perhaps it got lost in a cleanup accident?
(it sure would be nice to have continuous source control history)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/