[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