mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-04 10:50:07 +00:00
5163b4b76f
The handling of negative offsets in MIPS mmap is inconsistent with other architectures, as shown by failure of the test posix/tst-mmap-offset for o32 and n32. The MIPS mmap syscall uses a signed argument and does a signed arithmetic shift on it, whereas the glibc semantics expected by that test are for the offset to be considered as a large positive offset. This patch makes MIPS consistent with other architectures as far as possible by using the mmap2 syscall on o32 (#including the generic implementation), and making mmap not an alias for mmap64 for n32, with a custom implementation for n32 that zero-extends the offset argument to 64-bit before calling the mmap syscall. Tested for MIPS64 (o32, n32, n64). [BZ #19550] * sysdeps/unix/sysv/linux/mips/mips32/mmap.c: New file. * sysdeps/unix/sysv/linux/mips/mips64/mmap64.c: Move to .... * sysdeps/unix/sysv/linux/mips/mips64/n64/mmap64.c: ... here. * sysdeps/unix/sysv/linux/mips/mips64/n32/mmap.c: New file. * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (mmap64): New syscall entry. * sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list (mmap): New syscall entry. * sysdeps/unix/sysv/linux/mips/mips64/syscalls.list (mmap): Remove syscall entry. |
||
---|---|---|
.. | ||
c++-types.data | ||
fallocate64.c | ||
fallocate.c | ||
fstatfs64.c | ||
fts64.c | ||
fts.c | ||
ftw64.c | ||
ftw.c | ||
glob64.c | ||
ioctl.S | ||
ld.abilist | ||
libc.abilist | ||
libresolv.abilist | ||
mmap64.c | ||
posix_fadvise64.c | ||
posix_fadvise.c | ||
posix_fallocate64.c | ||
posix_fallocate.c | ||
preadv64.c | ||
pwritev64.c | ||
sendfile64.c | ||
statfs64.c | ||
syscalls.list | ||
sysdep.h |