summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2004-02-15 10:35:42 +0000
committerManuel Novoa III <mjn3@codepoet.org>2004-02-15 10:35:42 +0000
commit3532e704fd568e55de373cbb271271349c1b0fae (patch)
tree5d6b4a10776a9f0b631b29666ddd2a1370ea74d0
parentc66701f81d1e06e04464f41f5082822951bc14dc (diff)
Generic fork works. Use it instead since this didn't handle errno_location.
-rw-r--r--libc/sysdeps/linux/mips/Makefile2
-rw-r--r--libc/sysdeps/linux/mips/fork.S65
2 files changed, 1 insertions, 66 deletions
diff --git a/libc/sysdeps/linux/mips/Makefile b/libc/sysdeps/linux/mips/Makefile
index 7ae715000..a35408611 100644
--- a/libc/sysdeps/linux/mips/Makefile
+++ b/libc/sysdeps/linux/mips/Makefile
@@ -24,7 +24,7 @@ CRT0_SRC = crt0.S
CRT0_OBJ = crt0.o crt1.o
CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
-SSRC=bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S fork.S syscall.S pipe.S
+SSRC=bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S syscall.S pipe.S
SOBJS=$(patsubst %.S,%.o, $(SSRC))
CSRC=__longjmp.c brk.c setjmp_aux.c mmap.c __syscall_error.c \
diff --git a/libc/sysdeps/linux/mips/fork.S b/libc/sysdeps/linux/mips/fork.S
deleted file mode 100644
index 6d2b33dba..000000000
--- a/libc/sysdeps/linux/mips/fork.S
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <features.h>
-
-#define ALIGN 2
-
-/* Note: .abicalls goes at top of routine, and only one of them. */
-#if defined(USER_ABICALLS)
-#define ABISETUP \
- .set noreorder; \
- .cpload t9; \
- .set reorder;
-
- .abicalls
-#else
-#define ABISETUP
-#endif
-
-#ifndef __UCLIBC_USE_UNIFIED_SYSCALL__
-#define SYSCALL__(name) \
- .text; \
- .align ALIGN; \
- .globl name; \
- .ent name, 0; \
- name: ; \
- ABISETUP \
- li v0, __NR_##name ; \
- syscall; \
- la t3, errno; \
- beqz a3, 1f; \
- negu a1, v0; \
- sw a1, 0(t3); \
- li v0, -1; \
- 1: ; \
- j ra; \
- .end name; \
- .size name,.-name;
-#else /* Unified syscall */
-#define SYSCALL__(name) \
- .text; \
-/* .align ALIGN;*/ \
- .globl name; \
- .ent name, 0; \
- name: ; \
- ABISETUP \
- .set push; \
- .set noreorder; \
- j __uClibc_syscall; \
- addiu v0, zero, __NR_##name ; \
- .set pop; \
- .end name; \
- .size name,.-name;
-#endif /* __UCLIBC_USE_UNIFIED_SYSCALL__ */
-
-#undef ALIGN
-#define __ASSEMBLY__
-#include <asm/asm.h>
-#include <asm/unistd.h>
-#include <asm/mipsregs.h>
-#include <asm/regdef.h>
-/* #include <asm/stackframe.h> */
-
-#undef ALIGN
-#define ALIGN 2
-#define _SYSCALL0(type,name) SYSCALL__(name)
-_SYSCALL0(pid_t, fork);
-