summaryrefslogtreecommitdiff
path: root/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S')
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S14
1 files changed, 8 insertions, 6 deletions
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
index f91fc4f62..a64d8e519 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 2000, 2003, 2004
+/* Copyright (C) 1996, 1997, 1998, 2000, 2003, 2004, 2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -41,9 +41,9 @@ ENTRY (__clone)
/* sanity check arguments */
orcc %i0,%g0,%g2
- be .Lerror
+ be .Leinval
orcc %i1,%g0,%o1
- be .Lerror
+ be .Leinval
mov %i2,%o0
/* The child_stack is the top of the stack, allocate one
@@ -70,9 +70,11 @@ ENTRY (__clone)
jmpl %i7 + 8, %g0
restore %o0,%g0,%o0
+.Leinval:
+ mov EINVAL, %o0
.Lerror:
- call __errno_location
- or %g0,EINVAL,%i0
+ call HIDDEN_JUMPTARGET(__errno_location)
+ mov %o0, %i0
st %i0,[%o0]
jmpl %i7 + 8, %g0
restore %g0,-1,%o0
@@ -99,7 +101,7 @@ __thread_start:
mov %g0, %fp /* terminate backtrace */
call %g2
mov %g3,%o0
- call _exit,0
+ call HIDDEN_JUMPTARGET(_exit),0
nop
cfi_endproc