]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Linux: Introduce <bits/mman-shared.h>
authorFlorian Weimer <fweimer@redhat.com>
Fri, 24 Nov 2017 16:55:59 +0000 (17:55 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 24 Nov 2017 16:55:59 +0000 (17:55 +0100)
This header file enables sharing of portable declarations and
definitions across all Linux architectures, including hppa (which does
not use <bits/mman-linux.h>).

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
ChangeLog
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/bits/mman-linux.h
sysdeps/unix/sysv/linux/bits/mman-shared.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/hppa/bits/mman.h

index 6791c51308edc57477836a705025c5f231f489ee..9acf3ae58d19efffa8eb19051c42645287813402 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2017-11-24  Florian Weimer  <fweimer@redhat.com>
+
+       * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+       bits/mman-shared.h.
+       * sysdeps/unix/sysv/linux/bits/mman-linux.h: Include
+       <bits/mman-shared.h>.
+       (MFD_CLOEXEC, MFD_ALLOW_SEALING, MFD_HUGETLB, memfd_create): Move
+       to ...
+       * sysdeps/unix/sysv/linux/bits/mman-shared.h: ... this new file.
+       Add #ifndef guard for the MFD_* constants based on MFD_CLOEXEC.
+       * sysdeps/unix/sysv/linux/hppa/bits/mman.h: Include
+       <bits/mman-shared.h>.
+
 2017-11-24  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
        [BZ #22457]
index c484d2688a773e9f83a95a61ad39cf6c851d8b06..58ce07b5262e87e881b608225ce09dba1f82dbd7 100644 (file)
@@ -39,7 +39,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
                  sys/timerfd.h sys/fanotify.h bits/eventfd.h bits/inotify.h \
                  bits/signalfd.h bits/timerfd.h bits/epoll.h \
                  bits/socket_type.h bits/syscall.h bits/sysctl.h \
-                 bits/mman-linux.h \
+                 bits/mman-linux.h bits/mman-shared.h \
                  bits/siginfo-arch.h bits/siginfo-consts-arch.h
 
 tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
index 1ffa5490afe7e432fafacf08abcf97ef5ff4a66e..ba40fd68f4977243f664e5435f35aa738146de3c 100644 (file)
                                           faulted in.  */
 #endif
 
-#ifdef __USE_GNU
-/* Flags for memfd_create.  */
-# define MFD_CLOEXEC 1U
-# define MFD_ALLOW_SEALING 2U
-# define MFD_HUGETLB 4U
-
-__BEGIN_DECLS
-
-/* Create a new memory file descriptor.  NAME is a name for debugging.
-   FLAGS is a combination of the MFD_* constants.  */
-int memfd_create (const char *__name, unsigned int __flags) __THROW;
-
-__END_DECLS
-
-#endif /* __USE_GNU */
+#include <bits/mman-shared.h>
diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h
new file mode 100644 (file)
index 0000000..5bbcbbc
--- /dev/null
@@ -0,0 +1,39 @@
+/* Memory-mapping-related declarations/definitions, not architecture-specific.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman-shared.h> directly; include <sys/mman.h> instead."
+#endif
+
+#ifdef __USE_GNU
+/* Flags for memfd_create.  */
+# ifndef MFD_CLOEXEC
+#  define MFD_CLOEXEC 1U
+#  define MFD_ALLOW_SEALING 2U
+#  define MFD_HUGETLB 4U
+# endif
+
+__BEGIN_DECLS
+
+/* Create a new memory file descriptor.  NAME is a name for debugging.
+   FLAGS is a combination of the MFD_* constants.  */
+int memfd_create (const char *__name, unsigned int __flags) __THROW;
+
+__END_DECLS
+
+#endif /* __USE_GNU */
index 2aaca015736ee140d561aa6afe637e8600f7c9ea..68a7afc14eaf3f9dca721995310de864ec31d53c 100644 (file)
 # 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>