summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-02-15 09:02:54 +0000
committerEric Andersen <andersen@codepoet.org>2004-02-15 09:02:54 +0000
commitd3c240368b0b0babdcba9cb43f14e32dad2a6008 (patch)
tree1dec102921c6e7be9f805203ba57204121641430 /libc
parent084192da07a63fdde5253262b9c5b101a23a26ee (diff)
Fixup fork implementation to provide the __libc_fork symbol
Diffstat (limited to 'libc')
-rw-r--r--libc/sysdeps/linux/cris/fork.c4
-rw-r--r--libc/sysdeps/linux/sparc/fork.S8
2 files changed, 7 insertions, 5 deletions
diff --git a/libc/sysdeps/linux/cris/fork.c b/libc/sysdeps/linux/cris/fork.c
index 5ca8a723f..0399edce8 100644
--- a/libc/sysdeps/linux/cris/fork.c
+++ b/libc/sysdeps/linux/cris/fork.c
@@ -1,10 +1,12 @@
#include <sysdep.h>
-SYSCALL__ (fork, 0)
+#define __NR___libc_fork __NR_fork
+SYSCALL__ (__libc_fork, 0)
/* R1 is now 0 for the parent and 1 for the child. Decrement it to
make it -1 (all bits set) for the parent, and 0 (no bits set)
for the child. Then AND it with R0, so the parent gets
R0&-1==R0, and the child gets R0&0==0. */
/* i dunno what the blurb above is useful for. we just return. */
__asm__("ret\n\tnop");
+weak_alias(__libc_fork, fork);
diff --git a/libc/sysdeps/linux/sparc/fork.S b/libc/sysdeps/linux/sparc/fork.S
index c66856bef..982cdbe8f 100644
--- a/libc/sysdeps/linux/sparc/fork.S
+++ b/libc/sysdeps/linux/sparc/fork.S
@@ -21,12 +21,12 @@
#include <sys/syscall.h>
-.text;
+.text;
.global fork;
.align 4;
-.type fork,@function;
+.type __libc_fork,@function;
-fork:
+__libc_fork:
mov __NR_fork, %g1
ta 0x10
bcc,a 9000f
@@ -43,5 +43,5 @@ fork:
retl
and %o0, %o1, %o0
-.size fork,.-fork;
+.size __libc_fork,.-__libc_fork;