summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/sparc/fork.S
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-05-14 14:19:32 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-05-14 14:19:32 +0000
commit167217bec15c9c7aa70ba2a3dc9c689b3cd91872 (patch)
tree7c0c62debf8f9f145643102fb52b81afce743594 /mdk-stage1/dietlibc/sparc/fork.S
parent9097327dc1c667fc51b8e05cc7c0626fac96665d (diff)
downloaddrakx-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar
drakx-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar.gz
drakx-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar.bz2
drakx-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar.xz
drakx-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.zip
import new version of dietlibc
Diffstat (limited to 'mdk-stage1/dietlibc/sparc/fork.S')
-rw-r--r--mdk-stage1/dietlibc/sparc/fork.S20
1 files changed, 13 insertions, 7 deletions
diff --git a/mdk-stage1/dietlibc/sparc/fork.S b/mdk-stage1/dietlibc/sparc/fork.S
index 150839971..869c9b30c 100644
--- a/mdk-stage1/dietlibc/sparc/fork.S
+++ b/mdk-stage1/dietlibc/sparc/fork.S
@@ -1,19 +1,25 @@
#include "syscalls.h"
.text
-.global fork
+.weak fork
fork:
+.global __libc_fork
+__libc_fork:
mov 2, %g1
ta 0x10
bcc,a 1f
nop
-
- sethi %hi(errno), %o3
- or %o3, %lo(errno), %o3
- st %i0, [%o3]
-
+ save %sp, -96, %sp
+#ifdef WANT_THREAD_SAVE
+ call __errno_location
+ nop
+#else
+ sethi %hi(errno), %o0
+ or %o0, %lo(errno), %o0
+#endif
+ st %i0, [ %o0 ]
retl
- mov -1, %o0
+ restore %g0, -1, %o0
1: dec %o1
retl
and %o0, %o1, %o0