[PATCH] SH fix for socket syscall wrapper
kaz Kojima
kkojima@rr.iij4u.or.jp
Sat Jul 12 01:06:00 GMT 2003
Hi,
SH's __socket syscall wrapper is broken for the cancellation case.
Here is a fix.
Regards,
kaz
--
2003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/socket.S: Save and restore the PR
register across CENABLE and CDISABLE.
diff -u3prN ORIG/libc/sysdeps/unix/sysv/linux/sh/socket.S LOCAL/libc/sysdeps/unix/sysv/linux/sh/socket.S
--- ORIG/libc/sysdeps/unix/sysv/linux/sh/socket.S Wed Jan 8 08:37:36 2003
+++ LOCAL/libc/sysdeps/unix/sysv/linux/sh/socket.S Thu Jul 10 13:19:45 2003
@@ -94,7 +94,9 @@ ENTRY (__socket)
#if defined NEED_CANCELLATION && defined CENABLE
.Lsocket_cancel:
/* Enable asynchronous cancellation. */
+ sts.l pr,@-r15
CENABLE
+ lds.l @r15+,pr
/* Do the system call trap. */
mov #+P(SOCKOP_,socket), r4
@@ -102,9 +104,11 @@ ENTRY (__socket)
mov.l .L1,r3
trapa #0x12
+ sts.l pr,@-r15
mov.l r0,@-r15
CDISABLE
mov.l @r15+,r0
+ lds.l @r15+,pr
/* Pop args off the stack */
P(POPARGS_,NARGS)
More information about the Libc-hacker
mailing list