diff options
Diffstat (limited to 'linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S')
-rw-r--r-- | linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S | 15 |
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) |