From bef1cbf4da54aeb213e2542ccfdfebb22fb15820 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 5 Jun 2018 11:04:46 +0000 Subject: Add MAP_FIXED_NOREPLACE from Linux 4.17 to bits/mman.h. Linux 4.17 adds MAP_FIXED_NOREPLACE (value 0x100000 on most architectures, 0x200000 on alpha). This patch adds that macro to glibc's bits/mman.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): New macro. * sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/mips/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] (MAP_FIXED_NOREPLACE): Likewise. --- ChangeLog | 31 ++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/aarch64/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/alpha/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/arm/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/hppa/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/ia64/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/m68k/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/microblaze/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/mips/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/nios2/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/powerpc/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/riscv/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/s390/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/sh/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/sparc/bits/mman.h | 2 ++ sysdeps/unix/sysv/linux/x86/bits/mman.h | 2 ++ 16 files changed, 61 insertions(+) diff --git a/ChangeLog b/ChangeLog index bc23518aa6..ce40d41c8b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,36 @@ 2018-06-05 Joseph Myers + * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): New macro. + * sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/mips/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] + (MAP_FIXED_NOREPLACE): Likewise. + * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel version to 4.17. diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h index 9ad8a601f9..577566044d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h +++ b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h @@ -38,6 +38,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif diff --git a/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/sysdeps/unix/sysv/linux/alpha/bits/mman.h index 935804b84c..3abfd8449f 100644 --- a/sysdeps/unix/sysv/linux/alpha/bits/mman.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/mman.h @@ -36,6 +36,8 @@ # define MAP_NONBLOCK 0x40000 /* Do not block on IO. */ # define MAP_STACK 0x80000 /* Allocation is for a stack. */ # define MAP_HUGETLB 0x100000 /* Create huge page mapping. */ +# define MAP_FIXED_NOREPLACE 0x200000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Flags for `mlockall'. */ diff --git a/sysdeps/unix/sysv/linux/arm/bits/mman.h b/sysdeps/unix/sysv/linux/arm/bits/mman.h index be71c82e16..63813dcee7 100644 --- a/sysdeps/unix/sysv/linux/arm/bits/mman.h +++ b/sysdeps/unix/sysv/linux/arm/bits/mman.h @@ -36,6 +36,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/sysdeps/unix/sysv/linux/hppa/bits/mman.h index 380be7b789..1d2a175239 100644 --- a/sysdeps/unix/sysv/linux/hppa/bits/mman.h +++ b/sysdeps/unix/sysv/linux/hppa/bits/mman.h @@ -62,6 +62,8 @@ # define MAP_NONBLOCK 0x20000 /* Do not block on IO */ # define MAP_STACK 0x40000 /* Create for process/thread stacks */ # define MAP_HUGETLB 0x80000 /* Create a huge page mapping */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Flags to "msync" */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/mman.h b/sysdeps/unix/sysv/linux/ia64/bits/mman.h index 0f00a1a342..51071fda56 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/mman.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/mman.h @@ -37,6 +37,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/m68k/bits/mman.h b/sysdeps/unix/sysv/linux/m68k/bits/mman.h index 80cc2a677d..8d355feda9 100644 --- a/sysdeps/unix/sysv/linux/m68k/bits/mman.h +++ b/sysdeps/unix/sysv/linux/m68k/bits/mman.h @@ -36,6 +36,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/mman.h b/sysdeps/unix/sysv/linux/microblaze/bits/mman.h index 8ca77b6b8f..fe1b376720 100644 --- a/sysdeps/unix/sysv/linux/microblaze/bits/mman.h +++ b/sysdeps/unix/sysv/linux/microblaze/bits/mman.h @@ -38,6 +38,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/mips/bits/mman.h b/sysdeps/unix/sysv/linux/mips/bits/mman.h index ed8287fb00..102bc6dd03 100644 --- a/sysdeps/unix/sysv/linux/mips/bits/mman.h +++ b/sysdeps/unix/sysv/linux/mips/bits/mman.h @@ -34,6 +34,8 @@ # define MAP_NONBLOCK 0x20000 /* do not block on IO */ # define MAP_STACK 0x40000 /* Allocation is for a stack. */ # define MAP_HUGETLB 0x80000 /* Create huge page mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif #define __MAP_ANONYMOUS 0x0800 diff --git a/sysdeps/unix/sysv/linux/nios2/bits/mman.h b/sysdeps/unix/sysv/linux/nios2/bits/mman.h index 987e47951c..50f92b4a86 100644 --- a/sysdeps/unix/sysv/linux/nios2/bits/mman.h +++ b/sysdeps/unix/sysv/linux/nios2/bits/mman.h @@ -38,6 +38,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h index b8a01fad72..e652467c8c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h @@ -36,6 +36,8 @@ # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ # define MAP_STACK 0x20000 /* Allocation is for a stack. */ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Flags for `mlockall'. */ diff --git a/sysdeps/unix/sysv/linux/riscv/bits/mman.h b/sysdeps/unix/sysv/linux/riscv/bits/mman.h index 84257723b4..c01fb00728 100644 --- a/sysdeps/unix/sysv/linux/riscv/bits/mman.h +++ b/sysdeps/unix/sysv/linux/riscv/bits/mman.h @@ -32,6 +32,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/s390/bits/mman.h b/sysdeps/unix/sysv/linux/s390/bits/mman.h index cdd7a63530..f103c1a65b 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/mman.h +++ b/sysdeps/unix/sysv/linux/s390/bits/mman.h @@ -37,6 +37,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/sh/bits/mman.h b/sysdeps/unix/sysv/linux/sh/bits/mman.h index e22be10682..9015957e65 100644 --- a/sysdeps/unix/sysv/linux/sh/bits/mman.h +++ b/sysdeps/unix/sysv/linux/sh/bits/mman.h @@ -36,6 +36,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ diff --git a/sysdeps/unix/sysv/linux/sparc/bits/mman.h b/sysdeps/unix/sysv/linux/sparc/bits/mman.h index f0a4797d8b..3a3ffb9946 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/mman.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/mman.h @@ -36,6 +36,8 @@ # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ # define MAP_STACK 0x20000 /* Allocation is for a stack. */ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Flags for `mlockall'. */ diff --git a/sysdeps/unix/sysv/linux/x86/bits/mman.h b/sysdeps/unix/sysv/linux/x86/bits/mman.h index ebfc0c7bd1..d897b8a2b2 100644 --- a/sysdeps/unix/sysv/linux/x86/bits/mman.h +++ b/sysdeps/unix/sysv/linux/x86/bits/mman.h @@ -41,6 +41,8 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ # define MAP_SYNC 0x80000 /* Perform synchronous page faults for the mapping. */ +# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap + underlying mapping. */ #endif /* Include generic Linux declarations. */ -- cgit 1.4.1