From b25ae9c6a41d91a57379c223420b6b8a05940ff2 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 4 Jun 1996 01:41:11 +0000 Subject: Tue Jun 4 00:16:03 1996 Roland McGrath * 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. * 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. --- sysdeps/gnu/Makefile | 28 +++ sysdeps/gnu/errlist.awk | 65 +++++++ sysdeps/gnu/errlist.c | 423 ++++++++++++++++++++++++++++++++++++++++++ sysdeps/mach/hurd/Makefile | 11 +- sysdeps/mach/hurd/errlist.awk | 77 -------- 5 files changed, 518 insertions(+), 86 deletions(-) create mode 100644 sysdeps/gnu/Makefile create mode 100644 sysdeps/gnu/errlist.awk create mode 100644 sysdeps/gnu/errlist.c delete mode 100644 sysdeps/mach/hurd/errlist.awk (limited to 'sysdeps') 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/gnu/errlist.awk b/sysdeps/gnu/errlist.awk new file mode 100644 index 0000000000..d14348f0b9 --- /dev/null +++ b/sysdeps/gnu/errlist.awk @@ -0,0 +1,65 @@ +# 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 +# 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. + +# errno.texinfo contains lines like: +# @comment errno.h +# @comment POSIX.1: Function not implemented +# @deftypevr Macro int ENOSYS +# @comment errno 78 + +BEGIN { + print "/* This file is generated from errno.texi by errlist.awk. */" + print ""; + print "#include "; + print ""; + print "const char *_sys_errlist[] ="; + print " {"; + print " [0] = N_(\"Success\")," + } +$1 == "@comment" && $2 == "errno.h" { errnoh=1; next } +errnoh == 1 && $1 == "@comment" \ + { + ++errnoh; + etext = $3; + for (i = 4; i <= NF; ++i) + etext = etext " " $i; + next; + } +errnoh == 2 && $1 == "@deftypevr" && $2 == "Macro" && $3 == "int" \ + { + e = $4; errnoh++; next; + } +errnoh == 3 && $1 == "@comment" && $2 == "errno" \ + { + errno = $3 + 0; + 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 { + print " };"; + print ""; + 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 + +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 -). diff --git a/sysdeps/mach/hurd/errlist.awk b/sysdeps/mach/hurd/errlist.awk deleted file mode 100644 index a06ec88af7..0000000000 --- a/sysdeps/mach/hurd/errlist.awk +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 1991, 1992, 1993, 1994, 1995 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. - -# errno.texinfo contains lines like: -# @comment errno.h -# @comment POSIX.1: Function not implemented -# @deftypevr Macro int ENOSYS -# @comment errno 78 - -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 "const char *_sys_errlist[] ="; - print " {"; - maxerrno = 0; - print " \"Success\"," - } -$1 == "@comment" && $2 == "errno.h" { errnoh=1; next } -errnoh == 1 && $1 == "@comment" \ - { - ++errnoh; - etext = $3; - for (i = 4; i <= NF; ++i) - etext = etext " " $i; - next; - } -errnoh == 2 && $1 == "@deftypevr" && $2 == "Macro" && $3 == "int" \ - { - e = $4; errnoh++; next; - } -errnoh == 3 && $1 == "@comment" && $2 == "errno" \ - { - errno = $3 + 0; - msgs[errno] = etext; - names[errno] = e; - if (errno > maxerrno) maxerrno = errno; - 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 "; - 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)" - } -- cgit v1.2.3