diff options
Diffstat (limited to 'linuxthreads/sysdeps/unix/sysv/linux/powerpc')
-rw-r--r-- | linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S index 17590059b6..e85f662b7e 100644 --- a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S +++ b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S @@ -29,11 +29,20 @@ ENTRY (__vfork) #ifdef __NR_vfork - - SINGLE_THREAD_P # ifdef SHARED + mflr 9 + bl _GLOBAL_OFFSET_TABLE_@local-4 + mflr 10 + mtlr 9 + lwz 10,__libc_pthread_functions@got(10) + lwz 10,0(10) + cmpwi 10,0 bne- HIDDEN_JUMPTARGET(__fork) # else + .weak __pthread_fork + lis 9,__pthread_fork@ha + la 9,__pthread_fork@l(9) + cmpwi 9,0 bne- .Lhidden_fork # endif |