Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 17 Sep 2003 08:02:17 +0000 (08:02 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 17 Sep 2003 08:02:17 +0000 (08:02 +0000)
2003-09-17  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/unix/sysv/linux/i386/clone.S: Make sure child gets a
stack which is aligned (mod 16).

ChangeLog
sysdeps/unix/sysv/linux/i386/clone.S

index 728fe1d..cda4f87 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-17  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/clone.S: Make sure child gets a
+       stack which is aligned (mod 16).
+
 2003-09-17  Uwe Reimann  <Uwe_Reimann@gmx.net>
            Hans-Peter Nilsson  <hp@axis.com>
 
index 1f7417e..94c6a72 100644 (file)
@@ -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)