📄 glibc-2.3.2-sh4-socket.patch
字号:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sh/socket.S.diff?r1=1.5&r2=1.6&cvsroot=glibcAnkur Sheth said:"The problem that I ran into was that multi-threaded apps would crash with aseg fault when they invoked some of the socket calls (sendto() in my case.This happened only on the sh4. Turns out that a certain register (PR) wasnot being saved and restored properly before and after invoking the systemcall. This patch fixes it. It applies cleanly on glibc 2.3.2. [Thanks to Kaz for helping us find this.]"===================================================================RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sh/socket.S,vretrieving revision 1.5retrieving revision 1.6diff -u -r1.5 -r1.6--- libc/sysdeps/unix/sysv/linux/sh/socket.S 2003/01/05 11:07:44 1.5+++ libc/sysdeps/unix/sysv/linux/sh/socket.S 2003/07/12 01:25:53 1.6@@ -94,7 +94,9 @@ #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 @@ 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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -