Add MADV_WIPEONFORK, MADV_KEEPONFORK from Linux 4.14

Message ID alpine.DEB.2.20.1711151830480.15924@digraph.polyomino.org.uk
State New, archived
Headers

Commit Message

Joseph Myers Nov. 15, 2017, 6:31 p.m. UTC
  This patch adds the new MADV_WIPEONFORK and MADV_KEEPONFORK from Linux
4.14 to bits/mman-linux.h (and bits/mman.h in the hppa case).  Note
there are further hppa MADV_* changes in 4.14; I plan a separate glibc
patch for those.

Tested for x86_64.

2017-11-15  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/sysv/linux/bits/mman-linux.h
	[__USE_MISC] (MADV_WIPEONFORK): New macro.
	[__USE_MISC] (MADV_KEEPONFORK): Likewise.
	* sysdeps/unix/sysv/linux/hppa/bits/mman.h
	[__USE_MISC] (MADV_WIPEONFORK): Likewise.
	[__USE_MISC] (MADV_KEEPONFORK): Likewise.
  

Comments

Florian Weimer Nov. 15, 2017, 6:38 p.m. UTC | #1
On 11/15/2017 07:31 PM, Joseph Myers wrote:
> 2017-11-15  Joseph Myers<joseph@codesourcery.com>
> 
> 	* sysdeps/unix/sysv/linux/bits/mman-linux.h
> 	[__USE_MISC] (MADV_WIPEONFORK): New macro.
> 	[__USE_MISC] (MADV_KEEPONFORK): Likewise.
> 	* sysdeps/unix/sysv/linux/hppa/bits/mman.h
> 	[__USE_MISC] (MADV_WIPEONFORK): Likewise.
> 	[__USE_MISC] (MADV_KEEPONFORK): Likewise.

I double-checked the constants against the kernel sources. Looks good.

Thanks,
Florian
  

Patch

diff --git a/sysdeps/unix/sysv/linux/bits/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h
index b091181..78c07c8 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h
@@ -89,6 +89,8 @@ 
 # define MADV_DONTDUMP	  16    /* Explicity exclude from the core dump,
                                    overrides the coredump filter bits.  */
 # define MADV_DODUMP	  17	/* Clear the MADV_DONTDUMP flag.  */
+# define MADV_WIPEONFORK  18	/* Zero memory on fork, child only.  */
+# define MADV_KEEPONFORK  19	/* Undo MADV_WIPEONFORK.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
index acf7002..4ad9153 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
@@ -99,6 +99,8 @@ 
 # define MADV_DONTDUMP	 69	/* Explicity exclude from the core dump,
 				   overrides the coredump filter bits */
 # define MADV_DODUMP	 70	/* Clear the MADV_NODUMP flag */
+# define MADV_WIPEONFORK 71	/* Zero memory on fork, child only.  */
+# define MADV_KEEPONFORK 72	/* Undo MADV_WIPEONFORK.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */