On Fri, Feb 14, 2014 at 03:21:32PM +0100, Waldemar Brodkorb wrote: > Hi Steve, > Steve Ellcey wrote, > > > 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. > > I think you mean MIPS64 N32. > > > Signed-off-by: Steve Ellcey <sell...@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) > > -- > > Works for me, too. > Did you start any real machine or emulator with this? I get bus > errors after executing any application.
I suspect this needs a different register passing handling (__LONG_LONG_PAIR) then. _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc