1998-12-06 Mark Kettenis <kettenis@phys.uva.nl>
authorRoland McGrath <roland@gnu.org>
Sun, 20 Dec 1998 19:13:11 +0000 (19:13 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 20 Dec 1998 19:13:11 +0000 (19:13 +0000)
Reverse the change of 1998-04-22.  Providing a struct dirent with
different members when __USE_FILE_OFFSET64 is defined is asking
for trouble.  Instead add the necessary LFS magic to the 4.4BSD
header.
* sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Add LFS definitions.
* sysdeps/mach/hurd/bits/dirent.h: Removed.
* sysdeps/mach/hurd/readdir64.c: Removed.
* sysdeps/mach/hurd/readdir64_r.c: Removed.

* sysdeps/generic/bits/mman.h [__USE_MISC] (MAP_ANONYMOUS): Define as
alias for MAP_ANON.

* stdio/stdio.h (sys_errlist, sys_nerr, _sys_errlist, _sys_nerr):
Remove decls.  They don't exist at all on the Hurd.

ChangeLog
bits/mman.h
stdio/stdio.h
sysdeps/generic/bits/mman.h
sysdeps/mach/hurd/bits/dirent.h [deleted file]
sysdeps/mach/hurd/readdir64.c [deleted file]
sysdeps/mach/hurd/readdir64_r.c [deleted file]
sysdeps/unix/bsd/bsd4.4/bits/dirent.h

index 5d74ad0..1796eac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
+1998-12-06  Mark Kettenis  <kettenis@phys.uva.nl>
+
+       Reverse the change of 1998-04-22.  Providing a struct dirent with
+       different members when __USE_FILE_OFFSET64 is defined is asking
+       for trouble.  Instead add the necessary LFS magic to the 4.4BSD
+       header.
+       * sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Add LFS definitions.
+       * sysdeps/mach/hurd/bits/dirent.h: Removed.
+       * sysdeps/mach/hurd/readdir64.c: Removed.
+       * sysdeps/mach/hurd/readdir64_r.c: Removed.
+
 1998-12-20  Roland McGrath  <roland@baalperazim.frob.com>
 
+       * sysdeps/generic/bits/mman.h [__USE_MISC] (MAP_ANONYMOUS): Define as
+       alias for MAP_ANON.
+
+       * stdio/stdio.h (sys_errlist, sys_nerr, _sys_errlist, _sys_nerr):
+       Remove decls.  They don't exist at all on the Hurd.
+
        * sunrpc/svc_unix.c, sunrpc/clnt_unix.c: Avoid using `struct cmsghdr'
        and `struct ucred' #ifndef SCM_CREDENTIALS.
 
index 0afdf20..99e3bcd 100644 (file)
@@ -41,6 +41,9 @@
 # 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.  */
+# ifdef __USE_MISC
+#  define MAP_ANONYMOUS  MAP_ANON /* Linux name. */
+# endif
 #endif
 
 /* Sharing types (must choose one and only one of these).  */
index a48a07f..9045727 100644 (file)
@@ -745,15 +745,6 @@ extern int ferror_unlocked __P ((FILE *__stream));
 /* Print a message describing the meaning of the value of errno.  */
 extern void perror __P ((__const char *__s));
 
-#ifdef __USE_BSD
-extern int sys_nerr;
-extern const char *const sys_errlist[];
-#endif
-#ifdef __USE_GNU
-extern int _sys_nerr;
-extern const char *const _sys_errlist[];
-#endif
-
 
 #ifdef __USE_POSIX
 /* Return the system file descriptor for STREAM.  */
index 0afdf20..99e3bcd 100644 (file)
@@ -41,6 +41,9 @@
 # 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.  */
+# ifdef __USE_MISC
+#  define MAP_ANONYMOUS  MAP_ANON /* Linux name. */
+# endif
 #endif
 
 /* Sharing types (must choose one and only one of these).  */
diff --git a/sysdeps/mach/hurd/bits/dirent.h b/sysdeps/mach/hurd/bits/dirent.h
deleted file mode 100644 (file)
index 6609fde..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Directory entry structure `struct dirent'.  Hurd version.
-   Copyright (C) 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.  */
-
-#ifndef _DIRENT_H
-# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-#endif
-
-#ifndef __USE_FILE_OFFSET64
-/* The old BSD4.4-compatible struct dirent. */
-struct dirent
-  {
-    __ino_t d_ino;             /* File serial number.  */
-    unsigned short int d_reclen; /* Length of the whole `struct dirent'.  */
-    unsigned char d_type;      /* File type, possibly unknown.  */
-    unsigned char d_namlen;    /* Length of the file name.  */
-
-    /* Only this member is in the POSIX standard.  */
-    char d_name[1];            /* File name (actually longer).  */
-  };
-
-#else
-/* Linux-style 64-bit struct dirent. */
-struct dirent
-  {
-    __ino64_t d_ino;
-    __off64_t d_off;
-    unsigned short int d_reclen;
-    unsigned char d_type;
-    char d_name[256];          /* We must not include limits.h! */
-  };
-#endif
-
-#ifdef __USE_LARGEFILE64
-/* Same as above (Linux-style 64-bit struct dirent). */
-struct dirent64
-  {
-    __ino64_t d_ino;
-    __off64_t d_off;
-    unsigned short int d_reclen;
-    unsigned char d_type;
-    char d_name[256];          /* We must not include limits.h! */
-  };
-#endif
-
-#define d_fileno       d_ino   /* Backwards compatibility.  */
-
-/* These definitions are accurate for neither the 32-bit nor the
-   64-bit structures, but at least they are compatible. */
-#undef  _DIRENT_HAVE_D_NAMLEN
-#define _DIRENT_HAVE_D_RECLEN 1
-#define _DIRENT_HAVE_D_TYPE 1
diff --git a/sysdeps/mach/hurd/readdir64.c b/sysdeps/mach/hurd/readdir64.c
deleted file mode 100644 (file)
index aed5e01..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 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.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <stddef.h>
-#include <string.h>
-#include <dirent.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-/* Read a directory entry from DIRP.  */
-struct dirent64 *
-__readdir64 (DIR *dirp)
-{
-  struct dirent *dp;
-  static struct dirent64 dent;
-
-  /* XXX the new __dir_readdir64 RPC is not yet implemented */
-
-  /* If __dir_readdir64 failed, then fall back on the old implementation */
-  dp = readdir (dirp);
-  if (!dp)
-    return NULL;
-
-  /* Return a struct dirent64, converted from the 32-bit value. */
-  memset (&dent, 0, sizeof (dent));
-  dent.d_reclen = sizeof (dent);
-
-  dent.d_ino = dp->d_fileno;
-  dent.d_type = dp->d_type;
-  memcpy (dent.d_name, dp->d_name, dp->d_namlen);
-
-  return &dent;
-}
-weak_alias (__readdir64, readdir64)
diff --git a/sysdeps/mach/hurd/readdir64_r.c b/sysdeps/mach/hurd/readdir64_r.c
deleted file mode 100644 (file)
index bd00b0e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 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.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <stddef.h>
-#include <string.h>
-#include <dirent.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-/* Read a directory entry from DIRP.  */
-int
-__readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
-{
-  struct dirent ent32, *res32;
-
-  /* XXX the new __dir_readdir64 RPC is not yet implemented */
-
-  /* If __dir_readdir64 failed, then fall back on the old implementation */
-  if (readdir_r (dirp, &ent32, &res32))
-    return -1;
-
-  if (!res32)
-    {
-      /* End of directory. */
-      *result = 0;
-      return 0;
-    }
-
-  /* Convert our result from the 32-bit value. */
-  memset (entry, 0, sizeof (*entry));
-  entry->d_reclen = sizeof (*entry);
-
-  entry->d_ino = res32->d_fileno;
-  entry->d_type = res32->d_type;
-  memcpy (entry->d_name, res32->d_name, res32->d_namlen);
-
-  *result = entry;
-  return 0;
-}
-weak_alias (__readdir64_r, readdir64_r)
index e29dac4..cf1f72c 100644 (file)
@@ -1,5 +1,5 @@
 /* Directory entry structure `struct dirent'.  4.4BSD version.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 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
 
 struct dirent
   {
+#ifndef __USE_FILE_OFFSET64
     __ino_t d_fileno;          /* File serial number.  */
+#else
+    __ino64_t d_fileno;
+#endif
     unsigned short int d_reclen; /* Length of the whole `struct dirent'.  */
     unsigned char d_type;      /* File type, possibly unknown.  */
     unsigned char d_namlen;    /* Length of the file name.  */
@@ -32,6 +36,18 @@ struct dirent
     char d_name[1];            /* File name (actually longer).  */
   };
 
+#ifdef __USE_LARGEFILE64
+struct dirent64
+  {
+    __ino64_t d_fileno;
+    unsigned short int d_reclen;
+    unsigned char d_type;
+    unsigned char d_namlen;
+
+    char d_name[1];
+  };
+#endif
+
 #define _DIRENT_HAVE_D_RECLEN 1
 #define _DIRENT_HAVE_D_NAMLEN 1
 #define _DIRENT_HAVE_D_TYPE 1