Implement clone() C library function properly.
Only provide an implementation for ARM at the moment, since
it requires specific assembly fragments (the standard syscall
stubs cannot be used because the child returns in a different
stack).
diff --git a/libc/arch-sh/syscalls/__clone.S b/libc/arch-sh/syscalls/__sys_clone.S
similarity index 74%
rename from libc/arch-sh/syscalls/__clone.S
rename to libc/arch-sh/syscalls/__sys_clone.S
index 1df6ca2..c2e7dd2 100644
--- a/libc/arch-sh/syscalls/__clone.S
+++ b/libc/arch-sh/syscalls/__sys_clone.S
@@ -2,15 +2,18 @@
#include <sys/linux-syscalls.h>
.text
- .type __clone, @function
- .globl __clone
+ .type __sys_clone, @function
+ .globl __sys_clone
.align 4
-__clone:
+__sys_clone:
+
+ /* get ready for additonal arg */
+ mov.l @r15, r0
/* invoke trap */
mov.l 0f, r3 /* trap num */
- trapa #(4 + 0x10)
+ trapa #(5 + 0x10)
/* check return value */
cmp/pz r0