summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2015-11-30 18:31:53 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2015-11-30 19:16:34 +0100
commit037a5ae08a3e4dca516bc112fbfa1d1f05d1e67b (patch)
tree51f7a68692c60abf2f246544e136981e0ed095eb /libc
parenta8cbdc3aaaca564e52ee77a9c5eff050ccd7d8a4 (diff)
bfin: use vfork.S again
Actually revert 711ad9f92c1cf992c4a3d9f4f709bd692be7789c, as it breaks vfork() on real hardware. So the common implementation no longer works for bfin.
Diffstat (limited to 'libc')
-rw-r--r--libc/sysdeps/linux/bfin/Makefile.arch2
-rw-r--r--libc/sysdeps/linux/bfin/vfork.S18
2 files changed, 19 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/bfin/Makefile.arch b/libc/sysdeps/linux/bfin/Makefile.arch
index df76ab08a..8e945cdea 100644
--- a/libc/sysdeps/linux/bfin/Makefile.arch
+++ b/libc/sysdeps/linux/bfin/Makefile.arch
@@ -8,7 +8,7 @@
CSRC-y := bsdsetjmp.c clone.c \
sram-alloc.c sram-free.c dma-memcpy.c
-SSRC-y := __longjmp.S setjmp.S bsd-_setjmp.S
+SSRC-y := __longjmp.S setjmp.S bsd-_setjmp.S vfork.S
CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
diff --git a/libc/sysdeps/linux/bfin/vfork.S b/libc/sysdeps/linux/bfin/vfork.S
new file mode 100644
index 000000000..d8e65574b
--- /dev/null
+++ b/libc/sysdeps/linux/bfin/vfork.S
@@ -0,0 +1,18 @@
+/*
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+
+.text
+.global ___vfork
+.hidden ___vfork
+.type ___vfork,STT_FUNC;
+.align 4
+___vfork:
+ p0 = __NR_vfork;
+ excpt 0;
+ rts;
+.size ___vfork,.-___vfork
+weak_alias(__vfork,vfork)
+libc_hidden_weak(vfork)