summaryrefslogtreecommitdiff
path: root/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-07-10 19:28:45 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-07-10 19:28:45 +0000
commitded4c0675d1dd3b6268ac94ff2c99ebb280815f9 (patch)
treebfa8b5fbe38c9d55ce814c4fbdbc02c830a0a8b9 /toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch
parenta44b4e3ffb2a35cc83871c46d8b45327e5abc91c (diff)
downloadmtk-20170518-ded4c0675d1dd3b6268ac94ff2c99ebb280815f9.zip
mtk-20170518-ded4c0675d1dd3b6268ac94ff2c99ebb280815f9.tar.gz
mtk-20170518-ded4c0675d1dd3b6268ac94ff2c99ebb280815f9.tar.bz2
uClibc: add a whole bunch of mips64 related fixes
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 41570
Diffstat (limited to 'toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch')
-rw-r--r--toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch b/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch
new file mode 100644
index 0000000..67611fd
--- /dev/null
+++ b/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch
@@ -0,0 +1,36 @@
+--- a/libc/sysdeps/linux/mips/sysdep.h
++++ b/libc/sysdeps/linux/mips/sysdep.h
+@@ -96,7 +96,8 @@
+ backwards into the previous fn. */
+
+ #ifdef __PIC__
+-#define PSEUDO(name, syscall_name, args) \
++# if _MIPS_SIM == _ABIO32
++# define PSEUDO(name, syscall_name, args) \
+ .align 2; \
+ 99: move a0, v0; \
+ la t9,__syscall_error; \
+@@ -109,6 +110,23 @@
+ .set reorder; \
+ bne a3, zero, 99b; \
+ L(syse1):
++# else
++# define PSEUDO(name, syscall_name, args) \
++ .align 2; \
++ 99: \
++ .set noat; \
++ .cpsetup t9, $1, name; \
++ .set at; \
++ move a0, v0; \
++ dla t9,__syscall_error; \
++ .cpreturn; \
++ jr t9; \
++ ENTRY(name) \
++ li v0, SYS_ify(syscall_name); \
++ syscall; \
++ bne a3, zero, 99b; \
++L(syse1):
++# endif
+ #else
+ #define PSEUDO(name, syscall_name, args) \
+ .set noreorder; \