about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog21
-rw-r--r--intl/dcgettext.c4
-rw-r--r--intl/localealias.c4
-rw-r--r--manual/errno.texi306
-rw-r--r--signal/Makefile4
-rw-r--r--signal/siggetmask.c29
-rw-r--r--sysdeps/gnu/Makefile28
-rw-r--r--sysdeps/gnu/errlist.awk (renamed from sysdeps/mach/hurd/errlist.awk)38
-rw-r--r--sysdeps/gnu/errlist.c423
-rw-r--r--sysdeps/mach/hurd/Makefile11
10 files changed, 824 insertions, 44 deletions
diff --git a/ChangeLog b/ChangeLog
index 77bfb70fc3..eaf157e353 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,26 @@
+Tue Jun  4 00:16:03 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
+
+	* sysdeps/gnu/errlist.awk: Produce N_("..."), not _N("...").
+
+	* intl: Updated from gettext-0.10.13.
+	* intl/localealias.c intl/dcgettext.c [_LIBC]: Define HAVE_ALLOCA.
+
+	* signal/siggetmask.c: New file.  Wrapper around sigblock with
+	link_warning about obsolescence.
+	* signal/Makefile (routines): Add siggetmask.
+
+	* sysdeps/gnu/errlist.awk: New file, adapted from ...
+	* sysdeps/mach/hurd/errlist.awk: File removed, above file replaces it.
+	* sysdeps/mach/hurd/Makefile (errlist.c): Target removed.
+	* sysdeps/gnu/Makefile: New file.
+	(sysdeps/gnu/errlist.c): Make the errlist.c generation rule into this.
+
 Mon Jun  3 21:03:54 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
+	* manual/errno.texi (Error Codes): Add placeholder items for missing
+	Linux/i386 errno codes, with perror text but no documentation.
+	Some existing perror texts changed.
+
 	* malloc/mcheck.c (freehook, reallochook): Handle null pointer args.
 
 	* hurd/hurdsig.c (_hurd_internal_post_signal): When setting ACT to
diff --git a/intl/dcgettext.c b/intl/dcgettext.c
index 5c14dca218..743c85bf22 100644
--- a/intl/dcgettext.c
+++ b/intl/dcgettext.c
@@ -162,6 +162,10 @@ static const char *guess_category_value PARAMS ((int category,
 						 const char *categoryname));
 
 
+#ifdef _LIBC
+#define HAVE_ALLOCA 1
+#endif
+
 /* For those loosing systems which don't have `alloca' we have to add
    some additional code emulating it.  */
 #ifdef HAVE_ALLOCA
diff --git a/intl/localealias.c b/intl/localealias.c
index 57c4a01588..8ecbfcb7a4 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -78,6 +78,10 @@ void free ();
 #endif
 
 
+#ifdef _LIBC
+#define HAVE_ALLOCA 1
+#endif
+
 /* For those loosing systems which don't have `alloca' we have to add
    some additional code emulating it.  */
 #ifdef HAVE_ALLOCA
diff --git a/manual/errno.texi b/manual/errno.texi
index 6b8b9834ef..09c6ac68cf 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -250,7 +250,7 @@ system in Unix gives this error.
 @end deftypevr
 
 @comment errno.h
-@comment POSIX.1: Device busy
+@comment POSIX.1: Device or resource busy
 @deftypevr Macro int EBUSY
 @comment errno 16 @c DO NOT REMOVE
 Resource busy; a system resource that can't be shared is already in use.
@@ -546,7 +546,7 @@ The socket communications protocol family you requested is not supported.
 @end deftypevr
 
 @comment errno.h
-@comment BSD: Address family not supported by protocol family
+@comment BSD: Address family not supported by protocol
 @deftypevr Macro int EAFNOSUPPORT
 @comment errno 47 @c DO NOT REMOVE
 The address family specified for a socket is not supported; it is
@@ -561,7 +561,7 @@ The requested socket address is already in use.  @xref{Socket Addresses}.
 @end deftypevr
 
 @comment errno.h
-@comment BSD: Can't assign requested address
+@comment BSD: Cannot assign requested address
 @deftypevr Macro int EADDRNOTAVAIL
 @comment errno 49 @c DO NOT REMOVE
 The requested socket address is not available; for example, you tried
@@ -617,7 +617,7 @@ other from network operations.
 @end deftypevr
 
 @comment errno.h
-@comment BSD: Socket is already connected
+@comment BSD: Transport endpoint is already connected
 @deftypevr Macro int EISCONN
 @comment errno 56 @c DO NOT REMOVE
 You tried to connect a socket that is already connected.
@@ -625,7 +625,7 @@ You tried to connect a socket that is already connected.
 @end deftypevr
 
 @comment errno.h
-@comment BSD: Socket is not connected
+@comment BSD: Transport endpoint is not connected
 @deftypevr Macro int ENOTCONN
 @comment errno 57 @c DO NOT REMOVE
 The socket is not connected to anything.  You get this error when you
@@ -644,14 +644,14 @@ without first specifying a destination for the data with @code{connect}.
 @end deftypevr
 
 @comment errno.h
-@comment BSD: Can't send after socket shutdown
+@comment BSD: Cannot send after transport endpoint shutdown
 @deftypevr Macro int ESHUTDOWN
 @comment errno 58 @c DO NOT REMOVE
 The socket has already been shut down.
 @end deftypevr
 
 @comment errno.h
-@comment BSD: Too many references: can't splice
+@comment BSD: Too many references: cannot splice
 @deftypevr Macro int ETOOMANYREFS
 @comment errno 59 @c DO NOT REMOVE
 ???
@@ -747,7 +747,7 @@ the NFS file system on the local host.
 @end deftypevr
 
 @comment errno.h
-@comment BSD: Too many levels of remote in path
+@comment BSD: Object is remote
 @deftypevr Macro int EREMOTE
 @comment errno 71 @c DO NOT REMOVE
 An attempt was made to NFS-mount a remote file system with a file name that
@@ -892,6 +892,296 @@ Go home and have a glass of warm, dairy-fresh milk.
 This error code has no purpose.
 @end deftypevr
 
+@emph{The following error codes are defined by the Linux/i386 kernel.
+They are not yet documented.}
+
+@comment errno.h
+@comment Linux???: Interrupted system call should be restarted
+@deftypevr Macro int ERESTART
+@comment errno ???/85
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: No message of desired type
+@deftypevr Macro int ENOMSG
+@comment errno ???/42
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Identifier removed
+@deftypevr Macro int EIDRM
+@comment errno ???/43
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Channel number out of range
+@deftypevr Macro int ECHRNG
+@comment errno ???/44
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Level 2 not synchronized
+@deftypevr Macro int EL2NSYNC
+@comment errno ???/45
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Level 3 halted
+@deftypevr Macro int EL3HLT
+@comment errno ???/46
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Level 3 reset
+@deftypevr Macro int EL3RST
+@comment errno ???/47
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Link number out of range
+@deftypevr Macro int ELNRNG
+@comment errno ???/48
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Protocol driver not attached
+@deftypevr Macro int EUNATCH
+@comment errno ???/49
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: No CSI structure available
+@deftypevr Macro int ENOCSI
+@comment errno ???/50
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Level 2 halted
+@deftypevr Macro int EL2HLT
+@comment errno ???/51
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Invalid exchange
+@deftypevr Macro int EBADE
+@comment errno ???/52
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Invalid request descriptor
+@deftypevr Macro int EBADR
+@comment errno ???/53
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Exchange full
+@deftypevr Macro int EXFULL
+@comment errno ???/54
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: No anode
+@deftypevr Macro int ENOANO
+@comment errno ???/55
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Invalid request code
+@deftypevr Macro int EBADRQC
+@comment errno ???/56
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Invalid slot
+@deftypevr Macro int EBADSLT
+@comment errno ???/57
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: File locking deadlock error
+@deftypevr Macro int EDEADLOCK
+@comment errno ???/58
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Bad font file format
+@deftypevr Macro int EBFONT
+@comment errno ???/59
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Device not a stream
+@deftypevr Macro int ENOSTR
+@comment errno ???/60
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: No data available
+@deftypevr Macro int ENODATA
+@comment errno ???/61
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Timer expired
+@deftypevr Macro int ETIME
+@comment errno ???/62
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Out of streams resources
+@deftypevr Macro int ENOSR
+@comment errno ???/63
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Machine is not on the network
+@deftypevr Macro int ENONET
+@comment errno ???/64
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Package not installed
+@deftypevr Macro int ENOPKG
+@comment errno ???/65
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Link has been severed
+@deftypevr Macro int ENOLINK
+@comment errno ???/67
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Advertise error
+@deftypevr Macro int EADV
+@comment errno ???/68
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Srmount error
+@deftypevr Macro int ESRMNT
+@comment errno ???/69
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Communication error on send
+@deftypevr Macro int ECOMM
+@comment errno ???/70
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Protocol error
+@deftypevr Macro int EPROTO
+@comment errno ???/71
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Multihop attempted
+@deftypevr Macro int EMULTIHOP
+@comment errno ???/72
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: RFS specific error
+@deftypevr Macro int EDOTDOT
+@comment errno ???/73
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Not a data message
+@deftypevr Macro int EBADMSG
+@comment errno ???/74
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Value too large for defined data type
+@deftypevr Macro int EOVERFLOW
+@comment errno ???/75
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Name not unique on network
+@deftypevr Macro int ENOTUNIQ
+@comment errno ???/76
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: File descriptor in bad state
+@deftypevr Macro int EBADFD
+@comment errno ???/77
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Remote address changed
+@deftypevr Macro int EREMCHG
+@comment errno ???/78
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Can not access a needed shared library
+@deftypevr Macro int ELIBACC
+@comment errno ???/79
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Accessing a corrupted shared library
+@deftypevr Macro int ELIBBAD
+@comment errno ???/80
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: .lib section in a.out corrupted
+@deftypevr Macro int ELIBSCN
+@comment errno ???/81
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Attempting to link in too many shared libraries
+@deftypevr Macro int ELIBMAX
+@comment errno ???/82
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Cannot exec a shared library directly
+@deftypevr Macro int ELIBEXEC
+@comment errno ???/83
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Streams pipe error
+@deftypevr Macro int ESTRPIPE
+@comment errno ???/86
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Structure needs cleaning
+@deftypevr Macro int EUCLEAN
+@comment errno ???/117
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Not a XENIX named type file
+@deftypevr Macro int ENOTNAM
+@comment errno ???/118
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: No XENIX semaphores available
+@deftypevr Macro int ENAVAIL
+@comment errno ???/119
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Is a named type file
+@deftypevr Macro int EISNAM
+@comment errno ???/120
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Remote I/O error
+@deftypevr Macro int EREMOTEIO
+@comment errno ???/121
+@end deftypevr
 
 @node Error Messages,  , Error Codes, Error Reporting
 @section Error Messages
diff --git a/signal/Makefile b/signal/Makefile
index a6e89ad43c..6957953ba7 100644
--- a/signal/Makefile
+++ b/signal/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+# Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -30,7 +30,7 @@ routines	:= signal raise killpg \
 		   sigstack sigaltstack sigintr \
 		   sigsetops sigempty sigfillset sigaddset sigdelset sigismem \
 		   sigreturn \
-		   gsignal ssignal
+		   gsignal ssignal siggetmask
 
 tests		:= tst-signal
 
diff --git a/signal/siggetmask.c b/signal/siggetmask.c
new file mode 100644
index 0000000000..348fe9a0c3
--- /dev/null
+++ b/signal/siggetmask.c
@@ -0,0 +1,29 @@
+/* siggetmask -- useless alias for `sigblock (0)' for old Linux compatibility.
+Copyright (C) 1996 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., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <signal.h>
+
+int
+siggetmask (void)
+{
+  return __sigblock (0);
+}
+
+link_warning (siggetmask,
+	      "warning: `siggetmask' is obsolete; `sigprocmask' is best")
diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile
new file mode 100644
index 0000000000..45c63136f8
--- /dev/null
+++ b/sysdeps/gnu/Makefile
@@ -0,0 +1,28 @@
+# Copyright (C) 1996 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., 675 Mass Ave,
+# Cambridge, MA 02139, USA.
+
+# Generate the list of strings for errno codes from the section of the
+# manual which documents the codes.
+
+$(..)sysdeps/gnu/errlist.c: $(..)sysdeps/gnu/errlist.awk \
+			    $(..)manual/errno.texi
+	awk -f $^ > $@-tmp
+# Make it unwritable so noone will edit it by mistake.
+	-chmod a-w $@-tmp
+	mv -f $@-tmp $@
+	test ! -d CVS || cvs commit -m'Regenerated from $^' $@
diff --git a/sysdeps/mach/hurd/errlist.awk b/sysdeps/gnu/errlist.awk
index a06ec88af7..d14348f0b9 100644
--- a/sysdeps/mach/hurd/errlist.awk
+++ b/sysdeps/gnu/errlist.awk
@@ -1,4 +1,4 @@
-# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+# Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -25,15 +25,11 @@
 BEGIN {
     print "/* This file is generated from errno.texi by errlist.awk.  */"
     print "";
-    print "#ifndef HAVE_GNU_LD"
-    print "#define _sys_nerr sys_nerr"
-    print "#define _sys_errlist sys_errlist"
-    print "#endif"
-    print ""
+    print "#include <errno.h>";
+    print "";
     print "const char *_sys_errlist[] =";
     print "  {";
-    maxerrno = 0;
-    print "    \"Success\","
+    print "    [0] = N_(\"Success\"),"
   }
 $1 == "@comment" && $2 == "errno.h" { errnoh=1; next }
 errnoh == 1 && $1 == "@comment" \
@@ -51,27 +47,19 @@ errnoh == 2 && $1 == "@deftypevr" && $2 == "Macro" && $3 == "int" \
 errnoh == 3 && $1 == "@comment" && $2 == "errno" \
   {
     errno = $3 + 0;
-    msgs[errno] = etext;
-    names[errno] = e;
-    if (errno > maxerrno) maxerrno = errno;
+    if (e == "EWOULDBLOCK")
+      print "#if defined (EWOULDBLOCK) && EWOULDBLOCK != EAGAIN";
+    else
+      printf "#ifdef %s\n", e;
+    printf "    [%s] = N_(\"%s\"),\n", e, etext;
+    print "#endif";
     next;
   }
 { errnoh=0 }
 END {
-  for (i = 1; i <= maxerrno; ++i)
-    {
-      if (names[i] == "")
-	print "    \"Reserved error " i "\",";
-      else
-	printf "%-40s/* %d = %s */\n", "    \"" msgs[i] "\",", i, names[i];
-    }
   print "  };";
   print "";
-  print "#include <errno.h>";
-  printf "#if _HURD_ERRNOS != %d\n", maxerrno+1;
-  print "#error errlist/errnos generation bug";
-  print "#endif"
-  printf "const int _sys_nerr = %d;\n", maxerrno+1;
-  print "weak_alias (_sys_errlist, sys_errlist)"
-  print "weak_alias (_sys_nerr, sys_nerr)"
+  print "const int _sys_nerr = sizeof _sys_errlist / sizeof _sys_errlist[0];";
+  print "weak_alias (_sys_errlist, sys_errlist)";
+  print "weak_alias (_sys_nerr, sys_nerr)";
   }
diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
new file mode 100644
index 0000000000..59e7f52b97
--- /dev/null
+++ b/sysdeps/gnu/errlist.c
@@ -0,0 +1,423 @@
+/* This file is generated from errno.texi by errlist.awk.  */
+
+#include <errno.h>
+
+const char *_sys_errlist[] =
+  {
+    [0] = N_("Success"),
+#ifdef EPERM
+    [EPERM] = N_("Operation not permitted"),
+#endif
+#ifdef ENOENT
+    [ENOENT] = N_("No such file or directory"),
+#endif
+#ifdef ESRCH
+    [ESRCH] = N_("No such process"),
+#endif
+#ifdef EINTR
+    [EINTR] = N_("Interrupted system call"),
+#endif
+#ifdef EIO
+    [EIO] = N_("Input/output error"),
+#endif
+#ifdef ENXIO
+    [ENXIO] = N_("Device not configured"),
+#endif
+#ifdef E2BIG
+    [E2BIG] = N_("Argument list too long"),
+#endif
+#ifdef ENOEXEC
+    [ENOEXEC] = N_("Exec format error"),
+#endif
+#ifdef EBADF
+    [EBADF] = N_("Bad file descriptor"),
+#endif
+#ifdef ECHILD
+    [ECHILD] = N_("No child processes"),
+#endif
+#ifdef EDEADLK
+    [EDEADLK] = N_("Resource deadlock avoided"),
+#endif
+#ifdef ENOMEM
+    [ENOMEM] = N_("Cannot allocate memory"),
+#endif
+#ifdef EACCES
+    [EACCES] = N_("Permission denied"),
+#endif
+#ifdef EFAULT
+    [EFAULT] = N_("Bad address"),
+#endif
+#ifdef ENOTBLK
+    [ENOTBLK] = N_("Block device required"),
+#endif
+#ifdef EBUSY
+    [EBUSY] = N_("Device or resource busy"),
+#endif
+#ifdef EEXIST
+    [EEXIST] = N_("File exists"),
+#endif
+#ifdef EXDEV
+    [EXDEV] = N_("Invalid cross-device link"),
+#endif
+#ifdef ENODEV
+    [ENODEV] = N_("Operation not supported by device"),
+#endif
+#ifdef ENOTDIR
+    [ENOTDIR] = N_("Not a directory"),
+#endif
+#ifdef EISDIR
+    [EISDIR] = N_("Is a directory"),
+#endif
+#ifdef EINVAL
+    [EINVAL] = N_("Invalid argument"),
+#endif
+#ifdef EMFILE
+    [EMFILE] = N_("Too many open files"),
+#endif
+#ifdef ENFILE
+    [ENFILE] = N_("Too many open files in system"),
+#endif
+#ifdef ENOTTY
+    [ENOTTY] = N_("Inappropriate ioctl for device"),
+#endif
+#ifdef ETXTBSY
+    [ETXTBSY] = N_("Text file busy"),
+#endif
+#ifdef EFBIG
+    [EFBIG] = N_("File too large"),
+#endif
+#ifdef ENOSPC
+    [ENOSPC] = N_("No space left on device"),
+#endif
+#ifdef ESPIPE
+    [ESPIPE] = N_("Illegal seek"),
+#endif
+#ifdef EROFS
+    [EROFS] = N_("Read-only file system"),
+#endif
+#ifdef EMLINK
+    [EMLINK] = N_("Too many links"),
+#endif
+#ifdef EPIPE
+    [EPIPE] = N_("Broken pipe"),
+#endif
+#ifdef EDOM
+    [EDOM] = N_("Numerical argument out of domain"),
+#endif
+#ifdef ERANGE
+    [ERANGE] = N_("Numerical result out of range"),
+#endif
+#ifdef EAGAIN
+    [EAGAIN] = N_("Resource temporarily unavailable"),
+#endif
+#if defined (EWOULDBLOCK) && EWOULDBLOCK != EAGAIN
+    [EWOULDBLOCK] = N_("Operation would block"),
+#endif
+#ifdef EINPROGRESS
+    [EINPROGRESS] = N_("Operation now in progress"),
+#endif
+#ifdef EALREADY
+    [EALREADY] = N_("Operation already in progress"),
+#endif
+#ifdef ENOTSOCK
+    [ENOTSOCK] = N_("Socket operation on non-socket"),
+#endif
+#ifdef EMSGSIZE
+    [EMSGSIZE] = N_("Message too long"),
+#endif
+#ifdef EPROTOTYPE
+    [EPROTOTYPE] = N_("Protocol wrong type for socket"),
+#endif
+#ifdef ENOPROTOOPT
+    [ENOPROTOOPT] = N_("Protocol not available"),
+#endif
+#ifdef EPROTONOSUPPORT
+    [EPROTONOSUPPORT] = N_("Protocol not supported"),
+#endif
+#ifdef ESOCKTNOSUPPORT
+    [ESOCKTNOSUPPORT] = N_("Socket type not supported"),
+#endif
+#ifdef EOPNOTSUPP
+    [EOPNOTSUPP] = N_("Operation not supported"),
+#endif
+#ifdef EPFNOSUPPORT
+    [EPFNOSUPPORT] = N_("Protocol family not supported"),
+#endif
+#ifdef EAFNOSUPPORT
+    [EAFNOSUPPORT] = N_("Address family not supported by protocol"),
+#endif
+#ifdef EADDRINUSE
+    [EADDRINUSE] = N_("Address already in use"),
+#endif
+#ifdef EADDRNOTAVAIL
+    [EADDRNOTAVAIL] = N_("Cannot assign requested address"),
+#endif
+#ifdef ENETDOWN
+    [ENETDOWN] = N_("Network is down"),
+#endif
+#ifdef ENETUNREACH
+    [ENETUNREACH] = N_("Network is unreachable"),
+#endif
+#ifdef ENETRESET
+    [ENETRESET] = N_("Network dropped connection on reset"),
+#endif
+#ifdef ECONNABORTED
+    [ECONNABORTED] = N_("Software caused connection abort"),
+#endif
+#ifdef ECONNRESET
+    [ECONNRESET] = N_("Connection reset by peer"),
+#endif
+#ifdef ENOBUFS
+    [ENOBUFS] = N_("No buffer space available"),
+#endif
+#ifdef EISCONN
+    [EISCONN] = N_("Transport endpoint is already connected"),
+#endif
+#ifdef ENOTCONN
+    [ENOTCONN] = N_("Transport endpoint is not connected"),
+#endif
+#ifdef EDESTADDRREQ
+    [EDESTADDRREQ] = N_("Destination address required"),
+#endif
+#ifdef ESHUTDOWN
+    [ESHUTDOWN] = N_("Cannot send after transport endpoint shutdown"),
+#endif
+#ifdef ETOOMANYREFS
+    [ETOOMANYREFS] = N_("Too many references: cannot splice"),
+#endif
+#ifdef ETIMEDOUT
+    [ETIMEDOUT] = N_("Connection timed out"),
+#endif
+#ifdef ECONNREFUSED
+    [ECONNREFUSED] = N_("Connection refused"),
+#endif
+#ifdef ELOOP
+    [ELOOP] = N_("Too many levels of symbolic links"),
+#endif
+#ifdef ENAMETOOLONG
+    [ENAMETOOLONG] = N_("File name too long"),
+#endif
+#ifdef EHOSTDOWN
+    [EHOSTDOWN] = N_("Host is down"),
+#endif
+#ifdef EHOSTUNREACH
+    [EHOSTUNREACH] = N_("No route to host"),
+#endif
+#ifdef ENOTEMPTY
+    [ENOTEMPTY] = N_("Directory not empty"),
+#endif
+#ifdef EPROCLIM
+    [EPROCLIM] = N_("Too many processes"),
+#endif
+#ifdef EUSERS
+    [EUSERS] = N_("Too many users"),
+#endif
+#ifdef EDQUOT
+    [EDQUOT] = N_("Disc quota exceeded"),
+#endif
+#ifdef ESTALE
+    [ESTALE] = N_("Stale NFS file handle"),
+#endif
+#ifdef EREMOTE
+    [EREMOTE] = N_("Object is remote"),
+#endif
+#ifdef EBADRPC
+    [EBADRPC] = N_("RPC struct is bad"),
+#endif
+#ifdef ERPCMISMATCH
+    [ERPCMISMATCH] = N_("RPC version wrong"),
+#endif
+#ifdef EPROGUNAVAIL
+    [EPROGUNAVAIL] = N_("RPC program not available"),
+#endif
+#ifdef EPROGMISMATCH
+    [EPROGMISMATCH] = N_("RPC program version wrong"),
+#endif
+#ifdef EPROCUNAVAIL
+    [EPROCUNAVAIL] = N_("RPC bad procedure for program"),
+#endif
+#ifdef ENOLCK
+    [ENOLCK] = N_("No locks available"),
+#endif
+#ifdef EFTYPE
+    [EFTYPE] = N_("Inappropriate file type or format"),
+#endif
+#ifdef EAUTH
+    [EAUTH] = N_("Authentication error"),
+#endif
+#ifdef ENEEDAUTH
+    [ENEEDAUTH] = N_("Need authenticator"),
+#endif
+#ifdef ENOSYS
+    [ENOSYS] = N_("Function not implemented"),
+#endif
+#ifdef EILSEQ
+    [EILSEQ] = N_("Invalid or incomplete multibyte or wide character"),
+#endif
+#ifdef EBACKGROUND
+    [EBACKGROUND] = N_("Inappropriate operation for background process"),
+#endif
+#ifdef EDIED
+    [EDIED] = N_("Translator died"),
+#endif
+#ifdef ED
+    [ED] = N_("?"),
+#endif
+#ifdef EGREGIOUS
+    [EGREGIOUS] = N_("You really blew it this time"),
+#endif
+#ifdef EIEIO
+    [EIEIO] = N_("Computer bought the farm"),
+#endif
+#ifdef EGRATUITOUS
+    [EGRATUITOUS] = N_("Gratuitous error"),
+#endif
+#ifdef ERESTART
+    [ERESTART] = N_("Interrupted system call should be restarted"),
+#endif
+#ifdef ENOMSG
+    [ENOMSG] = N_("No message of desired type"),
+#endif
+#ifdef EIDRM
+    [EIDRM] = N_("Identifier removed"),
+#endif
+#ifdef ECHRNG
+    [ECHRNG] = N_("Channel number out of range"),
+#endif
+#ifdef EL2NSYNC
+    [EL2NSYNC] = N_("Level 2 not synchronized"),
+#endif
+#ifdef EL3HLT
+    [EL3HLT] = N_("Level 3 halted"),
+#endif
+#ifdef EL3RST
+    [EL3RST] = N_("Level 3 reset"),
+#endif
+#ifdef ELNRNG
+    [ELNRNG] = N_("Link number out of range"),
+#endif
+#ifdef EUNATCH
+    [EUNATCH] = N_("Protocol driver not attached"),
+#endif
+#ifdef ENOCSI
+    [ENOCSI] = N_("No CSI structure available"),
+#endif
+#ifdef EL2HLT
+    [EL2HLT] = N_("Level 2 halted"),
+#endif
+#ifdef EBADE
+    [EBADE] = N_("Invalid exchange"),
+#endif
+#ifdef EBADR
+    [EBADR] = N_("Invalid request descriptor"),
+#endif
+#ifdef EXFULL
+    [EXFULL] = N_("Exchange full"),
+#endif
+#ifdef ENOANO
+    [ENOANO] = N_("No anode"),
+#endif
+#ifdef EBADRQC
+    [EBADRQC] = N_("Invalid request code"),
+#endif
+#ifdef EBADSLT
+    [EBADSLT] = N_("Invalid slot"),
+#endif
+#ifdef EDEADLOCK
+    [EDEADLOCK] = N_("File locking deadlock error"),
+#endif
+#ifdef EBFONT
+    [EBFONT] = N_("Bad font file format"),
+#endif
+#ifdef ENOSTR
+    [ENOSTR] = N_("Device not a stream"),
+#endif
+#ifdef ENODATA
+    [ENODATA] = N_("No data available"),
+#endif
+#ifdef ETIME
+    [ETIME] = N_("Timer expired"),
+#endif
+#ifdef ENOSR
+    [ENOSR] = N_("Out of streams resources"),
+#endif
+#ifdef ENONET
+    [ENONET] = N_("Machine is not on the network"),
+#endif
+#ifdef ENOPKG
+    [ENOPKG] = N_("Package not installed"),
+#endif
+#ifdef ENOLINK
+    [ENOLINK] = N_("Link has been severed"),
+#endif
+#ifdef EADV
+    [EADV] = N_("Advertise error"),
+#endif
+#ifdef ESRMNT
+    [ESRMNT] = N_("Srmount error"),
+#endif
+#ifdef ECOMM
+    [ECOMM] = N_("Communication error on send"),
+#endif
+#ifdef EPROTO
+    [EPROTO] = N_("Protocol error"),
+#endif
+#ifdef EMULTIHOP
+    [EMULTIHOP] = N_("Multihop attempted"),
+#endif
+#ifdef EDOTDOT
+    [EDOTDOT] = N_("RFS specific error"),
+#endif
+#ifdef EBADMSG
+    [EBADMSG] = N_("Not a data message"),
+#endif
+#ifdef EOVERFLOW
+    [EOVERFLOW] = N_("Value too large for defined data type"),
+#endif
+#ifdef ENOTUNIQ
+    [ENOTUNIQ] = N_("Name not unique on network"),
+#endif
+#ifdef EBADFD
+    [EBADFD] = N_("File descriptor in bad state"),
+#endif
+#ifdef EREMCHG
+    [EREMCHG] = N_("Remote address changed"),
+#endif
+#ifdef ELIBACC
+    [ELIBACC] = N_("Can not access a needed shared library"),
+#endif
+#ifdef ELIBBAD
+    [ELIBBAD] = N_("Accessing a corrupted shared library"),
+#endif
+#ifdef ELIBSCN
+    [ELIBSCN] = N_(".lib section in a.out corrupted"),
+#endif
+#ifdef ELIBMAX
+    [ELIBMAX] = N_("Attempting to link in too many shared libraries"),
+#endif
+#ifdef ELIBEXEC
+    [ELIBEXEC] = N_("Cannot exec a shared library directly"),
+#endif
+#ifdef ESTRPIPE
+    [ESTRPIPE] = N_("Streams pipe error"),
+#endif
+#ifdef EUCLEAN
+    [EUCLEAN] = N_("Structure needs cleaning"),
+#endif
+#ifdef ENOTNAM
+    [ENOTNAM] = N_("Not a XENIX named type file"),
+#endif
+#ifdef ENAVAIL
+    [ENAVAIL] = N_("No XENIX semaphores available"),
+#endif
+#ifdef EISNAM
+    [EISNAM] = N_("Is a named type file"),
+#endif
+#ifdef EREMOTEIO
+    [EREMOTEIO] = N_("Remote I/O error"),
+#endif
+  };
+
+const int _sys_nerr = sizeof _sys_errlist / sizeof _sys_errlist[0];
+weak_alias (_sys_errlist, sys_errlist)
+weak_alias (_sys_nerr, sys_nerr)
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 298cd5f71a..f4b590a06b 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -53,8 +53,8 @@ $(patsubst %,$(hurd-objpfx)hurd/%.%,io fs process):
 	$(MAKE) -C $(..)hurd generated no_deps=t
 endif
 
-# Generate errnos.h and sys_errlist.c from the section of the manual that
-# lists all the errno codes.
+# Generate errnos.h from the section of the manual that lists all the errno
+# codes.
 
 errno.texinfo = $(..)manual/errno.texi
 
@@ -90,13 +90,6 @@ $(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \
 #	  (cd $(hurd); cvs commit -m'Regenerated from $^' errnos.h)
 	touch $@
 generated += errnos.d stamp-errnos
-
-$(hurd)/errlist.c: $(hurd)/errlist.awk $(errno.texinfo)
-	gawk -f $^ > $@-tmp
-# Make it unwritable so noone will edit it by mistake.
-	-chmod a-w $@-tmp
-	mv -f $@-tmp $@
-	test ! -d CVS || cvs commit -m'Regenerated from $^' $@
 
 # We install the real libc.a as libcrt.a and as libc.a we install a linker
 # script which does -( -lcrt -lmachuser -lhurduser -).