Expose all MAP_ constants in <sys/mman.h> unconditionally (bug 29375)
authorAndreas Schwab <schwab@suse.de>
Tue, 16 Aug 2022 13:18:11 +0000 (15:18 +0200)
committerAndreas Schwab <schwab@suse.de>
Mon, 10 Oct 2022 07:30:24 +0000 (09:30 +0200)
POSIX reserves the MAP_ prefix for <sys/mman.h>, so there is no need to
conditionalize their definitions on feature test macros.

bits/mman.h
sysdeps/unix/sysv/linux/alpha/bits/mman.h
sysdeps/unix/sysv/linux/bits/mman-linux.h
sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
sysdeps/unix/sysv/linux/hppa/bits/mman.h
sysdeps/unix/sysv/linux/ia64/bits/mman.h
sysdeps/unix/sysv/linux/mips/bits/mman.h
sysdeps/unix/sysv/linux/powerpc/bits/mman.h
sysdeps/unix/sysv/linux/sparc/bits/mman.h
sysdeps/unix/sysv/linux/x86/bits/mman.h

index a55fd9a..e2aac6f 100644 (file)
 /* Flags contain mapping type, sharing type and options.  */
 
 /* Mapping type (must choose one and only one of these).  */
-#ifdef __USE_MISC
-# define MAP_FILE       0x0001 /* Mapped from a file or device.  */
-# define MAP_ANON       0x0002 /* Allocated from anonymous virtual memory.  */
-# define MAP_TYPE       0x000f /* Mask for type field.  */
-# define MAP_ANONYMOUS  MAP_ANON /* Linux name. */
-#endif
+#define MAP_FILE        0x0001 /* Mapped from a file or device.  */
+#define MAP_ANON        0x0002 /* Allocated from anonymous virtual memory.  */
+#define MAP_TYPE        0x000f /* Mask for type field.  */
+#define MAP_ANONYMOUS   MAP_ANON /* Linux name. */
 
 /* Sharing types (must choose one and only one of these).  */
-#ifdef __USE_MISC
-# define MAP_COPY       0x0020 /* Virtual copy of region at mapping time.  */
-#endif
+#define MAP_COPY        0x0020 /* Virtual copy of region at mapping time.  */
 #define        MAP_SHARED       0x0010 /* Share changes.  */
 #define        MAP_PRIVATE      0x0000 /* Changes private; copy pages on write.  */
 
 /* Other flags.  */
 #define        MAP_FIXED        0x0100 /* Map address must be exactly as requested. */
-#ifdef __USE_MISC
-# define MAP_NOEXTEND   0x0200 /* For MAP_FILE, don't change file size.  */
-# define MAP_HASSEMPHORE 0x0400        /* Region may contain semaphores.  */
-# define MAP_INHERIT    0x0800 /* Region is retained after exec.  */
-#endif
+#define MAP_NOEXTEND    0x0200 /* For MAP_FILE, don't change file size.  */
+#define MAP_HASSEMPHORE 0x0400 /* Region may contain semaphores.  */
+#define MAP_INHERIT     0x0800 /* Region is retained after exec.  */
 
 /* Advice to `madvise'.  */
 #ifdef __USE_MISC
index f74a3bf..fdfb6f5 100644 (file)
 #define __MAP_ANONYMOUS          0x10          /* Don't use a file.  */
 
 /* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN   0x01000       /* Stack-like segment.  */
-# define MAP_DENYWRITE   0x02000       /* ETXTBSY */
-# define MAP_EXECUTABLE          0x04000       /* Mark it as an executable.  */
-# define MAP_LOCKED      0x08000       /* Lock the mapping.  */
-# define MAP_NORESERVE   0x10000       /* Don't check for reservations.  */
-# define MAP_POPULATE    0x20000       /* Populate (prefault) pagetables.  */
-# 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
+#define MAP_GROWSDOWN    0x01000       /* Stack-like segment.  */
+#define MAP_DENYWRITE    0x02000       /* ETXTBSY */
+#define MAP_EXECUTABLE   0x04000       /* Mark it as an executable.  */
+#define MAP_LOCKED       0x08000       /* Lock the mapping.  */
+#define MAP_NORESERVE    0x10000       /* Don't check for reservations.  */
+#define MAP_POPULATE     0x20000       /* Populate (prefault) pagetables.  */
+#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'.  */
 #define MCL_CURRENT      8192
index cb5ad30..1fb7f88 100644 (file)
 /* Sharing types (must choose one and only one of these).  */
 #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
+#define MAP_SHARED_VALIDATE    0x03    /* Share changes and validate
                                           extension flags.  */
-# define MAP_TYPE      0x0f            /* Mask for type of mapping.  */
-#endif
+#define MAP_TYPE       0x0f            /* Mask for type of mapping.  */
 
 /* Other flags.  */
 #define MAP_FIXED      0x10            /* Interpret addr exactly.  */
-#ifdef __USE_MISC
-# define MAP_FILE      0
-# ifdef __MAP_ANONYMOUS
-#  define MAP_ANONYMOUS        __MAP_ANONYMOUS /* Don't use a file.  */
-# else
-#  define MAP_ANONYMOUS        0x20            /* Don't use a file.  */
-# endif
-# define MAP_ANON      MAP_ANONYMOUS
-/* 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
+#define MAP_FILE       0
+#ifdef __MAP_ANONYMOUS
+# define MAP_ANONYMOUS __MAP_ANONYMOUS /* Don't use a file.  */
+#else
+# define MAP_ANONYMOUS 0x20            /* Don't use a file.  */
 #endif
+#define MAP_ANON       MAP_ANONYMOUS
+/* 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
 
 /* Flags to `msync'.  */
 #define MS_ASYNC       1               /* Sync memory asynchronously.  */
index ffb28d6..b93c3e0 100644 (file)
    includes asm-generic/mman.h without any changes to the values of
    the MAP_* flags defined in that header.  */
 
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100         /* Stack-like segment.  */
-# define MAP_DENYWRITE 0x00800         /* ETXTBSY.  */
-# define MAP_EXECUTABLE        0x01000         /* Mark it as an executable.  */
-# define MAP_LOCKED    0x02000         /* Lock the mapping.  */
-# define MAP_NORESERVE 0x04000         /* Don't check for reservations.  */
-# define MAP_POPULATE  0x08000         /* Populate (prefault) pagetables.  */
-# 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
+#define MAP_GROWSDOWN  0x00100         /* Stack-like segment.  */
+#define MAP_DENYWRITE  0x00800         /* ETXTBSY.  */
+#define MAP_EXECUTABLE 0x01000         /* Mark it as an executable.  */
+#define MAP_LOCKED     0x02000         /* Lock the mapping.  */
+#define MAP_NORESERVE  0x04000         /* Don't check for reservations.  */
+#define MAP_POPULATE   0x08000         /* Populate (prefault) pagetables.  */
+#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.  */
-# define MAP_FIXED_NOREPLACE 0x100000  /* MAP_FIXED but do not unmap
+#define MAP_FIXED_NOREPLACE 0x100000   /* MAP_FIXED but do not unmap
                                           underlying mapping.  */
-#endif
index 15167ba..acaa1cc 100644 (file)
 
 /* Other flags.  */
 #define __MAP_ANONYMOUS        0x10            /* Don't use a file */
-#ifdef __USE_MISC
-# define MAP_VARIABLE  0
-#endif
+#define MAP_VARIABLE   0
 
 /* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_DENYWRITE 0x0800          /* ETXTBSY */
-# define MAP_EXECUTABLE        0x1000          /* Mark it as an executable */
-# define MAP_LOCKED    0x2000          /* Pages are locked */
-# define MAP_NORESERVE 0x4000          /* Don't check for reservations */
-# define MAP_GROWSDOWN 0x8000          /* Stack-like segment */
-# define MAP_POPULATE  0x10000         /* Populate (prefault) pagetables */
-# 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
+#define MAP_DENYWRITE  0x0800          /* ETXTBSY */
+#define MAP_EXECUTABLE 0x1000          /* Mark it as an executable */
+#define MAP_LOCKED     0x2000          /* Pages are locked */
+#define MAP_NORESERVE  0x4000          /* Don't check for reservations */
+#define MAP_GROWSDOWN  0x8000          /* Stack-like segment */
+#define MAP_POPULATE   0x10000         /* Populate (prefault) pagetables */
+#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
 
 /* Advice to "madvise"  */
 #ifdef __USE_MISC
 
 #include <bits/mman-linux.h>
 
-#ifdef __USE_MISC
-# undef MAP_TYPE
-# define MAP_TYPE      0x2b            /* Mask for type of mapping */
-#endif
+#undef MAP_TYPE
+#define MAP_TYPE       0x2b            /* Mask for type of mapping */
 
 #undef MAP_FIXED
 #define MAP_FIXED      0x04            /* Interpret addr exactly */
index fec05c8..b02a277 100644 (file)
@@ -24,9 +24,7 @@
    But the kernel header is not namespace clean.  */
 
 /* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_GROWSUP     0x00200       /* Register stack-like segment */
-#endif
+#define MAP_GROWSUP      0x00200       /* Register stack-like segment */
 
 #include <bits/mman-map-flags-generic.h>
 
index c215ec9..2334372 100644 (file)
    But the kernel header is not namespace clean.  */
 
 /* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_NORESERVE 0x0400          /* don't check for reservations */
-# define MAP_GROWSDOWN 0x1000          /* stack-like segment */
-# define MAP_DENYWRITE 0x2000          /* ETXTBSY */
-# define MAP_EXECUTABLE        0x4000          /* mark it as an executable */
-# define MAP_LOCKED    0x8000          /* pages are locked */
-# define MAP_POPULATE   0x10000         /* populate (prefault) pagetables */
-# 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
+#define MAP_NORESERVE  0x0400          /* don't check for reservations */
+#define MAP_GROWSDOWN  0x1000          /* stack-like segment */
+#define MAP_DENYWRITE  0x2000          /* ETXTBSY */
+#define MAP_EXECUTABLE 0x4000          /* mark it as an executable */
+#define MAP_LOCKED     0x8000          /* pages are locked */
+#define MAP_POPULATE   0x10000         /* populate (prefault) pagetables */
+#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
 
 /* Include generic Linux declarations.  */
 #include <bits/mman-linux.h>
 
-#ifdef __USE_MISC
-# define MAP_RENAME    MAP_ANONYMOUS
-#endif
+#define MAP_RENAME     MAP_ANONYMOUS
index 9ec0197..d6f8333 100644 (file)
 #define PROT_SAO       0x10            /* Strong Access Ordering.  */
 
 /* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100         /* Stack-like segment.  */
-# define MAP_DENYWRITE 0x00800         /* ETXTBSY */
-# define MAP_EXECUTABLE        0x01000         /* Mark it as an executable.  */
-# define MAP_LOCKED    0x00080         /* Lock the mapping.  */
-# define MAP_NORESERVE 0x00040         /* Don't check for reservations.  */
-# define MAP_POPULATE  0x08000         /* Populate (prefault) pagetables.  */
-# 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
+#define MAP_GROWSDOWN  0x00100         /* Stack-like segment.  */
+#define MAP_DENYWRITE  0x00800         /* ETXTBSY */
+#define MAP_EXECUTABLE 0x01000         /* Mark it as an executable.  */
+#define MAP_LOCKED     0x00080         /* Lock the mapping.  */
+#define MAP_NORESERVE  0x00040         /* Don't check for reservations.  */
+#define MAP_POPULATE   0x08000         /* Populate (prefault) pagetables.  */
+#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.  */
-# define MAP_FIXED_NOREPLACE 0x100000  /* MAP_FIXED but do not unmap
+#define MAP_FIXED_NOREPLACE 0x100000   /* MAP_FIXED but do not unmap
                                           underlying mapping.  */
-#endif
 
 /* Flags for `mlockall'.  */
 #define MCL_CURRENT    0x2000          /* Lock all currently mapped pages.  */
index 6283e40..e7fc670 100644 (file)
 
 
 /* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x0200          /* Stack-like segment.  */
-# define MAP_DENYWRITE 0x0800          /* ETXTBSY */
-# define MAP_EXECUTABLE        0x1000          /* Mark it as an executable.  */
-# define MAP_LOCKED    0x0100          /* Lock the mapping.  */
-# define MAP_NORESERVE 0x0040          /* Don't check for reservations.  */
-# define _MAP_NEW      0x80000000      /* Binary compatibility with SunOS.  */
-# define MAP_POPULATE  0x8000          /* Populate (prefault) pagetables.  */
-# 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
+#define MAP_GROWSDOWN  0x0200          /* Stack-like segment.  */
+#define MAP_DENYWRITE  0x0800          /* ETXTBSY */
+#define MAP_EXECUTABLE 0x1000          /* Mark it as an executable.  */
+#define MAP_LOCKED     0x0100          /* Lock the mapping.  */
+#define MAP_NORESERVE  0x0040          /* Don't check for reservations.  */
+#define _MAP_NEW       0x80000000      /* Binary compatibility with SunOS.  */
+#define MAP_POPULATE   0x8000          /* Populate (prefault) pagetables.  */
+#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.  */
-# define MAP_FIXED_NOREPLACE 0x100000  /* MAP_FIXED but do not unmap
+#define MAP_FIXED_NOREPLACE 0x100000   /* MAP_FIXED but do not unmap
                                           underlying mapping.  */
-#endif
 
 /* Flags for `mlockall'.  */
 #define MCL_CURRENT    0x2000          /* Lock all currently mapped pages.  */
@@ -52,6 +50,4 @@
 #include <bits/mman-linux.h>
 
 /* Other flags.  */
-#ifdef __USE_MISC
-# define MAP_RENAME    MAP_ANONYMOUS
-#endif
+#define MAP_RENAME     MAP_ANONYMOUS
index 877be77..e03227c 100644 (file)
@@ -24,9 +24,7 @@
    But the kernel header is not namespace clean.  */
 
 /* Other flags.  */
-#ifdef __USE_MISC
-# define MAP_32BIT     0x40            /* Only give out 32-bit addresses.  */
-#endif
+#define MAP_32BIT      0x40            /* Only give out 32-bit addresses.  */
 
 #include <bits/mman-map-flags-generic.h>