diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-07-10 19:28:45 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-07-10 19:28:45 +0000 |
commit | a22846267123c31f3717f42d0bce7da2043be0b0 (patch) | |
tree | 1c35e5d5a0c2df50f7ec21f071d63a5b7a66be02 /toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch | |
parent | 752fdaeb911e28d139baf4f04f019cf56e6cb7e9 (diff) | |
download | master-187ad058-a22846267123c31f3717f42d0bce7da2043be0b0.tar.gz master-187ad058-a22846267123c31f3717f42d0bce7da2043be0b0.tar.bz2 master-187ad058-a22846267123c31f3717f42d0bce7da2043be0b0.zip |
uClibc: add a whole bunch of mips64 related fixes
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41570 3c298f89-4303-0410-b956-a3cf2f4a3e73
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.patch | 36 |
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 0000000000..67611fdebc --- /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; \ |