summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/i386
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-08-12 22:51:08 +0000
committerMike Frysinger <vapier@gentoo.org>2005-08-12 22:51:08 +0000
commit3417dd5c9165f05d944bb1e877471c91041ea866 (patch)
tree60b11aa8dd4cb2094b0b8bde37c93e7617661f93 /libc/sysdeps/linux/i386
parente6b5b0f238204eeccd8b54db36c2f2836aef09be (diff)
revert __error -> __syscall_error change since it doesnt work for clone
Diffstat (limited to 'libc/sysdeps/linux/i386')
-rw-r--r--libc/sysdeps/linux/i386/clone.S16
1 files changed, 11 insertions, 5 deletions
diff --git a/libc/sysdeps/linux/i386/clone.S b/libc/sysdeps/linux/i386/clone.S
index 259982230..35a4e5b7f 100644
--- a/libc/sysdeps/linux/i386/clone.S
+++ b/libc/sysdeps/linux/i386/clone.S
@@ -51,19 +51,19 @@ __clone:
/* no NULL function pointers */
movl FUNC(%esp),%ecx
#ifdef __PIC__
- jecxz __syscall_error
+ jecxz __error
#else
testl %ecx,%ecx
- jz __syscall_error
+ jz __error
#endif
/* no NULL stack pointers */
movl STACK(%esp),%ecx
#ifdef __PIC__
- jecxz __syscall_error
+ jecxz __error
#else
testl %ecx,%ecx
- jz __syscall_error
+ jz __error
#endif
/* Insert the argument onto the new stack. Make sure the new
@@ -96,7 +96,7 @@ __clone:
popl %ebx
test %eax,%eax
- jl __syscall_error
+ jl __error
jz .Lthread_start
ret
@@ -114,6 +114,12 @@ __clone:
movl $__NR_exit, %eax
int $0x80
+/* Need to indirect jump to syscall error
+ * or we end up with TEXTREL's
+ */
+__error:
+ jmp __syscall_error
+
.size __clone,.-__clone
.weak clone