Upstream fix for syscall() not setting errno on errors on MIPS
SVN-Revision: 14689
This commit is contained in:
parent
80afab21fc
commit
e805b29fdd
1 changed files with 31 additions and 0 deletions
31
toolchain/uClibc/patches/160-mips_syscall.patch
Normal file
31
toolchain/uClibc/patches/160-mips_syscall.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
--- uClibc-0.9.29.orig/libc/sysdeps/linux/mips/syscall.S 2009-02-27 19:26:57.420288905 +0100
|
||||
+++ uClibc-0.9.29/libc/sysdeps/linux/mips/syscall.S 2009-02-27 19:43:18.000000000 +0100
|
||||
@@ -29,6 +29,9 @@
|
||||
.type syscall,@function
|
||||
.ent syscall
|
||||
syscall:
|
||||
+#ifdef __PIC__
|
||||
+ SETUP_GP
|
||||
+#endif
|
||||
move v0, a0 /* Load system call number from first arg. */
|
||||
move a0, a1 /* Move the next three args up a register. */
|
||||
move a1, a2
|
||||
@@ -60,6 +63,18 @@
|
||||
#else
|
||||
addiu sp,sp,32
|
||||
#endif
|
||||
+ bnez a3, 1f
|
||||
j ra /* Return to caller. */
|
||||
+1:
|
||||
+ move a0,v0 /* Pass return val to C function. */
|
||||
+
|
||||
+#ifdef __PIC__
|
||||
+ SETUP_GP64(v0, syscall)
|
||||
+ PTR_LA t9, __syscall_error
|
||||
+ RESTORE_GP64
|
||||
+ jr t9
|
||||
+#else
|
||||
+ j __syscall_error
|
||||
+#endif
|
||||
.end syscall
|
||||
.size syscall,.-syscall
|
Loading…
Reference in a new issue