]> sourceware.org Git - glibc.git/commitdiff
Use bits/mman-linux.h for hppa.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 4 Oct 2018 19:47:23 +0000 (19:47 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 4 Oct 2018 19:47:23 +0000 (19:47 +0000)
hppa currently has a bits/mman.h that does not include
bits/mman-linux.h, unlike all other architectures using the Linux
kernel.  This sort of variation between architectures is generally
unhelpful when making global changes for new constants added to new
Linux kernel releases.

This patch changes hppa to use bits/mman-linux.h, overriding constants
with different values as necessary (including with #undef after
bits/mman.h inclusion when needed, as already done for alpha).  While
there could possibly be further improvements through e.g. splitting
more sets of definitions into separate bits/ headers, I think this is
still an improvement on the current state.  diffstat shows 27 lines
added, 51 deleted (and some of that is actually existing lines moving
to a different place in the file).

Tested with build-many-glibcs.py for hppa-linux-gnu.

* sysdeps/unix/sysv/linux/hppa/bits/mman.h: Include
<bits/mman-linux.h>.
(PROT_READ): Don't define here.
(PROT_WRITE): Likewise.
(PROT_EXEC): Likewise.
(PROT_NONE): Likewise.
(PROT_GROWSDOWN): Likewise.
(PROT_GROWSUP): Likewise.
(MAP_SHARED): Likewise.
(MAP_PRIVATE): Likewise.
[__USE_MISC] (MAP_SHARED_VALIDATE): Likewise.
[__USE_MISC] (MAP_FILE): Likewise.
[__USE_MISC] (MAP_ANONYMOUS): Likewise.
[__USE_MISC] (MAP_ANON): Likewise.
[__USE_MISC] (MAP_HUGE_SHIFT): Likewise.
[__USE_MISC] (MAP_HUGE_MASK): Likewise.
(MCL_CURRENT): Likewise.
(MCL_FUTURE): Likewise.
(MCL_ONFAULT): Likewise.
[__USE_MISC] (MADV_NORMAL): Likewise.
[__USE_MISC] (MADV_RANDOM): Likewise.
[__USE_MISC] (MADV_SEQUENTIAL): Likewise.
[__USE_MISC] (MADV_WILLNEED): Likewise.
[__USE_MISC] (MADV_DONTNEED): Likewise.
[__USE_MISC] (MADV_FREE): Likewise.
[__USE_MISC] (MADV_REMOVE): Likewise.
[__USE_MISC] (MADV_DONTFORK): Likewise.
[__USE_MISC] (MADV_DOFORK): Likewise.
[__USE_MISC] (MADV_HWPOISON): Likewise.
[__USE_XOPEN2K] (POSIX_MADV_NORMAL): Likewise.
[__USE_XOPEN2K] (POSIX_MADV_RANDOM): Likewise.
[__USE_XOPEN2K] (POSIX_MADV_SEQUENTIAL): Likewise.
[__USE_XOPEN2K] (POSIX_MADV_WILLNEED): Likewise.
[__USE_XOPEN2K] (POSIX_MADV_DONTNEED): Likewise.
(__MAP_ANONYMOUS): New macro.
[__USE_MISC] (MAP_TYPE): Undefine and redefine after
<bits/mman-linux.h> inclusion.
(MAP_FIXED): Likewise.
(MS_SYNC): Likewise.
(MS_ASYNC): Likewise.
(MS_INVALIDATE): Likewise.
[__USE_MISC] (MADV_MERGEABLE): Likewise.
[__USE_MISC] (MADV_UNMERGEABLE): Likewise.
[__USE_MISC] (MADV_HUGEPAGE): Likewise.
[__USE_MISC] (MADV_NOHUGEPAGE): Likewise.
[__USE_MISC] (MADV_DONTDUMP): Likewise.
[__USE_MISC] (MADV_DODUMP): Likewise.
[__USE_MISC] (MADV_WIPEONFORK): Likewise.
[__USE_MISC] (MADV_KEEPONFORK): Likewise.

ChangeLog
sysdeps/unix/sysv/linux/hppa/bits/mman.h

index 8f9bac2565a35c3fd4f76775754bcc840e58e58b..4c865ab43f5ae15703e780eba0f02ed9b4319c1e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,55 @@
 2018-10-04  Joseph Myers  <joseph@codesourcery.com>
 
+       * sysdeps/unix/sysv/linux/hppa/bits/mman.h: Include
+       <bits/mman-linux.h>.
+       (PROT_READ): Don't define here.
+       (PROT_WRITE): Likewise.
+       (PROT_EXEC): Likewise.
+       (PROT_NONE): Likewise.
+       (PROT_GROWSDOWN): Likewise.
+       (PROT_GROWSUP): Likewise.
+       (MAP_SHARED): Likewise.
+       (MAP_PRIVATE): Likewise.
+       [__USE_MISC] (MAP_SHARED_VALIDATE): Likewise.
+       [__USE_MISC] (MAP_FILE): Likewise.
+       [__USE_MISC] (MAP_ANONYMOUS): Likewise.
+       [__USE_MISC] (MAP_ANON): Likewise.
+       [__USE_MISC] (MAP_HUGE_SHIFT): Likewise.
+       [__USE_MISC] (MAP_HUGE_MASK): Likewise.
+       (MCL_CURRENT): Likewise.
+       (MCL_FUTURE): Likewise.
+       (MCL_ONFAULT): Likewise.
+       [__USE_MISC] (MADV_NORMAL): Likewise.
+       [__USE_MISC] (MADV_RANDOM): Likewise.
+       [__USE_MISC] (MADV_SEQUENTIAL): Likewise.
+       [__USE_MISC] (MADV_WILLNEED): Likewise.
+       [__USE_MISC] (MADV_DONTNEED): Likewise.
+       [__USE_MISC] (MADV_FREE): Likewise.
+       [__USE_MISC] (MADV_REMOVE): Likewise.
+       [__USE_MISC] (MADV_DONTFORK): Likewise.
+       [__USE_MISC] (MADV_DOFORK): Likewise.
+       [__USE_MISC] (MADV_HWPOISON): Likewise.
+       [__USE_XOPEN2K] (POSIX_MADV_NORMAL): Likewise.
+       [__USE_XOPEN2K] (POSIX_MADV_RANDOM): Likewise.
+       [__USE_XOPEN2K] (POSIX_MADV_SEQUENTIAL): Likewise.
+       [__USE_XOPEN2K] (POSIX_MADV_WILLNEED): Likewise.
+       [__USE_XOPEN2K] (POSIX_MADV_DONTNEED): Likewise.
+       (__MAP_ANONYMOUS): New macro.
+       [__USE_MISC] (MAP_TYPE): Undefine and redefine after
+       <bits/mman-linux.h> inclusion.
+       (MAP_FIXED): Likewise.
+       (MS_SYNC): Likewise.
+       (MS_ASYNC): Likewise.
+       (MS_INVALIDATE): Likewise.
+       [__USE_MISC] (MADV_MERGEABLE): Likewise.
+       [__USE_MISC] (MADV_UNMERGEABLE): Likewise.
+       [__USE_MISC] (MADV_HUGEPAGE): Likewise.
+       [__USE_MISC] (MADV_NOHUGEPAGE): Likewise.
+       [__USE_MISC] (MADV_DONTDUMP): Likewise.
+       [__USE_MISC] (MADV_DODUMP): Likewise.
+       [__USE_MISC] (MADV_WIPEONFORK): Likewise.
+       [__USE_MISC] (MADV_KEEPONFORK): Likewise.
+
        [BZ #23735]
        * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NO_MATH_REDIRECT):
        Define.
index fd07a658682c6b4da566690847a1ef2ee085e01a..deecac050415d16099ce3a17a9c3bb610b412c36 100644 (file)
 
 /* These are taken from the kernel definitions.  */
 
-#define PROT_READ      0x1             /* Page can be read */
-#define PROT_WRITE     0x2             /* Page can be written */
-#define PROT_EXEC      0x4             /* Page can be executed */
-#define PROT_NONE      0x0             /* Page can not be accessed */
-#define PROT_GROWSDOWN 0x01000000      /* Extend change to start of
-                                          growsdown vma (mprotect only).  */
-#define PROT_GROWSUP   0x02000000      /* Extend change to start of
-                                          growsup vma (mprotect only).  */
-
-#define MAP_SHARED     0x01            /* Share changes */
-#define MAP_PRIVATE    0x02            /* Changes are private */
-#ifdef __USE_MISC
-# define MAP_SHARED_VALIDATE   0x03    /* Share changes and validate
-                                          extension flags.  */
-# define MAP_TYPE      0x2b            /* Mask for type of mapping */
-#endif
-
 /* Other flags.  */
-#define MAP_FIXED      0x04            /* Interpret addr exactly */
+#define __MAP_ANONYMOUS        0x10            /* Don't use a file */
 #ifdef __USE_MISC
-# define MAP_FILE      0x0
-# define MAP_ANONYMOUS 0x10            /* Don't use a file */
-# define MAP_ANON      MAP_ANONYMOUS
 # define MAP_VARIABLE  0
-/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.  */
-# define MAP_HUGE_SHIFT        26
-# define MAP_HUGE_MASK 0x3f
 #endif
 
 /* These are Linux-specific.  */
                                           underlying mapping.  */
 #endif
 
+/* Advice to "madvise"  */
+#ifdef __USE_MISC
+# define MADV_SOFT_OFFLINE 101 /* Soft offline page for testing.  */
+#endif
+
+#include <bits/mman-linux.h>
+
+#ifdef __USE_MISC
+# undef MAP_TYPE
+# define MAP_TYPE      0x2b            /* Mask for type of mapping */
+#endif
+
+#undef MAP_FIXED
+#define MAP_FIXED      0x04            /* Interpret addr exactly */
+
 /* Flags to "msync"  */
+#undef MS_SYNC
 #define MS_SYNC                1               /* Synchronous memory sync */
+#undef MS_ASYNC
 #define MS_ASYNC       2               /* Sync memory asynchronously */
+#undef MS_INVALIDATE
 #define MS_INVALIDATE  4               /* Invalidate the caches */
 
-/* Flags to "mlockall"  */
-#define MCL_CURRENT    1               /* Lock all current mappings */
-#define MCL_FUTURE     2               /* Lock all future mappings */
-#define MCL_ONFAULT    4               /* Lock all pages that are faulted in */
-
 /* Advice to "madvise"  */
 #ifdef __USE_MISC
-# define MADV_NORMAL     0     /* No further special treatment */
-# define MADV_RANDOM     1     /* Expect random page references */
-# define MADV_SEQUENTIAL  2    /* Expect sequential page references */
-# define MADV_WILLNEED   3     /* Will need these pages */
-# define MADV_DONTNEED   4     /* Dont need these pages */
-# define MADV_FREE       8     /* Free pages only if memory pressure.  */
-# define MADV_REMOVE     9     /* Remove these pages and resources.  */
-# define MADV_DONTFORK  10     /* Do not inherit across fork.  */
-# define MADV_DOFORK    11     /* Do inherit across fork.  */
+# undef MADV_MERGEABLE
 # define MADV_MERGEABLE   65   /* KSM may merge identical pages */
+# undef MADV_UNMERGEABLE
 # define MADV_UNMERGEABLE 66   /* KSM may not merge identical pages */
+# undef MADV_HUGEPAGE
 # define MADV_HUGEPAGE  67     /* Worth backing with hugepages */
+# undef MADV_NOHUGEPAGE
 # define MADV_NOHUGEPAGE 68    /* Not worth backing with hugepages */
+# undef MADV_DONTDUMP
 # define MADV_DONTDUMP  69     /* Explicity exclude from the core dump,
                                   overrides the coredump filter bits */
+# undef MADV_DODUMP
 # define MADV_DODUMP    70     /* Clear the MADV_NODUMP flag */
+# undef MADV_WIPEONFORK
 # define MADV_WIPEONFORK 71    /* Zero memory on fork, child only.  */
+# undef MADV_KEEPONFORK
 # define MADV_KEEPONFORK 72    /* Undo MADV_WIPEONFORK.  */
-# define MADV_HWPOISON  100    /* Poison a page for testing.  */
-# define MADV_SOFT_OFFLINE 101 /* Soft offline page for testing.  */
 #endif
-
-/* The POSIX people had to invent similar names for the same things.  */
-#ifdef __USE_XOPEN2K
-# define POSIX_MADV_NORMAL     0 /* No further special treatment.  */
-# define POSIX_MADV_RANDOM     1 /* Expect random page references.  */
-# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references.  */
-# define POSIX_MADV_WILLNEED   3 /* Will need these pages.  */
-# define POSIX_MADV_DONTNEED   4 /* Don't need these pages.  */
-#endif
-
-#include <bits/mman-shared.h>
This page took 0.073185 seconds and 5 git commands to generate.