about summary refs log tree commit diff
path: root/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S')
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S15
1 files changed, 15 insertions, 0 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
index f62d3f44c3..17590059b6 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
+++ b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
@@ -31,7 +31,11 @@ ENTRY (__vfork)
 #ifdef __NR_vfork
 
 	SINGLE_THREAD_P
+# ifdef SHARED
 	bne-	HIDDEN_JUMPTARGET(__fork)
+# else
+	bne-	.Lhidden_fork
+# endif
 
 	DO_CALL (SYS_ify (vfork));
 
@@ -41,7 +45,11 @@ ENTRY (__vfork)
 	bnslr+
 	/* Check if vfork syscall is known at all.  */
 	cmpwi	r3,ENOSYS
+#  ifdef SHARED
 	bne	JUMPTARGET(__syscall_error)
+#  else
+	bne	.Lsyscall_error
+#  endif
 
 # endif
 #endif
@@ -53,6 +61,13 @@ ENTRY (__vfork)
 	PSEUDO_RET
 #endif
 
+# ifndef SHARED
+.Lhidden_fork:
+	b	HIDDEN_JUMPTARGET(__fork)
+.Lsyscall_error:
+	b	JUMPTARGET(__syscall_error)
+# endif
+
 PSEUDO_END (__vfork)
 libc_hidden_def (__vfork)