summaryrefslogtreecommitdiff
path: root/toolchain/uClibc/patches/xxx-n32-pread_pwrite.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/uClibc/patches/xxx-n32-pread_pwrite.patch')
-rw-r--r--toolchain/uClibc/patches/xxx-n32-pread_pwrite.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/toolchain/uClibc/patches/xxx-n32-pread_pwrite.patch b/toolchain/uClibc/patches/xxx-n32-pread_pwrite.patch
new file mode 100644
index 000000000..a4571f27d
--- /dev/null
+++ b/toolchain/uClibc/patches/xxx-n32-pread_pwrite.patch
@@ -0,0 +1,32 @@
+Uclibc is not building for MIPS N64 because pread is trying to use the
+pread/pwrite system calls instead of pread64/pwrite64. This patch fixes
+the problem and was tested with LFS enabled and disabled.
+
+Signed-off-by: Steve Ellcey <sellcey@mips.com>
+---
+ libc/sysdeps/linux/mips/pread_write.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libc/sysdeps/linux/mips/pread_write.c b/libc/sysdeps/linux/mips/pread_write.c
+index 3dc97c9..1220fec 100644
+--- a/libc/sysdeps/linux/mips/pread_write.c
++++ b/libc/sysdeps/linux/mips/pread_write.c
+@@ -13,14 +13,14 @@
+ /* We should generalize this for 32bit userlands w/64bit regs. This applies
+ * to the x86_64 x32 and the mips n32 ABIs. */
+ #if _MIPS_SIM == _MIPS_SIM_NABI32
+-# define __NR___syscall_pread __NR_pread
++# define __NR___syscall_pread __NR_pread64
+ static _syscall4(ssize_t, __syscall_pread, int, fd, void *, buf, size_t, count, off_t, offset)
+ # define MY_PREAD(fd, buf, count, offset) \
+ __syscall_pread(fd, buf, count, offset)
+ # define MY_PREAD64(fd, buf, count, offset) \
+ __syscall_pread(fd, buf, count, offset)
+
+-# define __NR___syscall_pwrite __NR_pwrite
++# define __NR___syscall_pwrite __NR_pwrite64
+ static _syscall4(ssize_t, __syscall_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset)
+ # define MY_PWRITE(fd, buf, count, offset) \
+ __syscall_pwrite(fd, buf, count, offset)
+--
+1.7.9.5