diff -rudN glibc-2.0.7.orig/sysdeps/unix/sysv/linux/mips/clone.S glibc-2.0.7/sysdeps/unix/sysv/linux/mips/clone.S --- glibc-2.0.7.orig/sysdeps/unix/sysv/linux/mips/clone.S Thu Nov 2 07:53:00 2000 +++ glibc-2.0.7/sysdeps/unix/sysv/linux/mips/clone.S Thu Nov 2 07:58:36 2000 @@ -26,7 +26,7 @@ #define _ERRNO_H 1 #include -/* int clone(int (*fn)(), void *child_stack, int flags, int nargs, ...) */ +/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */ .text NESTED(__clone,4*SZREG,sp) @@ -57,7 +57,10 @@ syscall bnez a3, error - beqz v0, out + beqz v0, __thread_start + + addiu sp, 32 + ret /* Something bad happened -- no child created */ error: @@ -68,10 +71,6 @@ #else j __syscall_error #endif - -out: - addiu sp, 32 - ret END(__clone) /* Load up the arguments to the function. Put this block of code in