diff options
Diffstat (limited to 'nptl/sysdeps')
8 files changed, 11 insertions, 7 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S b/nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S index 49398d5c23..a285280038 100644 --- a/nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S @@ -20,6 +20,7 @@ #include <sysdep.h> #define _SIGNAL_H #include <bits/signum.h> +#include <tcb-offsets.h> /* The following are defined in linux/sched.h, which unfortunately */ /* is not safe for inclusion in an assembly file. */ @@ -34,7 +35,7 @@ ENTRY(__vfork) .body // first .prologue is not at the beginning of proc. alloc r2=ar.pfs,0,0,2,0 adds r14=PID,r13 - ;; + ;; ld4 r16=[r14] ;; sub r15=0,r16 diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/vfork.S b/nptl/sysdeps/unix/sysv/linux/ia64/vfork.S index bbb34d94f0..3bd721f14e 100644 --- a/nptl/sysdeps/unix/sysv/linux/ia64/vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/ia64/vfork.S @@ -31,6 +31,8 @@ /* Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */ ENTRY(__vfork) + .prologue // work around a GAS bug which triggers if + .body // first .prologue is not at the beginning of proc. alloc r2=ar.pfs,0,0,2,0 adds r14=PID,r13 ;; @@ -44,7 +46,7 @@ ENTRY(__vfork) mov out1=0 /* Standard sp value. */ ;; st4 [r14]=r15 - DO_CALL_VIA_BREAK (SYS_ify (clone)) + DO_CALL (SYS_ify (clone)) cmp.eq p6,p0=0,r8 adds r14=PID,r13 (p6) br.cond.dptk 1f @@ -64,5 +66,4 @@ ENTRY(__vfork) ret PSEUDO_END(__vfork) libc_hidden_def (__vfork) - weak_alias (__vfork, vfork) diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S index 6b15567280..a1bd018551 100644 --- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S @@ -53,5 +53,5 @@ ENTRY (__vfork) PSEUDO_RET PSEUDO_END (__vfork) - +libc_hidden_def (__vfork) weak_alias (__vfork, vfork) diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S index 4820ecac21..4fb680338d 100644 --- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S @@ -51,5 +51,5 @@ ENTRY (__vfork) PSEUDO_RET PSEUDO_END (__vfork) - +libc_hidden_def (__vfork) weak_alias (__vfork, vfork) diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S index 2dca28fb6f..7b139341f4 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S @@ -53,5 +53,5 @@ ENTRY (__vfork) /* Normal return. */ br %r14 PSEUDO_END(__vfork) - +libc_hidden_def (__vfork) weak_alias (__vfork, vfork) diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S index c73d849f25..ed5bf5e9ca 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S @@ -55,5 +55,5 @@ ENTRY (__vfork) /* Normal return. */ br %r14 PSEUDO_END(__vfork) - +libc_hidden_def (__vfork) weak_alias (__vfork, vfork) diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S index 6a65a881af..7229608142 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S @@ -42,4 +42,5 @@ ENTRY(__vfork) nop PSEUDO_END (__vfork) +libc_hidden_def (__vfork) weak_alias (__vfork, vfork) diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S index c9ccd0f57d..d6b2455d43 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S @@ -42,4 +42,5 @@ ENTRY(__vfork) nop PSEUDO_END (__vfork) +libc_hidden_def (__vfork) weak_alias (__vfork, vfork) |