glibc/sysdeps/unix/sysv/linux/x86_64
Adhemerval Zanella 158d5fa0e1 Consolidate Linux mmap implementation (BZ#21270)
This patch consolidates all Linux mmap implementations on default
sysdeps/unix/sysv/linux/mmap{64}.c one.  To accomodate all required
architecture specific requeriments a new internal header is created
(mmap_internal.h) where each architecture add its specific code
requirements.  Currently only x86_64 (to define MMAP_PREPARE to add
MAP_32BITS), s390 (which have a different kernel ABI for mmap), m68k
(which have variable minimum page sizes), and MIPS n32 (which zero
extend the offset to handle negative one correctly) redefine the new
header.

The patch also fixes BZ#21270 where default mmap64 on architectures
which uses mmap2 silent truncates large offsets value (larger than
1 << (page shift + 8 * sizeof (off_t)) or 1<<44 on architectures with
4096 bytes page size).  The new consolidate implementation returns
EINVAL as allowed by POSIX.

It also adds a tests for on current tst-mmap-offset one.  I have run
a full make check on x86_64, x86_64-32, i686, aarch64, armhf, powerpc,
powerpc64le, sparc64, and sparcv9 without any regressions.  I also ran
some basic tests (tst-mmap-offset) on sh4, m68k, and on qemu simulated
MIPS32 and MIPS64.

	[BZ #21270]
	* posix/tst-mmap-offset.c (do_prepare): New function.
	(do_test): Rename to do_test_bz18877 and use FAIL_RET.
	(do_test_bz21270): New function.
	* sysdeps/unix/sysv/linux/aarch64/mmap.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/mmap.c: Remove file.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/mmap.c: Likewise.
	* sysdeps/unix/sysv/linux/hppa/mmap.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/mmap.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/mmap.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/mmap.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/mmap.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/mmap.c: Likewise.
	* sysdeps/unix/sysv/linux/mmap_internal.h: New file.
	* sysdeps/unix/sysv/linux/m68k/mmap_internal.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/mmap_internal.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list: Remove mmap
	from auto-generation list.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/mmap.c: New file.
	* sysdeps/unix/sysv/linux/mmap64.c (__mmap64): Add check for invalid
	offsets and support for mmap2 syscall.
2017-04-12 11:04:28 -03:00
..
64 Consolidate Linux mmap implementation (BZ#21270) 2017-04-12 11:04:28 -03:00
x32 conformtest: Add x32 XFAILs for mq_attr element types (bug 21279). 2017-03-20 21:30:28 +00:00
____longjmp_chk.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
__start_context.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
arch-fork.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
brk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
cancellation.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clone.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
compat-timer.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
configure Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac. 2014-06-24 20:53:03 +00:00
configure.ac Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac. 2014-06-24 20:53:03 +00:00
dl-cache.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-procinfo.c Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
dl-procinfo.h Remove IS_IN_ldconfig 2014-11-24 11:41:43 +05:30
get_clockfreq.c Update. 2003-05-09 07:53:33 +00:00
getcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Implies NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
init-first.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ipc_priv.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel_stat.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ldconfig.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ldd-rewrite.sed Add x32 support to ldd-rewrite.sed 2012-03-19 15:18:44 -07:00
libc-cancellation.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libc-lowlevellock.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libmvec.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
librt-cancellation.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lll_timedlock_wait.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lll_timedwait_tid.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lowlevellock.h robust mutexes: Fix broken x86 assembly by removing it 2017-01-13 17:16:07 +01:00
lowlevellock.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
makecontext.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile Add x86 32 bit vDSO time function support 2015-01-12 16:03:58 -02:00
profil-counter.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pthread_setaffinity.c Move remaining nptl/sysdeps/unix/sysv/linux/x86_64/ files. 2014-05-14 12:33:43 -07:00
readelflib.c Add x32 support to ldconfig 2012-03-16 15:20:45 -07:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sched_setaffinity.c * sysdeps/unix/sysv/linux/sched_setaffinity.c 2007-05-10 23:38:55 +00:00
setcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigaction.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigaltstack-offsets.sym Use R*_LP, sizeSS, oSS_FLAGS, oSS_SP and oSS_SIZE 2012-05-15 16:43:11 -07:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigpending.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigprocmask.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
swapcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscalls.list Consolidate Linux sendto implementation 2017-03-09 15:22:06 +01:00
sysdep-cancel.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
timer_create.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
timer_delete.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
timer_getoverr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
timer_gettime.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
timer_settime.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ucontext_i.sym . 2007-07-31 13:33:18 +00:00
umount.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Versions Revert {send,sendm,recv,recvm}msg conformance changes 2016-06-10 11:58:16 -03:00
vfork.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00