summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog43
-rw-r--r--bits/mman.h (renamed from sysdeps/generic/sys/mman.h)66
-rw-r--r--include/sys/mman.h2
-rw-r--r--misc/Makefile2
-rw-r--r--misc/sys/mman.h (renamed from sysdeps/unix/sysv/linux/sys/mman.h)25
-rw-r--r--posix/getopt.h2
-rw-r--r--sysdeps/generic/bits/mman.h70
-rw-r--r--sysdeps/i386/i586/memcopy.h3
-rw-r--r--sysdeps/mach/alpha/sysdep.h2
-rw-r--r--sysdeps/mach/alpha/thread_state.h2
-rw-r--r--sysdeps/mach/i386/sysdep.h2
-rw-r--r--sysdeps/mach/i386/thread_state.h2
-rw-r--r--sysdeps/mach/mips/sysdep.h2
-rw-r--r--sysdeps/mach/mips/thread_state.h2
-rw-r--r--sysdeps/mach/pagecopy.h2
-rw-r--r--sysdeps/posix/profil.c2
-rw-r--r--sysdeps/unix/bsd/osf/bits/mman.h (renamed from sysdeps/unix/bsd/osf/sys/mman.h)56
-rw-r--r--sysdeps/unix/bsd/sun/sunos4/bits/mman.h (renamed from sysdeps/unix/bsd/sun/sunos4/sys/mman.h)54
-rw-r--r--sysdeps/unix/bsd/ultrix4/bits/mman.h (renamed from sysdeps/unix/bsd/ultrix4/sys/mman.h)57
-rw-r--r--sysdeps/unix/sysv/irix4/bits/mman.h (renamed from sysdeps/unix/sysv/irix4/sys/mman.h)52
-rw-r--r--sysdeps/unix/sysv/linux/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/arm/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/i386/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Dist1
29 files changed, 155 insertions, 303 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f9517cac0..df655a3912 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,46 @@
+1998-09-23 17:28 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+	* misc/sys/mman.h: New file.
+
+	* sysdeps/generic/bits/mman.h: New file.
+	* sysdeps/unix/bsd/osf/bits/mman.h: New file.
+	* sysdeps/unix/bsd/sun/sunos4/bits/mman.h: New file.
+	* sysdeps/unix/bsd/ultrix4/bits/mman.h: New file.
+	* sysdeps/unix/sysv/irix4/bits/mman.h: New file.
+
+	* sysdeps/generic/sys/mman.h: Removed.
+	* sysdeps/unix/bsd/osf/sys/mman.h: Removed.
+	* sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Removed.
+	* sysdeps/unix/bsd/ultrix4/sys/mman.h: Removed.
+	* sysdeps/unix/sysv/irix4/sys/mman.h: Removed.
+	* sysdeps/unix/sysv/linux/sys/mman.h: Removed.
+
+	* include/sys/mman.h: Look directly for misc/sys/mman.h.
+	* misc/Makefile (headers): Add bits/mman.h.
+	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove
+	bits/mman.h.
+
+	* sysdeps/unix/sysv/linux/alpha/Dist: Don't mention bits/mman.h.
+	* sysdeps/unix/sysv/linux/arm/Dist: Likewise.
+	* sysdeps/unix/sysv/linux/i386/Dist: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/Dist: Likewise.
+	* sysdeps/unix/sysv/linux/mips/Dist: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/Dist: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Likewise.
+
+1998-09-23 16:27 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+	* sysdeps/mach/alpha/sysdep.h: Don't use #include_next.
+	* sysdeps/mach/alpha/thread_state.h: Likewise.
+	* sysdeps/mach/i386/sysdep.h: Likewise.
+	* sysdeps/mach/i386/thread_state.h: Likewise.
+	* sysdeps/mach/mips/sysdep.h: Likewise.
+	* sysdeps/mach/mips/thread_state.h: Likewise.
+	* sysdeps/posix/profil.c: Likewise.
+	* sysdeps/i386/i586/memcopy.h: Likewise.
+	* sysdeps/mach/pagecopy.h: Likewise.
+
 1998-09-23 15:25  Ulrich Drepper  <drepper@cygnus.com>
 
 	* libio/stdio.h: Define __need_getopt and include getopt.h to define
diff --git a/sysdeps/generic/sys/mman.h b/bits/mman.h
index 8596e70211..0afdf202a1 100644
--- a/sysdeps/generic/sys/mman.h
+++ b/bits/mman.h
@@ -1,4 +1,4 @@
-/* Definitions for BSD-style memory management.  Generic/4.4 BSD version.
+/* Definitions for BSD-style memory management.
    Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -21,15 +21,8 @@
    (such as GNU) where these facilities are not system services but can be
    emulated in the C library, these are the definitions we emulate.  */
 
-#ifndef	_SYS_MMAN_H
-
-#define	_SYS_MMAN_H	1
-#include <features.h>
-
-#include <bits/types.h>
-#define __need_size_t
-#include <stddef.h>
-
+#ifndef	_BITS_MMAN_H
+#define	_BITS_MMAN_H	1
 
 /* Protections are chosen from these bits, OR'd together.  The
    implementation does not necessarily support PROT_EXEC or PROT_WRITE
@@ -41,7 +34,6 @@
 #define	PROT_WRITE	 0x02	/* Pages can be written.  */
 #define	PROT_EXEC	 0x01	/* Pages can be executed.  */
 
-
 /* Flags contain mapping type, sharing type and options.  */
 
 /* Mapping type (must choose one and only one of these).  */
@@ -75,54 +67,4 @@
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 #endif
 
-/* Return value of `mmap' in case of an error.  */
-#define MAP_FAILED	((__ptr_t) -1)
-
-
-__BEGIN_DECLS
-/* Map addresses starting near ADDR and extending for LEN bytes.  from
-   OFFSET into the file FD describes according to PROT and FLAGS.  If ADDR
-   is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
-   set in FLAGS, the mapping will be at ADDR exactly (which must be
-   page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or MAP_FAILED
-   for errors (in which case `errno' is set).  A successful `mmap' call
-   deallocates any previous mapping for the affected region.  */
-
-#ifndef __USE_FILE_OFFSET64
-extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			int __flags, int __fd, __off_t __offset));
-#else
-extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			int __flags, int __fd, __off_t __offset))
-     __asm__ ("mmap64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern __ptr_t mmap64 __P ((__ptr_t __addr, size_t __len, int __prot,
-			  int __flags, int __fd, __off64_t __offset));
-#endif
-
-/* Deallocate any mapping for the region starting at ADDR and extending LEN
-   bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-extern int munmap __P ((__ptr_t __addr, size_t __len));
-
-/* Change the memory protection of the region starting at ADDR and
-   extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
-   (and sets errno).  */
-extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot));
-
-/* Synchronize the region starting at ADDR and extending LEN bytes with the
-   file it maps.  Filesystem operations on a file being mapped are
-   unpredictable before this is done.  Flags are from the MS_* set.  */
-extern int msync __P ((__ptr_t __addr, size_t __len, int __flags));
-
-#ifdef __USE_BSD
-/* Advise the system about particular usage patterns the program follows
-   for the region starting at ADDR and extending LEN bytes.  */
-extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice));
-#endif
-
-__END_DECLS
-
-
-#endif	/* sys/mman.h */
+#endif /* bits/mman.h */
diff --git a/include/sys/mman.h b/include/sys/mman.h
index 32c2084bdd..374de36211 100644
--- a/include/sys/mman.h
+++ b/include/sys/mman.h
@@ -1,5 +1,5 @@
 #ifndef _SYS_MMAN_H
-#include_next <sys/mman.h>
+#include <misc/sys/mman.h>
 
 /* Now define the internal interfaces.  */
 extern __ptr_t __mmap __P ((__ptr_t __addr, size_t __len, int __prot,
diff --git a/misc/Makefile b/misc/Makefile
index d7982d2b79..948c087edf 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -29,7 +29,7 @@ headers	:= sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \
 	   sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \
 	   sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
 	   sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \
-	   regexp.h bits/select.h
+	   regexp.h bits/select.h bits/mman.h
 
 routines := brk sbrk sstk ioctl \
 	    readv writev \
diff --git a/sysdeps/unix/sysv/linux/sys/mman.h b/misc/sys/mman.h
index ac17af71c0..44d0d26340 100644
--- a/sysdeps/unix/sysv/linux/sys/mman.h
+++ b/misc/sys/mman.h
@@ -1,4 +1,4 @@
-/* Definitions for POSIX-style memory management.  Linux version.
+/* Definitions for BSD-style memory management.
    Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -25,7 +25,6 @@
 #define __need_size_t
 #include <stddef.h>
 
-/* Get the bit values from the kernel header file.  */
 #include <bits/mman.h>
 
 /* Return value of `mmap' in case of an error.  */
@@ -43,15 +42,15 @@ __BEGIN_DECLS
 
 #ifndef __USE_FILE_OFFSET64
 extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			  int __flags, int __fd, __off_t __offset));
+			int __flags, int __fd, __off_t __offset));
 #else
 extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			  int __flags, int __fd, __off64_t __offset))
+			int __flags, int __fd, __off_t __offset))
      __asm__ ("mmap64");
 #endif
 #ifdef __USE_LARGEFILE64
 extern __ptr_t mmap64 __P ((__ptr_t __addr, size_t __len, int __prot,
-			    int __flags, int __fd, __off64_t __offset));
+			  int __flags, int __fd, __off64_t __offset));
 #endif
 
 /* Deallocate any mapping for the region starting at ADDR and extending LEN
@@ -74,6 +73,13 @@ extern int msync __P ((__ptr_t __addr, size_t __len, int __flags));
 extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice));
 #endif
 
+/* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to
+   be memory resident.  */
+extern int mlock __P ((__const __ptr_t __addr, size_t __len));
+
+/* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN).  */
+extern int munlock __P ((__const __ptr_t __addr, size_t __len));
+
 /* Cause all currently mapped pages of the process to be memory resident
    until unlocked by a call to the `munlockall', until the process exits,
    or until the process calls `execve'.  */
@@ -83,13 +89,6 @@ extern int mlockall __P ((int __flags));
    unlocked.  */
 extern int munlockall __P ((void));
 
-/* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to
-   be memory resident.  */
-extern int mlock __P ((__const __ptr_t __addr, size_t __len));
-
-/* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN).  */
-extern int munlock __P ((__const __ptr_t __addr, size_t __len));
-
 #ifdef __USE_MISC
 /* Remap pages mapped by the range [ADDR,ADDR+OLD_LEN) to new length
    NEW_LEN.  If MAY_MOVE is MREMAP_MAYMOVE the returned address may
@@ -100,4 +99,4 @@ extern __ptr_t mremap __P ((__ptr_t __addr, size_t __old_len,
 
 __END_DECLS
 
-#endif	/* _SYS_MMAN_H */
+#endif	/* sys/mman.h */
diff --git a/posix/getopt.h b/posix/getopt.h
index c8950ee4a1..47a601ec3d 100644
--- a/posix/getopt.h
+++ b/posix/getopt.h
@@ -136,7 +136,7 @@ extern int getopt (int argc, char *const *argv, const char *shortopts);
 extern int getopt ();
 # endif /* __GNU_LIBRARY__ */
 
-# ifdef __need_getopt
+# ifndef __need_getopt
 extern int getopt_long (int argc, char *const *argv, const char *shortopts,
 		        const struct option *longopts, int *longind);
 extern int getopt_long_only (int argc, char *const *argv,
diff --git a/sysdeps/generic/bits/mman.h b/sysdeps/generic/bits/mman.h
new file mode 100644
index 0000000000..0afdf202a1
--- /dev/null
+++ b/sysdeps/generic/bits/mman.h
@@ -0,0 +1,70 @@
+/* Definitions for BSD-style memory management.
+   Copyright (C) 1994, 1995, 1996, 1997, 1998 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* These are the bits used by 4.4 BSD and its derivatives.  On systems
+   (such as GNU) where these facilities are not system services but can be
+   emulated in the C library, these are the definitions we emulate.  */
+
+#ifndef	_BITS_MMAN_H
+#define	_BITS_MMAN_H	1
+
+/* Protections are chosen from these bits, OR'd together.  The
+   implementation does not necessarily support PROT_EXEC or PROT_WRITE
+   without PROT_READ.  The only guarantees are that no writing will be
+   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
+
+#define	PROT_NONE	 0x00	/* No access.  */
+#define	PROT_READ	 0x04	/* Pages can be read.  */
+#define	PROT_WRITE	 0x02	/* Pages can be written.  */
+#define	PROT_EXEC	 0x01	/* Pages can be executed.  */
+
+/* Flags contain mapping type, sharing type and options.  */
+
+/* Mapping type (must choose one and only one of these).  */
+#ifdef __USE_BSD
+# 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.  */
+#endif
+
+/* Sharing types (must choose one and only one of these).  */
+#ifdef __USE_BSD
+# define MAP_COPY	 0x0020	/* Virtual copy of region at mapping time.  */
+#endif
+#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_BSD
+# 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
+
+/* Advice to `madvise'.  */
+#ifdef __USE_BSD
+# 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	/* Don't need these pages.  */
+#endif
+
+#endif /* bits/mman.h */
diff --git a/sysdeps/i386/i586/memcopy.h b/sysdeps/i386/i586/memcopy.h
index a0a9b4a5ad..ef6d0746a9 100644
--- a/sysdeps/i386/i586/memcopy.h
+++ b/sysdeps/i386/i586/memcopy.h
@@ -19,8 +19,7 @@
    Boston, MA 02111-1307, USA.  */
 
 /* Get the i386 definitions.  We will override some of them below.  */
-#include_next <memcopy.h>
-
+#include <sysdeps/i386/memcopy.h>
 
 /* Written like this, the Pentium pipeline can execute the loop at a
    sustained rate of 2 instructions/clock, or asymptotically 480
diff --git a/sysdeps/mach/alpha/sysdep.h b/sysdeps/mach/alpha/sysdep.h
index 6c1035a5e3..55130754aa 100644
--- a/sysdeps/mach/alpha/sysdep.h
+++ b/sysdeps/mach/alpha/sysdep.h
@@ -38,4 +38,4 @@
 
 #define STACK_GROWTH_DOWN
 
-#include_next <sysdep.h>
+#include <sysdeps/mach/sysdep.h>
diff --git a/sysdeps/mach/alpha/thread_state.h b/sysdeps/mach/alpha/thread_state.h
index ea9f944064..dc30a79926 100644
--- a/sysdeps/mach/alpha/thread_state.h
+++ b/sysdeps/mach/alpha/thread_state.h
@@ -36,4 +36,4 @@ struct machine_thread_all_state
     struct alpha_float_state fpu;
   };
 
-#include_next <thread_state.h>
+#include <sysdeps/mach/thread_state.h>
diff --git a/sysdeps/mach/i386/sysdep.h b/sysdeps/mach/i386/sysdep.h
index 00769c657f..d00390afc3 100644
--- a/sysdeps/mach/i386/sysdep.h
+++ b/sysdeps/mach/i386/sysdep.h
@@ -50,7 +50,7 @@
 #define STACK_GROWTH_DOWN
 
 /* Get the machine-independent Mach definitions.  */
-#include_next <sysdep.h>
+#include <sysdeps/mach/sysdep.h>
 
 
 /* This should be rearranged, but at the moment this file provides
diff --git a/sysdeps/mach/i386/thread_state.h b/sysdeps/mach/i386/thread_state.h
index 1ab0b9ce8d..72e0062483 100644
--- a/sysdeps/mach/i386/thread_state.h
+++ b/sysdeps/mach/i386/thread_state.h
@@ -35,4 +35,4 @@ struct machine_thread_all_state
     struct i386_float_state fpu;
   };
 
-#include_next <thread_state.h>
+#include <sysdeps/mach/thread_state.h>
diff --git a/sysdeps/mach/mips/sysdep.h b/sysdeps/mach/mips/sysdep.h
index 7bacb02cf4..45cbf6920c 100644
--- a/sysdeps/mach/mips/sysdep.h
+++ b/sysdeps/mach/mips/sysdep.h
@@ -80,4 +80,4 @@ _start:\n\
 #define ret	j ra; nop
 #endif
 
-#include_next <sysdep.h>
+#include <sysdeps/mach/sysdep.h>
diff --git a/sysdeps/mach/mips/thread_state.h b/sysdeps/mach/mips/thread_state.h
index a72848dfc0..17334cf810 100644
--- a/sysdeps/mach/mips/thread_state.h
+++ b/sysdeps/mach/mips/thread_state.h
@@ -39,4 +39,4 @@ struct machine_thread_all_state
     struct mips_float_state fpu;
   };
 
-#include_next <thread_state.h>
+#include <sysdeps/mach/thread_state.h>
diff --git a/sysdeps/mach/pagecopy.h b/sysdeps/mach/pagecopy.h
index 51fda50944..93f563be56 100644
--- a/sysdeps/mach/pagecopy.h
+++ b/sysdeps/mach/pagecopy.h
@@ -33,4 +33,4 @@
 		     : 0)))
 
 /* Get the generic macro.  */
-#include_next <pagecopy.h>
+#include <sysdeps/generic/pagecopy.h>
diff --git a/sysdeps/posix/profil.c b/sysdeps/posix/profil.c
index beb5ae47cd..6c8adbcd0b 100644
--- a/sysdeps/posix/profil.c
+++ b/sysdeps/posix/profil.c
@@ -25,7 +25,7 @@
 
 #ifndef SIGPROF
 
-#include_next <profil.c>
+#include <sysdeps/generic/profil.c>
 
 #else
 
diff --git a/sysdeps/unix/bsd/osf/sys/mman.h b/sysdeps/unix/bsd/osf/bits/mman.h
index 6ada4e6497..fd5d79deef 100644
--- a/sysdeps/unix/bsd/osf/sys/mman.h
+++ b/sysdeps/unix/bsd/osf/bits/mman.h
@@ -1,4 +1,4 @@
-/* Definitions for BSD-style memory management.  OSF/1 version.
+/* Flags for BSD-style memory management.  OSF/1 version.
    Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -17,15 +17,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef	_SYS_MMAN_H
-
-#define	_SYS_MMAN_H	1
-#include <features.h>
-
-#include <bits/types.h>
-#define __need_size_t
-#include <stddef.h>
-
+#ifndef	_BITS_MMAN_H
+#define	_BITS_MMAN_H	1
 
 /* Protections are chosen from these bits, OR'd together.  The
    implementation does not necessarily support PROT_EXEC or PROT_WRITE
@@ -37,7 +30,6 @@
 #define	PROT_WRITE	 0x02	/* Pages can be written.  */
 #define	PROT_EXEC	 0x04	/* Pages can be executed.  */
 
-
 /* Flags contain mapping type, sharing type and options.  */
 
 /* Mapping type (must choose one and only one of these).  */
@@ -76,44 +68,4 @@
 #define MS_SYNC		3		/* Synchronous cache flush.  */
 #define MS_INVALIDATE	4		/* Invalidate cached pages.  */
 
-/* Return value of `mmap' in case of an error.  */
-#define MAP_FAILED	((__ptr_t) -1)
-
-
-__BEGIN_DECLS
-/* Map addresses starting near ADDR and extending for LEN bytes.  from
-   OFFSET into the file FD describes according to PROT and FLAGS.  If ADDR
-   is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
-   set in FLAGS, the mapping will be at ADDR exactly (which must be
-   page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or MAP_FAILED
-   for errors (in which case `errno' is set).  A successful `mmap' call
-   deallocates any previous mapping for the affected region.  */
-
-extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			int __flags, int __fd, off_t __offset));
-
-/* Deallocate any mapping for the region starting at ADDR and extending LEN
-   bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-extern int munmap __P ((__ptr_t __addr, size_t __len));
-
-/* Change the memory protection of the region starting at ADDR and
-   extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
-   (and sets errno).  */
-extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot));
-
-/* Synchronize the region starting at ADDR and extending LEN bytes with the
-   file it maps.  Filesystem operations on a file being mapped are
-   unpredictable before this is done.  */
-extern int msync __P ((__ptr_t __addr, size_t __len, int __flags));
-
-#ifdef __USE_BSD
-/* Advise the system about particular usage patterns the program follows
-   for the region starting at ADDR and extending LEN bytes.  */
-extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice));
-#endif
-
-__END_DECLS
-
-
-#endif	/* sys/mman.h */
+#endif /* bits/mman.h */
diff --git a/sysdeps/unix/bsd/sun/sunos4/sys/mman.h b/sysdeps/unix/bsd/sun/sunos4/bits/mman.h
index 15608e5f24..ed80baf2e3 100644
--- a/sysdeps/unix/bsd/sun/sunos4/sys/mman.h
+++ b/sysdeps/unix/bsd/sun/sunos4/bits/mman.h
@@ -17,15 +17,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef	_SYS_MMAN_H
-
-#define	_SYS_MMAN_H	1
-#include <features.h>
-
-#include <bits/types.h>
-#define __need_size_t
-#include <stddef.h>
-
+#ifndef	_BITS_MMAN_H
+#define	_BITS_MMAN_H	1
 
 /* Protections are chosen from these bits, OR'd together.  The
    implementation does not necessarily support PROT_EXEC or PROT_WRITE
@@ -37,7 +30,6 @@
 #define	PROT_WRITE	0x02	/* Pages can be written.  */
 #define	PROT_EXEC	0x04	/* Pages can be executed.  */
 
-
 /* Sharing types (must choose one and only one of these).  */
 #define	MAP_SHARED	0x01	/* Share changes.  */
 #define	MAP_PRIVATE	0x02	/* Changes private; copy pages on write.  */
@@ -73,44 +65,4 @@
 #define	MS_ASYNC	0x1		/* Return immediately, don't fsync.  */
 #define	MS_INVALIDATE	0x2		/* Invalidate caches.  */
 
-/* Return value of `mmap' in case of an error.  */
-#define MAP_FAILED	((__ptr_t) -1)
-
-
-__BEGIN_DECLS
-/* Map addresses starting near ADDR and extending for LEN bytes.  from
-   OFFSET into the file FD describes according to PROT and FLAGS.  If ADDR
-   is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
-   set in FLAGS, the mapping will be at ADDR exactly (which must be
-   page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or MAP_FAILED
-   for errors (in which case `errno' is set).  A successful `mmap' call
-   deallocates any previous mapping for the affected region.  */
-
-extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			int __flags, int __fd, __off_t __offset));
-
-/* Deallocate any mapping for the region starting at ADDR and extending LEN
-   bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-extern int munmap __P ((__ptr_t __addr, size_t __len));
-
-/* Change the memory protection of the region starting at ADDR and
-   extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
-   (and sets errno).  */
-extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot));
-
-/* Synchronize the region starting at ADDR and extending LEN bytes with the
-   file it maps.  Filesystem operations on a file being mapped are
-   unpredictable before this is done.  */
-extern int msync __P ((__ptr_t __addr, size_t __len, int __flags));
-
-#ifdef __USE_BSD
-/* Advise the system about particular usage patterns the program follows
-   for the region starting at ADDR and extending LEN bytes.  */
-extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice));
-#endif
-
-__END_DECLS
-
-
-#endif	/* sys/mman.h */
+#endif /* bits/mman.h */
diff --git a/sysdeps/unix/bsd/ultrix4/sys/mman.h b/sysdeps/unix/bsd/ultrix4/bits/mman.h
index 142509455c..9acb6ceed5 100644
--- a/sysdeps/unix/bsd/ultrix4/sys/mman.h
+++ b/sysdeps/unix/bsd/ultrix4/bits/mman.h
@@ -17,15 +17,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef	_SYS_MMAN_H
-
-#define	_SYS_MMAN_H	1
-#include <features.h>
-
-#include <bits/types.h>
-#define __need_size_t
-#include <stddef.h>
-
+#ifndef	_BITS_MMAN_H
+#define	_BITS_MMAN_H	1
 
 /* Protections are chosen from these bits, OR'd together.  The
    implementation does not necessarily support PROT_EXEC or PROT_WRITE
@@ -36,8 +29,6 @@
 #define	PROT_READ	0x01	/* Pages can be read.  */
 #define	PROT_WRITE	0x02	/* Pages can be written.  */
 #define	PROT_EXEC	0x04	/* Pages can be executed.  */
-
-
 /* Sharing types (must choose one and only one of these).  */
 #define	MAP_SHARED	0x01	/* Share changes.  */
 #define	MAP_PRIVATE	0x02	/* Changes private; copy pages on write.  */
@@ -57,46 +48,4 @@
 # define MADV_DONTNEED	4	/* Don't need these pages.  */
 #endif
 
-/* Return value of `mmap' in case of an error.  */
-#define MAP_FAILED	((__ptr_t) -1)
-
-
-__BEGIN_DECLS
-/* Map addresses starting near ADDR and extending for LEN bytes.  from
-   OFFSET into the file FD describes according to PROT and FLAGS.  If ADDR
-   is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
-   set in FLAGS, the mapping will be at ADDR exactly (which must be
-   page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or MAP_FAILED
-   for errors (in which case `errno' is set).  A successful `mmap' call
-   deallocates any previous mapping for the affected region.  */
-
-extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			int __flags, int __fd, off_t __offset));
-
-/* Deallocate any mapping for the region starting at ADDR and extending LEN
-   bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-extern int munmap __P ((__ptr_t __addr, size_t __len));
-
-/* Change the memory protection of the region starting at ADDR and
-   extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
-   (and sets errno).  */
-extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot));
-
-/* Ultrix 4 does not implement `msync' or `madvise'.  */
-
-/* Synchronize the region starting at ADDR and extending LEN bytes with the
-   file it maps.  Filesystem operations on a file being mapped are
-   unpredictable before this is done.  */
-extern int msync __P ((__ptr_t __addr, size_t __len));
-
-#ifdef __USE_BSD
-/* Advise the system about particular usage patterns the program follows
-   for the region starting at ADDR and extending LEN bytes.  */
-extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice));
-#endif
-
-__END_DECLS
-
-
-#endif	/* sys/mman.h */
+#endif /* bits/mman.h */
diff --git a/sysdeps/unix/sysv/irix4/sys/mman.h b/sysdeps/unix/sysv/irix4/bits/mman.h
index 9147aa7e58..c378cce648 100644
--- a/sysdeps/unix/sysv/irix4/sys/mman.h
+++ b/sysdeps/unix/sysv/irix4/bits/mman.h
@@ -17,13 +17,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef	_SYS_MMAN_H
-
-#define	_SYS_MMAN_H	1
-#include <features.h>
-
-#include <bits/types.h>
-
+#ifndef	_BITS_MMAN_H
+#define	_BITS_MMAN_H	1
 
 /* Protections are chosen from these bits, OR'd together.  The
    implementation does not necessarily support PROT_EXEC or PROT_WRITE
@@ -38,7 +33,6 @@
 # define PROT_EXECUTE	 PROT_EXEC
 #endif
 
-
 /* Sharing types (must choose one and only one of these).  */
 #define	MAP_SHARED	 0x01	/* Share changes.  */
 #define	MAP_PRIVATE	 0x02	/* Changes private; copy pages on write.  */
@@ -67,44 +61,4 @@
 #define	MS_ASYNC	 0x1		/* Return immediately, don't fsync.  */
 #define	MS_INVALIDATE	 0x2		/* Invalidate caches.  */
 
-/* Return value of `mmap' in case of an error.  */
-#define MAP_FAILED	((__ptr_t) -1)
-
-
-__BEGIN_DECLS
-/* Map addresses starting near ADDR and extending for LEN bytes.  from
-   OFFSET into the file FD describes according to PROT and FLAGS.  If ADDR
-   is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
-   set in FLAGS, the mapping will be at ADDR exactly (which must be
-   page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or MAP_FAILED
-   for errors (in which case `errno' is set).  A successful `mmap' call
-   deallocates any previous mapping for the affected region.  */
-
-extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-			int __flags, int __fd, __off_t __offset));
-
-/* Deallocate any mapping for the region starting at ADDR and extending LEN
-   bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-extern int munmap __P ((__ptr_t __addr, size_t __len));
-
-/* Change the memory protection of the region starting at ADDR and
-   extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
-   (and sets errno).  */
-extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot));
-
-/* Synchronize the region starting at ADDR and extending LEN bytes with the
-   file it maps.  Filesystem operations on a file being mapped are
-   unpredictable before this is done.  */
-extern int msync __P ((__ptr_t __addr, size_t __len, int __flags));
-
-#ifdef __USE_BSD
-/* Advise the system about particular usage patterns the program follows
-   for the region starting at ADDR and extending LEN bytes.  */
-extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice));
-#endif
-
-__END_DECLS
-
-
-#endif	/* sys/mman.h */
+#endif /* bits/mman.h */
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index fa12c056e2..8efda034e5 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -15,7 +15,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \
 		  sys/io.h sys/klog.h sys/kdaemon.h \
 		  sys/user.h sys/sysmacros.h sys/procfs.h sys/prctl.h \
 		  sys/kd.h sys/soundcard.h sys/vt.h \
-		  sys/quota.h sys/fsuid.h bits/mman.h \
+		  sys/quota.h sys/fsuid.h \
 		  scsi/sg.h scsi/scsi.h sys/pci.h sys/ultrasound.h \
 		  sys/sendfile.h
 
diff --git a/sysdeps/unix/sysv/linux/alpha/Dist b/sysdeps/unix/sysv/linux/alpha/Dist
index d20860445c..21e134024f 100644
--- a/sysdeps/unix/sysv/linux/alpha/Dist
+++ b/sysdeps/unix/sysv/linux/alpha/Dist
@@ -1,6 +1,5 @@
 alpha/ptrace.h
 alpha/regdef.h
-bits/mman.h
 clone.S
 ieee_get_fp_control.S
 ieee_set_fp_control.S
diff --git a/sysdeps/unix/sysv/linux/arm/Dist b/sysdeps/unix/sysv/linux/arm/Dist
index 6e1be78f3a..3217436f25 100644
--- a/sysdeps/unix/sysv/linux/arm/Dist
+++ b/sysdeps/unix/sysv/linux/arm/Dist
@@ -1,3 +1,2 @@
-bits/mman.h
 clone.S
 init-first.h
diff --git a/sysdeps/unix/sysv/linux/i386/Dist b/sysdeps/unix/sysv/linux/i386/Dist
index 53a6b338fb..646be1baaa 100644
--- a/sysdeps/unix/sysv/linux/i386/Dist
+++ b/sysdeps/unix/sysv/linux/i386/Dist
@@ -1,4 +1,3 @@
-bits/mman.h
 clone.S
 s_pread64.S
 s_pwrite64.S
diff --git a/sysdeps/unix/sysv/linux/m68k/Dist b/sysdeps/unix/sysv/linux/m68k/Dist
index 103e273817..6059865f54 100644
--- a/sysdeps/unix/sysv/linux/m68k/Dist
+++ b/sysdeps/unix/sysv/linux/m68k/Dist
@@ -1,4 +1,3 @@
-bits/mman.h
 clone.S
 mremap.S
 sys/reg.h
diff --git a/sysdeps/unix/sysv/linux/mips/Dist b/sysdeps/unix/sysv/linux/mips/Dist
index 0f106cf8fa..f3ae821129 100644
--- a/sysdeps/unix/sysv/linux/mips/Dist
+++ b/sysdeps/unix/sysv/linux/mips/Dist
@@ -1,4 +1,3 @@
-bits/mman.h
 clone.S
 kernel_sigaction.h
 kernel_stat.h
diff --git a/sysdeps/unix/sysv/linux/powerpc/Dist b/sysdeps/unix/sysv/linux/powerpc/Dist
index 71eb76f0c0..081b6d2ebe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Dist
+++ b/sysdeps/unix/sysv/linux/powerpc/Dist
@@ -1,4 +1,3 @@
-bits/mman.h
 clone.S
 kernel_stat.h
 kernel_termios.h
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Dist b/sysdeps/unix/sysv/linux/sparc/sparc32/Dist
index b5928d86f2..5122b16230 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/Dist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Dist
@@ -1,4 +1,3 @@
-bits/mman.h
 clone.S
 pipe.S
 fork.S
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Dist b/sysdeps/unix/sysv/linux/sparc/sparc64/Dist
index c22b73ebd2..7364de645f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Dist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Dist
@@ -1,4 +1,3 @@
-bits/mman.h
 clone.S
 kernel_stat.h
 getcontext.S