[PATCH] Fix MIPS N64 build.

Waldemar Brodkorb wbx at openadk.org
Fri Feb 14 14:21:32 UTC 2014


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 <sellcey at 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.

best regards
 Waldemar


More information about the uClibc mailing list