mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-02 01:40: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. |
||
---|---|---|
.. | ||
n32 | ||
n64 | ||
configure | ||
configure.ac | ||
ftruncate64.c | ||
fxstat64.c | ||
fxstatat64.c | ||
ldconfig.h | ||
ldd-rewrite.sed | ||
libanl.abilist | ||
libBrokenLocale.abilist | ||
libcrypt.abilist | ||
libdl.abilist | ||
libm.abilist | ||
libnsl.abilist | ||
libpthread.abilist | ||
librt.abilist | ||
libthread_db.abilist | ||
libutil.abilist | ||
llseek.c | ||
lxstat64.c | ||
Makefile | ||
msgctl.c | ||
recv.c | ||
semctl.c | ||
send.c | ||
shmctl.c | ||
syscall.S | ||
syscalls.list | ||
sysdep-cancel.h | ||
truncate64.c | ||
umount.c | ||
xstat64.c |