summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S11
1 files changed, 8 insertions, 3 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S
index ba25cb1f3b..475bb6ea7b 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S
+++ b/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S
@@ -29,11 +29,16 @@
 
 ENTRY (__vfork)
 
-#ifdef __NR_vfork
-
-	SINGLE_THREAD_P
+#ifdef SHARED
+	tstl	(__libc_pthread_functions@GOTPC, %pc)
+#else
+	.weak	__pthread_fork
+	movel	#__pthread_fork, %d0
+#endif
 	jbne	HIDDEN_JUMPTARGET (__fork)
 
+#ifdef __NR_vfork
+
 	/* Pop the return PC value into A0.  */
 	movel	%sp@+, %a0