about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-02-06 00:36:14 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-02-06 00:36:14 +0000
commite76def72eb74ddc4fcf2b1630f5da742ddbd811d (patch)
treeac9ad86990781947978f36451edc6b653a05bf75
parent92669d6ee3f25b3ca4cb227d194900489f895432 (diff)
downloadglibc-e76def72eb74ddc4fcf2b1630f5da742ddbd811d.tar.gz
glibc-e76def72eb74ddc4fcf2b1630f5da742ddbd811d.tar.xz
glibc-e76def72eb74ddc4fcf2b1630f5da742ddbd811d.zip
Add MAP_SYNC from Linux 4.15.
This patch adds the MAP_SYNC macro from Linux 4.15 to various
bits/mman.h headers.  Note that this is *not* added to all
architectures: in Linux 4.15, this macro is only in
asm-generic/mman.h, and only some architectures' asm/mman.h include
the asm-generic file - the architectures not using the asm-generic
file will need their own values of MAP_SYNC allocated to support this
functionality (some of them also already have conflicting mmap flags
so the value there will have to be different from the generic
0x80000).  Specifically, for glibc architectures, alpha hppa mips
powerpc sparc tile lack allocations of values for MAP_SYNC.

Tested for x86_64.

	* sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC]
	(MAP_SYNC): New macro.
	* sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] (MAP_SYNC):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC]
	(MAP_SYNC): Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC]
	(MAP_SYNC): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC]
	(MAP_SYNC): Likewise.
	* sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC]
	(MAP_SYNC): Likewise.
	* sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC]
	(MAP_SYNC): Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC]
	(MAP_SYNC): Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] (MAP_SYNC):
	Likewise.
	* sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] (MAP_SYNC):
	Likewise.
-rw-r--r--ChangeLog21
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/mman.h2
11 files changed, 41 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 115d3cbe03..0022ea0450 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,26 @@
 2018-02-06  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC]
+	(MAP_SYNC): New macro.
+	* sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] (MAP_SYNC):
+	Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC]
+	(MAP_SYNC): Likewise.
+	* sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC]
+	(MAP_SYNC): Likewise.
+	* sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC]
+	(MAP_SYNC): Likewise.
+	* sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC]
+	(MAP_SYNC): Likewise.
+	* sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC]
+	(MAP_SYNC): Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC]
+	(MAP_SYNC): Likewise.
+	* sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] (MAP_SYNC):
+	Likewise.
+	* sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] (MAP_SYNC):
+	Likewise.
+
 	* sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_MISC]
 	(MAP_SHARED_VALIDATE): New macro.
 	* sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC]
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
index 83ff48cdda..9ad8a601f9 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/aarch64/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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the mapping.  */
 #endif
 
 
diff --git a/sysdeps/unix/sysv/linux/arm/bits/mman.h b/sysdeps/unix/sysv/linux/arm/bits/mman.h
index 9e059e6d06..be71c82e16 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/mman.h
@@ -34,6 +34,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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the mapping.  */
 #endif
 
 /* Include generic Linux declarations.  */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/mman.h b/sysdeps/unix/sysv/linux/ia64/bits/mman.h
index cb64de4dd7..0f00a1a342 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/mman.h
@@ -35,6 +35,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_SYNC	  0x80000	/* Perform synchronous page
+					   faults for the 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 db26a44911..80cc2a677d 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/mman.h
@@ -34,6 +34,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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the 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 b820da1b92..8ca77b6b8f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/microblaze/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_SYNC           0x80000	/* Perform synchronous page
+					   faults for the mapping.  */
 #endif
 
 /* Include generic Linux declarations.  */
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/mman.h b/sysdeps/unix/sysv/linux/nios2/bits/mman.h
index b7c27b8713..987e47951c 100644
--- a/sysdeps/unix/sysv/linux/nios2/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/nios2/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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the mapping.  */
 #endif
 
 /* Include generic Linux declarations.  */
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/mman.h b/sysdeps/unix/sysv/linux/riscv/bits/mman.h
index 0e64f1eea7..84257723b4 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/mman.h
@@ -30,6 +30,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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the 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 4b926e8cd7..cdd7a63530 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/mman.h
@@ -35,6 +35,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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the 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 c5844dcc80..e22be10682 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/mman.h
@@ -34,6 +34,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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the mapping.  */
 #endif
 
 /* Include generic Linux declarations.  */
diff --git a/sysdeps/unix/sysv/linux/x86/bits/mman.h b/sysdeps/unix/sysv/linux/x86/bits/mman.h
index fb4737a3a7..ebfc0c7bd1 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/mman.h
@@ -39,6 +39,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_SYNC	0x80000		/* Perform synchronous page
+					   faults for the mapping.  */
 #endif
 
 /* Include generic Linux declarations.  */