This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Add MAP_FIXED_NOREPLACE from Linux 4.17 to bits/mman.h
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Mon, 4 Jun 2018 21:29:59 +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.
2018-06-04 Joseph Myers <joseph@codesourcery.com>
* 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.
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
index 9ad8a60..5775660 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 935804b..3abfd84 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 be71c82..63813dc 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 380be7b..1d2a175 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 0f00a1a..51071fd 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 80cc2a6..8d355fe 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 8ca77b6..fe1b376 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 ed8287f..102bc6d 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 987e479..50f92b4 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 b8a01fa..e652467 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 8425772..c01fb00 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 cdd7a63..f103c1a 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 e22be10..9015957 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 f0a4797..3a3ffb9 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 ebfc0c7..d897b8a 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. */
--
Joseph S. Myers
joseph@codesourcery.com