diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-03-23 17:56:28 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2009-03-23 17:56:28 +0000 |
commit | 2b419ade23452e6481efa2794cbbfb5be9f5e8c6 (patch) | |
tree | 0578b4c71aab8f3d979d3181a922382acf050816 /toolchain/uClibc/patches-0.9.29/160-mips_syscall.patch | |
parent | 2f50ebd847f5cb4e00c5f63ae9aab873d38adafe (diff) | |
download | upstream-2b419ade23452e6481efa2794cbbfb5be9f5e8c6.tar.gz upstream-2b419ade23452e6481efa2794cbbfb5be9f5e8c6.tar.bz2 upstream-2b419ade23452e6481efa2794cbbfb5be9f5e8c6.zip |
clean up uclibc patch/config version handling a bit
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14994 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'toolchain/uClibc/patches-0.9.29/160-mips_syscall.patch')
-rw-r--r-- | toolchain/uClibc/patches-0.9.29/160-mips_syscall.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/toolchain/uClibc/patches-0.9.29/160-mips_syscall.patch b/toolchain/uClibc/patches-0.9.29/160-mips_syscall.patch new file mode 100644 index 0000000000..c5e5f6b468 --- /dev/null +++ b/toolchain/uClibc/patches-0.9.29/160-mips_syscall.patch @@ -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 |