about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-02-01 20:53:16 +0000
committerUlrich Drepper <drepper@redhat.com>2003-02-01 20:53:16 +0000
commit38e68573bc08179bb9418038e7c2db7e576eaea5 (patch)
treefac3119a1783cc465b6ff578da410897c4163c00 /sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
parent4a7d6545ce1611c0a320f3210d46d5bd3a03b260 (diff)
downloadglibc-38e68573bc08179bb9418038e7c2db7e576eaea5.tar.gz
glibc-38e68573bc08179bb9418038e7c2db7e576eaea5.tar.xz
glibc-38e68573bc08179bb9418038e7c2db7e576eaea5.zip
Update.
2003-02-01  Ulrich Drepper  <drepper@redhat.com>

	* time/tzfile.c (__tzfile_compute): Change return value type to
	void.  Adjust return statements.
	* include/time.h (__tzfile_compute): Adjust prototype.

2003-02-01  Jim Meyering  <jim@meyering.net>

	* time/tzset.c (__tz_convert): Remove dead code; __tzfile_compute
	always returns 1.

2003-01-31  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c
	[!__ASSUME_NEW_PRCTL_SYSCALL]: Noop prctl syscall and set ENOSYS.

2003-01-31  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
	[!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Generate ENOSYS stub.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
	[!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
	[!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
	[!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Likewise.

2003-01-31  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/configure.in: Change arch_minimum_kernel
	back to 2.4.19 for powerpc64.
	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_NEW_PRCTL_SYSCALL): Define for powerpc64.
	(__ASSUME_NEW_RT_SIGRETURN_SYSCALL): Define for powerpc64.

2003-02-01  Ulrich Drepper  <drepper@redhat.com>

	* wcsmbs/wcscpy.c (wcscpy): Add alternative implementation for
	platforms with strange alignment requirements on wchar_t.
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S')
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S18
1 files changed, 17 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
index 23422fb948..b1bcd44af1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
@@ -22,8 +22,10 @@
 #define __ASSEMBLY__
 #include <asm/ptrace.h>
 #include "ucontext_i.h"
+#include <asm/errno.h>
 
 ENTRY(__swapcontext)
+#ifdef __ASSUME_NEW_RT_SIGRETURN_SYSCALL
   std  r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
   std  r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
   mflr  r0
@@ -128,7 +130,7 @@ ENTRY(__swapcontext)
   addi  r5,r3,UCONTEXT_SIGMASK
   addi  r4,r4,UCONTEXT_SIGMASK
   li    r3,SIG_SETMASK
-  bl    .sigprocmask
+  bl    JUMPTARGET(sigprocmask)
   nop
   cmpdi  r3,0
   bne   L(error_exit)
@@ -251,6 +253,20 @@ L(do_sigret):
   li   r0,SYS_ify(rt_sigreturn)
   sc
   /* No return.  */
+#else
+  /* If the kernel is not at least 2.4.21 then generate a ENOSYS stub.  */
+  mflr r0
+  std  r0,FRAME_LR_SAVE(r1)
+  stdu r1,-128(r1)
+  li   r3,ENOSYS
+  bl   JUMPTARGET(__syscall_error)
+  nop
+  li   r3,-1
+  ld   r0,128+FRAME_LR_SAVE(r1)  
+  addi r1,r1,128
+  mtlr r0
+  blr
+#endif  
 
 PSEUDO_END(__swapcontext)