From 73b4ce64cc07a2732d691a4e3432cdc082d10567 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 11 Mar 2004 01:34:46 +0000 Subject: [PATCH] Update. 2004-03-11 Jakub Jelinek * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S (__novec_swapcontext): Branch to novec_* labels. --- ChangeLog | 5 +++++ nptl/ChangeLog | 13 +++++++++++++ nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S | 3 ++- nptl/sysdeps/unix/sysv/linux/ia64/vfork.S | 5 +++-- nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S | 2 +- nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S | 2 +- nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S | 2 +- nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S | 2 +- nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S | 1 + nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S | 1 + sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S | 4 ++-- 11 files changed, 31 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index e3b02c1..2f60679 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-03-11 Jakub Jelinek + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S + (__novec_swapcontext): Branch to novec_* labels. + 2004-03-10 Ulrich Drepper * posix/getopt.c (_): Don't define here for glibc. diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 436a263..5bda160 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,18 @@ 2004-03-10 Jakub Jelinek + * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add + libc_hidden_def. + * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h. + * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead + of DO_CALL_VIA_BREAK. Work around a gas problem. + * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove. * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file. diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S b/nptl/sysdeps/unix/sysv/linux/ia64/pt-vfork.S index 49398d5..a285280 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 #define _SIGNAL_H #include +#include /* 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 bbb34d9..3bd721f 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 6b15567..a1bd018 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 4820eca..4fb6803 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 2dca28f..7b13934 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 c73d849..ed5bf5e 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 6a65a88..7229608 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 c9ccd0f..d6b2455 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) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S index 1bf3f51..2acfa3a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S @@ -573,7 +573,7 @@ ENTRY(__novec_swapcontext) li r3,SIG_SETMASK bl JUMPTARGET(sigprocmask) cmpwi r3,0 - bne L(error_exit) + bne L(novec_error_exit) /* * If the new ucontext refers to the point where we were interrupted @@ -590,7 +590,7 @@ ENTRY(__novec_swapcontext) lwz r31,_UC_REGS_PTR(r31) lwz r0,_UC_GREGS+(PT_MSR*4)(r31) cmpwi r0,0 - bne L(do_sigret) + bne L(novec_do_sigret) /* Restore the floating-point registers */ lfd fp31,_UC_FREGS+(32*8)(r31) -- 2.7.4