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

Reply via email to