aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S')
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S9
1 files changed, 8 insertions, 1 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
index efc9710d7b..d2faaa1c68 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
+++ b/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
@@ -27,7 +27,14 @@
and the process ID of the new process to the old process. */
ENTRY (__vfork)
- SINGLE_THREAD_P
+#ifdef SHARED
+ larl %r1,__libc_pthread_functions
+ lg %r1,0(%r1)
+#else
+ .weak __pthread_fork
+ larl %r1,__pthread_fork
+#endif
+ ltgr %r1,%r1
jgne HIDDEN_JUMPTARGET(__fork)
/* Do vfork system call. */