summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/i386
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2005-08-17 14:48:11 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2005-08-17 14:48:11 +0000
commit54a7d559374ef72fa59bbe3a56d27ff5ec34d3aa (patch)
tree1fe7209313f2728c550d3eb75929b4af051fb349 /libc/sysdeps/linux/i386
parentb46868ff8b3d2fb592e3fca4a516695533eae9e5 (diff)
downloaduClibc-alpine-54a7d559374ef72fa59bbe3a56d27ff5ec34d3aa.tar.bz2
uClibc-alpine-54a7d559374ef72fa59bbe3a56d27ff5ec34d3aa.tar.xz
Merge/sync with trunk.
Diffstat (limited to 'libc/sysdeps/linux/i386')
-rw-r--r--libc/sysdeps/linux/i386/clone.S16
-rw-r--r--libc/sysdeps/linux/i386/mmap64.S2
2 files changed, 12 insertions, 6 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
diff --git a/libc/sysdeps/linux/i386/mmap64.S b/libc/sysdeps/linux/i386/mmap64.S
index 5c89c983b..5405c8a09 100644
--- a/libc/sysdeps/linux/i386/mmap64.S
+++ b/libc/sysdeps/linux/i386/mmap64.S
@@ -87,7 +87,7 @@ L_einval:
popl %ebx
popl %ebp
movl $-EINVAL, %eax
- jmp __error
+ jmp __syscall_error
.size mmap64,.-mmap64