From 6c052003bda07641309dcd4fe4a5158d24f5d607 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 17 Sep 2003 08:02:17 +0000 Subject: Update. 2003-09-17 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/clone.S: Make sure child gets a stack which is aligned (mod 16). --- sysdeps/unix/sysv/linux/i386/clone.S | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S index 1f7417effd..94c6a72548 100644 --- a/sysdeps/unix/sysv/linux/i386/clone.S +++ b/sysdeps/unix/sysv/linux/i386/clone.S @@ -61,8 +61,10 @@ ENTRY (BP_SYM (__clone)) jz SYSCALL_ERROR_LABEL #endif - /* Insert the argument onto the new stack. */ - subl $16,%ecx + /* Insert the argument onto the new stack. Make sure the new + thread is started with an alignment of (mod 16). */ + andl $0xfffffff0, %ecx + subl $24,%ecx movl ARG(%esp),%eax /* no negative argument counts */ movl %eax,12(%ecx) -- cgit v1.2.3