strerrorname_np is another new function in glibc 2.32. It is probably useful for the runtime library of many programming languages (such as guile or GNU clisp).
Here's a module which adds support for it to gnulib, so that it may be used in GNU code without portability worries. Note: The function is completely unusable in glibc 2.32, see <https://sourceware.org/bugzilla/show_bug.cgi?id=26555>. Gnulib overrides it therefore. I also don't want to hide from you these two error codes: In GNU/Hurd there is EIEIO = 0x40000068, /* Computer bought the farm */ and in MirBSD 10 there is #define ENOCOFFEE 85 /* Programmer needs more coffee */
>From 4041bb7cb24874ac7c4c927775666df6b59a5479 Mon Sep 17 00:00:00 2001 From: Bruno Haible <br...@clisp.org> Date: Sun, 30 Aug 2020 22:19:05 +0200 Subject: [PATCH 1/2] strerrorname_np: New module. * lib/string.in.h (strerrorname_np): New declaration. * lib/strerrorname_np.c: New file. * m4/strerrorname_np.m4: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether strerrorname_np is declared. (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRERRORNAME_NP, HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP. * modules/string (Makefile.am): Substitute GNULIB_STRERRORNAME_NP, HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP. * modules/strerrorname_np: New file. * tests/test-string-c++.cc: Verify the signature of strerrorname_np. * doc/glibc-functions/strerrorname_np.texi: Mention the new module and the glibc 2.32 bug. --- ChangeLog | 17 + doc/glibc-functions/strerrorname_np.texi | 12 +- lib/strerrorname_np.c | 1342 ++++++++++++++++++++++++++++++ lib/string.in.h | 24 + m4/strerrorname_np.m4 | 46 + m4/string_h.m4 | 89 +- modules/strerrorname_np | 28 + modules/string | 3 + tests/test-string-c++.cc | 4 + 9 files changed, 1518 insertions(+), 47 deletions(-) create mode 100644 lib/strerrorname_np.c create mode 100644 m4/strerrorname_np.m4 create mode 100644 modules/strerrorname_np diff --git a/ChangeLog b/ChangeLog index 719b958..47df957 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2020-08-30 Bruno Haible <br...@clisp.org> + + strerrorname_np: New module. + * lib/string.in.h (strerrorname_np): New declaration. + * lib/strerrorname_np.c: New file. + * m4/strerrorname_np.m4: New file. + * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether strerrorname_np + is declared. + (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRERRORNAME_NP, + HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP. + * modules/string (Makefile.am): Substitute GNULIB_STRERRORNAME_NP, + HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP. + * modules/strerrorname_np: New file. + * tests/test-string-c++.cc: Verify the signature of strerrorname_np. + * doc/glibc-functions/strerrorname_np.texi: Mention the new module and + the glibc 2.32 bug. + 2020-08-27 Paul Eggert <egg...@cs.ucla.edu> perror, strerror_r: remove unportable tests diff --git a/doc/glibc-functions/strerrorname_np.texi b/doc/glibc-functions/strerrorname_np.texi index a82e3ee..12ec280 100644 --- a/doc/glibc-functions/strerrorname_np.texi +++ b/doc/glibc-functions/strerrorname_np.texi @@ -10,15 +10,19 @@ Documentation:@* @url{https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html}. @end ifnotinfo -Gnulib module: --- +Gnulib module: strerrorname_np Portability problems fixed by Gnulib: @itemize +@item +This function is missing on all non-glibc platforms: +glibc 2.31, Mac OS X 10.13, FreeBSD 6.4, NetBSD 9.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@item +This function returns wrong values on some platforms: +@c https://sourceware.org/bugzilla/show_bug.cgi?id=26555 +glibc 2.32. @end itemize Portability problems not fixed by Gnulib: @itemize -@item -This function is missing on all non-glibc platforms: -glibc 2.31, Mac OS X 10.13, FreeBSD 6.4, NetBSD 9.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0. @end itemize diff --git a/lib/strerrorname_np.c b/lib/strerrorname_np.c new file mode 100644 index 0000000..b2fb888 --- /dev/null +++ b/lib/strerrorname_np.c @@ -0,0 +1,1342 @@ +/* Name of system error code. + Copyright (C) 2020 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Written by Bruno Haible <br...@clisp.org>, 2020. */ + +#include <config.h> + +/* Specification. */ +#include <string.h> + +#include <errno.h> + +const char * +strerrorname_np (int errnum) +{ + switch (errnum) + { + /* Error codes specified by ISO C. */ + case EDOM: return "EDOM"; + case EILSEQ: return "EILSEQ"; + case ERANGE: return "ERANGE"; + + /* Error codes specified by POSIX. + <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html> */ + #if defined E2BIG + case E2BIG: return "E2BIG"; + #endif + #if defined EACCES + case EACCES: return "EACCES"; + #endif + #if defined EADDRINUSE + case EADDRINUSE: return "EADDRINUSE"; + #endif + #if defined EADDRNOTAVAIL + case EADDRNOTAVAIL: return "EADDRNOTAVAIL"; + #endif + #if defined EAFNOSUPPORT + case EAFNOSUPPORT: return "EAFNOSUPPORT"; + #endif + #if defined EAGAIN + case EAGAIN: return "EAGAIN"; + #endif + #if defined EALREADY + case EALREADY: return "EALREADY"; + #endif + #if defined EBADF + case EBADF: return "EBADF"; + #endif + #if defined EBADMSG + case EBADMSG: return "EBADMSG"; + #endif + #if defined EBUSY + case EBUSY: return "EBUSY"; + #endif + #if defined ECANCELED + case ECANCELED: return "ECANCELED"; + #endif + #if defined ECHILD + case ECHILD: return "ECHILD"; + #endif + #if defined ECONNABORTED + case ECONNABORTED: return "ECONNABORTED"; + #endif + #if defined ECONNREFUSED + case ECONNREFUSED: return "ECONNREFUSED"; + #endif + #if defined ECONNRESET + case ECONNRESET: return "ECONNRESET"; + #endif + #if defined EDEADLK + case EDEADLK: return "EDEADLK"; + #endif + #if defined EDESTADDRREQ + case EDESTADDRREQ: return "EDESTADDRREQ"; + #endif + #if defined EDQUOT + case EDQUOT: return "EDQUOT"; + #endif + #if defined EEXIST + case EEXIST: return "EEXIST"; + #endif + #if defined EFAULT + case EFAULT: return "EFAULT"; + #endif + #if defined EFBIG + case EFBIG: return "EFBIG"; + #endif + #if defined EHOSTUNREACH + case EHOSTUNREACH: return "EHOSTUNREACH"; + #endif + #if defined EIDRM + case EIDRM: return "EIDRM"; + #endif + #if defined EINPROGRESS + case EINPROGRESS: return "EINPROGRESS"; + #endif + #if defined EINTR + case EINTR: return "EINTR"; + #endif + #if defined EINVAL + case EINVAL: return "EINVAL"; + #endif + #if defined EIO + case EIO: return "EIO"; + #endif + #if defined EISCONN + case EISCONN: return "EISCONN"; + #endif + #if defined EISDIR + case EISDIR: return "EISDIR"; + #endif + #if defined ELOOP + case ELOOP: return "ELOOP"; + #endif + #if defined EMFILE + case EMFILE: return "EMFILE"; + #endif + #if defined EMLINK + case EMLINK: return "EMLINK"; + #endif + #if defined EMSGSIZE + case EMSGSIZE: return "EMSGSIZE"; + #endif + #if defined EMULTIHOP + case EMULTIHOP: return "EMULTIHOP"; + #endif + #if defined ENAMETOOLONG + case ENAMETOOLONG: return "ENAMETOOLONG"; + #endif + #if defined ENETDOWN + case ENETDOWN: return "ENETDOWN"; + #endif + #if defined ENETRESET + case ENETRESET: return "ENETRESET"; + #endif + #if defined ENETUNREACH + case ENETUNREACH: return "ENETUNREACH"; + #endif + #if defined ENFILE + case ENFILE: return "ENFILE"; + #endif + #if defined ENOBUFS + case ENOBUFS: return "ENOBUFS"; + #endif + #if defined ENODATA + case ENODATA: return "ENODATA"; + #endif + #if defined ENODEV + case ENODEV: return "ENODEV"; + #endif + #if defined ENOENT + case ENOENT: return "ENOENT"; + #endif + #if defined ENOEXEC + case ENOEXEC: return "ENOEXEC"; + #endif + #if defined ENOLCK + case ENOLCK: return "ENOLCK"; + #endif + #if defined ENOLINK + case ENOLINK: return "ENOLINK"; + #endif + #if defined ENOMEM + case ENOMEM: return "ENOMEM"; + #endif + #if defined ENOMSG + case ENOMSG: return "ENOMSG"; + #endif + #if defined ENOPROTOOPT + case ENOPROTOOPT: return "ENOPROTOOPT"; + #endif + #if defined ENOSPC + case ENOSPC: return "ENOSPC"; + #endif + #if defined ENOSR + case ENOSR: return "ENOSR"; + #endif + #if defined ENOSTR + case ENOSTR: return "ENOSTR"; + #endif + #if defined ENOSYS + case ENOSYS: return "ENOSYS"; + #endif + #if defined ENOTCONN + case ENOTCONN: return "ENOTCONN"; + #endif + #if defined ENOTDIR + case ENOTDIR: return "ENOTDIR"; + #endif + #if defined ENOTEMPTY && ENOTEMPTY != EEXIST + case ENOTEMPTY: return "ENOTEMPTY"; + #endif + #if defined ENOTRECOVERABLE + case ENOTRECOVERABLE: return "ENOTRECOVERABLE"; + #endif + #if defined ENOTSOCK + case ENOTSOCK: return "ENOTSOCK"; + #endif + #if defined ENOTSUP && ENOTSUP != EOPNOTSUPP + case ENOTSUP: return "ENOTSUP"; + #endif + #if defined ENOTTY + case ENOTTY: return "ENOTTY"; + #endif + #if defined ENXIO + case ENXIO: return "ENXIO"; + #endif + #if defined EOPNOTSUPP + case EOPNOTSUPP: return "EOPNOTSUPP"; + #endif + #if defined EOVERFLOW + case EOVERFLOW: return "EOVERFLOW"; + #endif + #if defined EOWNERDEAD + case EOWNERDEAD: return "EOWNERDEAD"; + #endif + #if defined EPERM + case EPERM: return "EPERM"; + #endif + #if defined EPIPE + case EPIPE: return "EPIPE"; + #endif + #if defined EPROTO + case EPROTO: return "EPROTO"; + #endif + #if defined EPROTONOSUPPORT + case EPROTONOSUPPORT: return "EPROTONOSUPPORT"; + #endif + #if defined EPROTOTYPE + case EPROTOTYPE: return "EPROTOTYPE"; + #endif + #if defined EROFS + case EROFS: return "EROFS"; + #endif + #if defined ESPIPE + case ESPIPE: return "ESPIPE"; + #endif + #if defined ESRCH + case ESRCH: return "ESRCH"; + #endif + #if defined ESTALE + case ESTALE: return "ESTALE"; + #endif + #if defined ETIME + case ETIME: return "ETIME"; + #endif + #if defined ETIMEDOUT + case ETIMEDOUT: return "ETIMEDOUT"; + #endif + #if defined ETXTBSY + case ETXTBSY: return "ETXTBSY"; + #endif + #if defined EWOULDBLOCK && EWOULDBLOCK != EAGAIN + case EWOULDBLOCK: return "EWOULDBLOCK"; + #endif + #if defined EXDEV + case EXDEV: return "EXDEV"; + #endif + + /* Other error codes on other systems. */ + /* Solaris */ + #if defined EADI + case EADI: return "EADI"; + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EADV + case EADV: return "EADV"; + #endif + /* OSF/1 */ + #if defined EAIO + case EAIO: return "EAIO"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */ + #if defined EAUTH + case EAUTH: return "EAUTH"; + #endif + /* GNU/Hurd */ + #if defined EBACKGROUND + case EBACKGROUND: return "EBACKGROUND"; + #endif + /* Mac OS X */ + #if defined EBADARCH + case EBADARCH: return "EBADARCH"; + #endif + /* Minix */ + #if defined EBADCALL + case EBADCALL: return "EBADCALL"; + #endif + /* Minix */ + #if defined EBADCPU + case EBADCPU: return "EBADCPU"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADE + case EBADE: return "EBADE"; + #endif + /* Minix */ + #if defined EBADEPT + case EBADEPT: return "EBADEPT"; + #endif + /* Mac OS X */ + #if defined EBADEXEC + case EBADEXEC: return "EBADEXEC"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADFD + case EBADFD: return "EBADFD"; + #endif + /* IRIX */ + #if defined EBADFILT + case EBADFILT: return "EBADFILT"; + #endif + /* Minix */ + #if defined EBADIOCTL + case EBADIOCTL: return "EBADIOCTL"; + #endif + /* Mac OS X */ + #if defined EBADMACHO + case EBADMACHO: return "EBADMACHO"; + #endif + /* Minix */ + #if defined EBADMODE + case EBADMODE: return "EBADMODE"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADR + case EBADR: return "EBADR"; + #endif + /* Minix */ + #if defined EBADREQUEST + case EBADREQUEST: return "EBADREQUEST"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EBADRPC + case EBADRPC: return "EBADRPC"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADRQC + case EBADRQC: return "EBADRQC"; + #endif + /* IRIX */ + #if defined EBADRSPEC + case EBADRSPEC: return "EBADRSPEC"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADSLT + case EBADSLT: return "EBADSLT"; + #endif + /* IRIX */ + #if defined EBADTSPEC + case EBADTSPEC: return "EBADTSPEC"; + #endif + /* HP-UX */ + #if defined EBADVER + case EBADVER: return "EBADVER"; + #endif + /* IRIX */ + #if defined EBDHDL + case EBDHDL: return "EBDHDL"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBFONT + case EBFONT: return "EBFONT"; + #endif + /* IRIX */ + #if defined EBUFSIZE + case EBUFSIZE: return "EBUFSIZE"; + #endif + /* Minix */ + #if defined ECALLDENIED + case ECALLDENIED: return "ECALLDENIED"; + #endif + /* IRIX */ + #if defined ECANTEXTENT + case ECANTEXTENT: return "ECANTEXTENT"; + #endif + /* FreeBSD */ + #if defined ECAPMODE + case ECAPMODE: return "ECAPMODE"; + #endif + /* Cygwin */ + #if defined ECASECLASH + case ECASECLASH: return "ECASECLASH"; + #endif + /* IRIX */ + #if defined ECELLDOWN + case ECELLDOWN: return "ECELLDOWN"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ECHRNG + case ECHRNG: return "ECHRNG"; + #endif + /* IRIX */ + #if defined ECKPT + case ECKPT: return "ECKPT"; + #endif + /* IRIX */ + #if defined ECLOCKCPU + case ECLOCKCPU: return "ECLOCKCPU"; + #endif + /* OSF/1 */ + #if defined ECLONEME && ECLONEME != ERESTART + case ECLONEME: return "ECLONEME"; + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ECOMM + case ECOMM: return "ECOMM"; + #endif + /* HP-UX */ + #if defined ECONFIG + case ECONFIG: return "ECONFIG"; + #endif + /* IRIX */ + #if defined ECONTROLLER + case ECONTROLLER: return "ECONTROLLER"; + #endif + /* AIX */ + #if defined ECORRUPT + case ECORRUPT: return "ECORRUPT"; + #endif + /* GNU/Hurd */ + #if defined ED + case ED: return "ED"; + #endif + /* Minix */ + #if defined EDEADEPT + case EDEADEPT: return "EDEADEPT"; + #endif + /* IRIX, Solaris, Cygwin */ + #if defined EDEADLOCK && EDEADLOCK != EDEADLK + case EDEADLOCK: return "EDEADLOCK"; + #endif + /* Minix */ + #if defined EDEADSRCDST + case EDEADSRCDST: return "EDEADSRCDST"; + #endif + /* IRIX */ + #if defined EDELAY + case EDELAY: return "EDELAY"; + #endif + /* IRIX */ + #if defined EDESTROYED + case EDESTROYED: return "EDESTROYED"; + #endif + /* Mac OS X */ + #if defined EDEVERR + case EDEVERR: return "EDEVERR"; + #endif + /* GNU/Hurd */ + #if defined EDIED + case EDIED: return "EDIED"; + #endif + /* IRIX */ + #if defined EDIRCORRUPTED + case EDIRCORRUPTED: return "EDIRCORRUPTED"; + #endif + /* FreeBSD */ + #if defined EDIRIOCTL + case EDIRIOCTL: return "EDIRIOCTL"; + #endif + /* OSF/1 */ + #if defined EDIRTY + case EDIRTY: return "EDIRTY"; + #endif + /* IRIX */ + #if defined EDISJOINT + case EDISJOINT: return "EDISJOINT"; + #endif + /* AIX */ + #if defined EDIST + case EDIST: return "EDIST"; + #endif + /* Minix */ + #if defined EDONTREPLY + case EDONTREPLY: return "EDONTREPLY"; + #endif + /* FreeBSD */ + #if defined EDOOFUS + case EDOOFUS: return "EDOOFUS"; + #endif + /* Linux, HP-UX, Cygwin */ + #if defined EDOTDOT + case EDOTDOT: return "EDOTDOT"; + #endif + /* OSF/1 */ + #if defined EDUPPKG + case EDUPPKG: return "EDUPPKG"; + #endif + /* GNU/Hurd */ + #if defined ED_ALREADY_OPEN + case ED_ALREADY_OPEN: return "ED_ALREADY_OPEN"; + #endif + /* GNU/Hurd */ + #if defined ED_DEVICE_DOWN + case ED_DEVICE_DOWN: return "ED_DEVICE_DOWN"; + #endif + /* GNU/Hurd */ + #if defined ED_INVALID_OPERATION + case ED_INVALID_OPERATION:return "ED_INVALID_OPERATION"; + #endif + /* GNU/Hurd */ + #if defined ED_INVALID_RECNUM + case ED_INVALID_RECNUM:return "ED_INVALID_RECNUM"; + #endif + /* GNU/Hurd */ + #if defined ED_INVALID_SIZE + case ED_INVALID_SIZE: return "ED_INVALID_SIZE"; + #endif + /* GNU/Hurd */ + #if defined ED_IO_ERROR + case ED_IO_ERROR: return "ED_IO_ERROR"; + #endif + /* GNU/Hurd */ + #if defined ED_NO_MEMORY + case ED_NO_MEMORY: return "ED_NO_MEMORY"; + #endif + /* GNU/Hurd */ + #if defined ED_NO_SUCH_DEVICE + case ED_NO_SUCH_DEVICE:return "ED_NO_SUCH_DEVICE"; + #endif + /* GNU/Hurd */ + #if defined ED_READ_ONLY + case ED_READ_ONLY: return "ED_READ_ONLY"; + #endif + /* GNU/Hurd */ + #if defined ED_WOULD_BLOCK + case ED_WOULD_BLOCK: return "ED_WOULD_BLOCK"; + #endif + /* IRIX */ + #if defined EEMPTY + case EEMPTY: return "EEMPTY"; + #endif + /* OSF/1 */ + #if defined EEMULATE + case EEMULATE: return "EEMULATE"; + #endif + /* IRIX */ + #if defined EENDOFMINOR + case EENDOFMINOR: return "EENDOFMINOR"; + #endif + /* IRIX */ + #if defined EENQUEUED + case EENQUEUED: return "EENQUEUED"; + #endif + /* OSF/1 */ + #if defined EFAIL + case EFAIL: return "EFAIL"; + #endif + /* AIX */ + #if defined EFORMAT + case EFORMAT: return "EFORMAT"; + #endif + /* Haiku */ + #if defined EFPOS + case EFPOS: return "EFPOS"; + #endif + /* IRIX */ + #if defined EFSCORRUPTED + case EFSCORRUPTED: return "EFSCORRUPTED"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix, Cygwin */ + #if defined EFTYPE + case EFTYPE: return "EFTYPE"; + #endif + /* Minix */ + #if defined EGENERIC + case EGENERIC: return "EGENERIC"; + #endif + /* GNU/Hurd */ + #if defined EGRATUITOUS + case EGRATUITOUS: return "EGRATUITOUS"; + #endif + /* GNU/Hurd */ + #if defined EGREGIOUS + case EGREGIOUS: return "EGREGIOUS"; + #endif + /* IRIX */ + #if defined EGROUPLOOP + case EGROUPLOOP: return "EGROUPLOOP"; + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined EHOSTDOWN + case EHOSTDOWN: return "EHOSTDOWN"; + #endif + /* Linux */ + #if defined EHWPOISON + case EHWPOISON: return "EHWPOISON"; + #endif + /* GNU/Hurd */ + #if defined EIEIO + case EIEIO: return "EIEIO"; + #endif + /* IRIX */ + #if defined EINIT + case EINIT: return "EINIT"; + #endif + /* OSF/1 */ + #if defined EINPROG + case EINPROG: return "EINPROG"; + #endif + /* IRIX */ + #if defined EINVALMODE + case EINVALMODE: return "EINVALMODE"; + #endif + /* IRIX */ + #if defined EINVALSTATE + case EINVALSTATE: return "EINVALSTATE"; + #endif + /* IRIX */ + #if defined EINVALTIME + case EINVALTIME: return "EINVALTIME"; + #endif + /* IRIX */ + #if defined EIORESID + case EIORESID: return "EIORESID"; + #endif + /* OpenBSD */ + #if defined EIPSEC + case EIPSEC: return "EIPSEC"; + #endif + /* Linux, IRIX */ + #if defined EISNAM + case EISNAM: return "EISNAM"; + #endif + /* IRIX */ + #if defined EJOINED + case EJOINED: return "EJOINED"; + #endif + /* FreeBSD, OSF/1 */ + #if defined EJUSTRETURN + case EJUSTRETURN: return "EJUSTRETURN"; + #endif + /* GNU/Hurd */ + #if defined EKERN_ABORTED + case EKERN_ABORTED: return "EKERN_ABORTED"; + #endif + /* GNU/Hurd */ + #if defined EKERN_FAILURE + case EKERN_FAILURE: return "EKERN_FAILURE"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INTERRUPTED + case EKERN_INTERRUPTED:return "EKERN_INTERRUPTED"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_ADDRESS + case EKERN_INVALID_ADDRESS:return "EKERN_INVALID_ADDRESS"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_ARGUMENT + case EKERN_INVALID_ARGUMENT:return "EKERN_INVALID_ARGUMENT"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_CAPABILITY + case EKERN_INVALID_CAPABILITY:return "EKERN_INVALID_CAPABILITY"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_HOST + case EKERN_INVALID_HOST:return "EKERN_INVALID_HOST"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_NAME + case EKERN_INVALID_NAME:return "EKERN_INVALID_NAME"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_RIGHT + case EKERN_INVALID_RIGHT:return "EKERN_INVALID_RIGHT"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_TASK + case EKERN_INVALID_TASK:return "EKERN_INVALID_TASK"; + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_VALUE + case EKERN_INVALID_VALUE:return "EKERN_INVALID_VALUE"; + #endif + /* GNU/Hurd */ + #if defined EKERN_MEMORY_ERROR + case EKERN_MEMORY_ERROR:return "EKERN_MEMORY_ERROR"; + #endif + /* GNU/Hurd */ + #if defined EKERN_MEMORY_FAILURE + case EKERN_MEMORY_FAILURE:return "EKERN_MEMORY_FAILURE"; + #endif + /* GNU/Hurd */ + #if defined EKERN_MEMORY_PRESENT + case EKERN_MEMORY_PRESENT:return "EKERN_MEMORY_PRESENT"; + #endif + /* GNU/Hurd */ + #if defined EKERN_NAME_EXISTS + case EKERN_NAME_EXISTS:return "EKERN_NAME_EXISTS"; + #endif + /* GNU/Hurd */ + #if defined EKERN_NOT_IN_SET + case EKERN_NOT_IN_SET:return "EKERN_NOT_IN_SET"; + #endif + /* GNU/Hurd */ + #if defined EKERN_NOT_RECEIVER + case EKERN_NOT_RECEIVER:return "EKERN_NOT_RECEIVER"; + #endif + /* GNU/Hurd */ + #if defined EKERN_NO_ACCESS + case EKERN_NO_ACCESS: return "EKERN_NO_ACCESS"; + #endif + /* GNU/Hurd */ + #if defined EKERN_NO_SPACE + case EKERN_NO_SPACE: return "EKERN_NO_SPACE"; + #endif + /* GNU/Hurd */ + #if defined EKERN_PROTECTION_FAILURE + case EKERN_PROTECTION_FAILURE:return "EKERN_PROTECTION_FAILURE"; + #endif + /* GNU/Hurd */ + #if defined EKERN_RESOURCE_SHORTAGE + case EKERN_RESOURCE_SHORTAGE:return "EKERN_RESOURCE_SHORTAGE"; + #endif + /* GNU/Hurd */ + #if defined EKERN_RIGHT_EXISTS + case EKERN_RIGHT_EXISTS:return "EKERN_RIGHT_EXISTS"; + #endif + /* GNU/Hurd */ + #if defined EKERN_TERMINATED + case EKERN_TERMINATED:return "EKERN_TERMINATED"; + #endif + /* GNU/Hurd */ + #if defined EKERN_TIMEDOUT + case EKERN_TIMEDOUT: return "EKERN_TIMEDOUT"; + #endif + /* GNU/Hurd */ + #if defined EKERN_UREFS_OVERFLOW + case EKERN_UREFS_OVERFLOW:return "EKERN_UREFS_OVERFLOW"; + #endif + /* GNU/Hurd */ + #if defined EKERN_WRITE_PROTECTION_FAILURE + case EKERN_WRITE_PROTECTION_FAILURE:return "EKERN_WRITE_PROTECTION_FAILURE"; + #endif + /* Linux */ + #if defined EKEYEXPIRED + case EKEYEXPIRED: return "EKEYEXPIRED"; + #endif + /* Linux */ + #if defined EKEYREJECTED + case EKEYREJECTED: return "EKEYREJECTED"; + #endif + /* Linux */ + #if defined EKEYREVOKED + case EKEYREVOKED: return "EKEYREVOKED"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL2HLT + case EL2HLT: return "EL2HLT"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL2NSYNC + case EL2NSYNC: return "EL2NSYNC"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL3HLT + case EL3HLT: return "EL3HLT"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL3RST + case EL3RST: return "EL3RST"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */ + #if defined ELAST && 0 + case ELAST: return "ELAST"; + #endif + /* Cygwin */ + #if defined ELBIN + case ELBIN: return "ELBIN"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBACC + case ELIBACC: return "ELIBACC"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBBAD + case ELIBBAD: return "ELIBBAD"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBEXEC + case ELIBEXEC: return "ELIBEXEC"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBMAX + case ELIBMAX: return "ELIBMAX"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBSCN + case ELIBSCN: return "ELIBSCN"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ELNRNG + case ELNRNG: return "ELNRNG"; + #endif + /* Minix */ + #if defined ELOCKED + case ELOCKED: return "ELOCKED"; + #endif + /* Solaris */ + #if defined ELOCKUNMAPPED + case ELOCKUNMAPPED: return "ELOCKUNMAPPED"; + #endif + /* IRIX */ + #if defined ELOGINLIM + case ELOGINLIM: return "ELOGINLIM"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_BODY_ERROR + case EMACH_RCV_BODY_ERROR:return "EMACH_RCV_BODY_ERROR"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_HEADER_ERROR + case EMACH_RCV_HEADER_ERROR:return "EMACH_RCV_HEADER_ERROR"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INTERRUPTED + case EMACH_RCV_INTERRUPTED:return "EMACH_RCV_INTERRUPTED"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INVALID_DATA + case EMACH_RCV_INVALID_DATA:return "EMACH_RCV_INVALID_DATA"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INVALID_NAME + case EMACH_RCV_INVALID_NAME:return "EMACH_RCV_INVALID_NAME"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INVALID_NOTIFY + case EMACH_RCV_INVALID_NOTIFY:return "EMACH_RCV_INVALID_NOTIFY"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_IN_PROGRESS + case EMACH_RCV_IN_PROGRESS:return "EMACH_RCV_IN_PROGRESS"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_IN_SET + case EMACH_RCV_IN_SET:return "EMACH_RCV_IN_SET"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_PORT_CHANGED + case EMACH_RCV_PORT_CHANGED:return "EMACH_RCV_PORT_CHANGED"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_PORT_DIED + case EMACH_RCV_PORT_DIED:return "EMACH_RCV_PORT_DIED"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_TIMED_OUT + case EMACH_RCV_TIMED_OUT:return "EMACH_RCV_TIMED_OUT"; + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_TOO_LARGE + case EMACH_RCV_TOO_LARGE:return "EMACH_RCV_TOO_LARGE"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INTERRUPTED + case EMACH_SEND_INTERRUPTED:return "EMACH_SEND_INTERRUPTED"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_DATA + case EMACH_SEND_INVALID_DATA:return "EMACH_SEND_INVALID_DATA"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_DEST + case EMACH_SEND_INVALID_DEST:return "EMACH_SEND_INVALID_DEST"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_HEADER + case EMACH_SEND_INVALID_HEADER:return "EMACH_SEND_INVALID_HEADER"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_MEMORY + case EMACH_SEND_INVALID_MEMORY:return "EMACH_SEND_INVALID_MEMORY"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_NOTIFY + case EMACH_SEND_INVALID_NOTIFY:return "EMACH_SEND_INVALID_NOTIFY"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_REPLY + case EMACH_SEND_INVALID_REPLY:return "EMACH_SEND_INVALID_REPLY"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_RIGHT + case EMACH_SEND_INVALID_RIGHT:return "EMACH_SEND_INVALID_RIGHT"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_TYPE + case EMACH_SEND_INVALID_TYPE:return "EMACH_SEND_INVALID_TYPE"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_IN_PROGRESS + case EMACH_SEND_IN_PROGRESS:return "EMACH_SEND_IN_PROGRESS"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_MSG_TOO_SMALL + case EMACH_SEND_MSG_TOO_SMALL:return "EMACH_SEND_MSG_TOO_SMALL"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_NOTIFY_IN_PROGRESS + case EMACH_SEND_NOTIFY_IN_PROGRESS:return "EMACH_SEND_NOTIFY_IN_PROGRESS"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_NO_BUFFER + case EMACH_SEND_NO_BUFFER:return "EMACH_SEND_NO_BUFFER"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_NO_NOTIFY + case EMACH_SEND_NO_NOTIFY:return "EMACH_SEND_NO_NOTIFY"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_TIMED_OUT + case EMACH_SEND_TIMED_OUT:return "EMACH_SEND_TIMED_OUT"; + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_WILL_NOTIFY + case EMACH_SEND_WILL_NOTIFY:return "EMACH_SEND_WILL_NOTIFY"; + #endif + /* AIX, OSF/1 */ + #if defined EMEDIA + case EMEDIA: return "EMEDIA"; + #endif + /* Linux, OpenBSD */ + #if defined EMEDIUMTYPE + case EMEDIUMTYPE: return "EMEDIUMTYPE"; + #endif + /* IRIX */ + #if defined EMEMRETRY + case EMEMRETRY: return "EMEMRETRY"; + #endif + /* IRIX */ + #if defined EMIGRATED + case EMIGRATED: return "EMIGRATED"; + #endif + /* IRIX */ + #if defined EMIGRATING + case EMIGRATING: return "EMIGRATING"; + #endif + /* GNU/Hurd */ + #if defined EMIG_ARRAY_TOO_LARGE + case EMIG_ARRAY_TOO_LARGE:return "EMIG_ARRAY_TOO_LARGE"; + #endif + /* GNU/Hurd */ + #if defined EMIG_BAD_ARGUMENTS + case EMIG_BAD_ARGUMENTS:return "EMIG_BAD_ARGUMENTS"; + #endif + /* GNU/Hurd */ + #if defined EMIG_BAD_ID + case EMIG_BAD_ID: return "EMIG_BAD_ID"; + #endif + /* GNU/Hurd */ + #if defined EMIG_DESTROY_REQUEST + case EMIG_DESTROY_REQUEST:return "EMIG_DESTROY_REQUEST"; + #endif + /* GNU/Hurd */ + #if defined EMIG_EXCEPTION + case EMIG_EXCEPTION: return "EMIG_EXCEPTION"; + #endif + /* GNU/Hurd */ + #if defined EMIG_NO_REPLY + case EMIG_NO_REPLY: return "EMIG_NO_REPLY"; + #endif + /* GNU/Hurd */ + #if defined EMIG_REMOTE_ERROR + case EMIG_REMOTE_ERROR:return "EMIG_REMOTE_ERROR"; + #endif + /* GNU/Hurd */ + #if defined EMIG_REPLY_MISMATCH + case EMIG_REPLY_MISMATCH:return "EMIG_REPLY_MISMATCH"; + #endif + /* GNU/Hurd */ + #if defined EMIG_SERVER_DIED + case EMIG_SERVER_DIED:return "EMIG_SERVER_DIED"; + #endif + /* GNU/Hurd */ + #if defined EMIG_TYPE_ERROR + case EMIG_TYPE_ERROR: return "EMIG_TYPE_ERROR"; + #endif + /* OSF/1 */ + #if defined EMTIMERS + case EMTIMERS: return "EMTIMERS"; + #endif + /* IRIX */ + #if defined EMUSTRUN + case EMUSTRUN: return "EMUSTRUN"; + #endif + /* Linux, IRIX */ + #if defined ENAVAIL + case ENAVAIL: return "ENAVAIL"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */ + #if defined ENEEDAUTH + case ENEEDAUTH: return "ENEEDAUTH"; + #endif + /* IRIX */ + #if defined ENFSREMOTE + case ENFSREMOTE: return "ENFSREMOTE"; + #endif + /* Cygwin */ + #if defined ENMFILE + case ENMFILE: return "ENMFILE"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ENOANO + case ENOANO: return "ENOANO"; + #endif + /* IRIX */ + #if defined ENOATTACH + case ENOATTACH: return "ENOATTACH"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, IRIX, Minix */ + #if defined ENOATTR + case ENOATTR: return "ENOATTR"; + #endif + /* IRIX */ + #if defined ENOBWD + case ENOBWD: return "ENOBWD"; + #endif + /* MirBSD */ + #if defined ENOCOFFEE + case ENOCOFFEE: return "ENOCOFFEE"; + #endif + /* Minix */ + #if defined ENOCONN + case ENOCONN: return "ENOCONN"; + #endif + /* AIX */ + #if defined ENOCONNECT + case ENOCONNECT: return "ENOCONNECT"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ENOCSI + case ENOCSI: return "ENOCSI"; + #endif + /* IRIX */ + #if defined ENOEXIST + case ENOEXIST: return "ENOEXIST"; + #endif + /* IRIX */ + #if defined ENOINTRGROUP + case ENOINTRGROUP: return "ENOINTRGROUP"; + #endif + /* FreeBSD */ + #if defined ENOIOCTL + case ENOIOCTL: return "ENOIOCTL"; + #endif + /* Linux */ + #if defined ENOKEY + case ENOKEY: return "ENOKEY"; + #endif + /* IRIX */ + #if defined ENOLIMFILE + case ENOLIMFILE: return "ENOLIMFILE"; + #endif + /* HP-UX */ + #if defined ENOLOAD + case ENOLOAD: return "ENOLOAD"; + #endif + /* IRIX */ + #if defined ENOLOGIN + case ENOLOGIN: return "ENOLOGIN"; + #endif + /* HP-UX */ + #if defined ENOMATCH + case ENOMATCH: return "ENOMATCH"; + #endif + /* Linux, OpenBSD, Cygwin */ + #if defined ENOMEDIUM + case ENOMEDIUM: return "ENOMEDIUM"; + #endif + /* IRIX */ + #if defined ENOMESSAGE + case ENOMESSAGE: return "ENOMESSAGE"; + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ENONET + case ENONET: return "ENONET"; + #endif + /* Linux, HP-UX, IRIX, OSF/1, Solaris, Cygwin */ + #if defined ENOPKG + case ENOPKG: return "ENOPKG"; + #endif + /* Mac OS X */ + #if defined ENOPOLICY + case ENOPOLICY: return "ENOPOLICY"; + #endif + /* IRIX */ + #if defined ENOPROC + case ENOPROC: return "ENOPROC"; + #endif + /* HP-UX */ + #if defined ENOREG + case ENOREG: return "ENOREG"; + #endif + /* IRIX */ + #if defined ENOSERVICE + case ENOSERVICE: return "ENOSERVICE"; + #endif + /* Cygwin */ + #if defined ENOSHARE + case ENOSHARE: return "ENOSHARE"; + #endif + /* HP-UX, OSF/1 */ + #if defined ENOSYM + case ENOSYM: return "ENOSYM"; + #endif + /* Solaris */ + #if defined ENOTACTIVE + case ENOTACTIVE: return "ENOTACTIVE"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined ENOTBLK + case ENOTBLK: return "ENOTBLK"; + #endif + /* FreeBSD */ + #if defined ENOTCAPABLE + case ENOTCAPABLE: return "ENOTCAPABLE"; + #endif + /* IRIX */ + #if defined ENOTCONTROLLER + case ENOTCONTROLLER: return "ENOTCONTROLLER"; + #endif + /* IRIX */ + #if defined ENOTENQUEUED + case ENOTENQUEUED: return "ENOTENQUEUED"; + #endif + /* IRIX */ + #if defined ENOTJOINED + case ENOTJOINED: return "ENOTJOINED"; + #endif + /* Linux, IRIX */ + #if defined ENOTNAM + case ENOTNAM: return "ENOTNAM"; + #endif + /* AIX, Minix */ + #if defined ENOTREADY + case ENOTREADY: return "ENOTREADY"; + #endif + /* AIX */ + #if defined ENOTRUST + case ENOTRUST: return "ENOTRUST"; + #endif + /* IRIX */ + #if defined ENOTSTOPPED + case ENOTSTOPPED: return "ENOTSTOPPED"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ENOTUNIQ + case ENOTUNIQ: return "ENOTUNIQ"; + #endif + /* HP-UX */ + #if defined ENOUNLD + case ENOUNLD: return "ENOUNLD"; + #endif + /* HP-UX */ + #if defined ENOUNREG + case ENOUNREG: return "ENOUNREG"; + #endif + /* Minix */ + #if defined ENOURG + case ENOURG: return "ENOURG"; + #endif + /* native Windows */ + #if defined EOTHER + case EOTHER: return "EOTHER"; + #endif + /* Minix */ + #if defined EPACKSIZE + case EPACKSIZE: return "EPACKSIZE"; + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined EPFNOSUPPORT + case EPFNOSUPPORT: return "EPFNOSUPPORT"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, IRIX, OSF/1, Minix, Cygwin */ + #if defined EPROCLIM + case EPROCLIM: return "EPROCLIM"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EPROCUNAVAIL + case EPROCUNAVAIL: return "EPROCUNAVAIL"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EPROGMISMATCH + case EPROGMISMATCH: return "EPROGMISMATCH"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EPROGUNAVAIL + case EPROGUNAVAIL: return "EPROGUNAVAIL"; + #endif + /* Mac OS X */ + #if defined EPWROFF + case EPWROFF: return "EPWROFF"; + #endif + /* Mac OS X */ + #if defined EQFULL + case EQFULL: return "EQFULL"; + #endif + /* HP-UX */ + #if defined ERELOC + case ERELOC: return "ERELOC"; + #endif + /* OSF/1 */ + #if defined ERELOCATED + case ERELOCATED: return "ERELOCATED"; + #endif + /* FreeBSD */ + #if defined ERELOOKUP + case ERELOOKUP: return "ERELOOKUP"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EREMCHG + case EREMCHG: return "EREMCHG"; + #endif + /* IRIX */ + #if defined EREMDEV + case EREMDEV: return "EREMDEV"; + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined EREMOTE + case EREMOTE: return "EREMOTE"; + #endif + /* Linux, IRIX */ + #if defined EREMOTEIO + case EREMOTEIO: return "EREMOTEIO"; + #endif + /* HP-UX */ + #if defined EREMOTERELEASE + case EREMOTERELEASE: return "EREMOTERELEASE"; + #endif + /* Linux, FreeBSD, AIX, IRIX, OSF/1, Solaris, Minix */ + #if defined ERESTART + case ERESTART: return "ERESTART"; + #endif + /* Linux */ + #if defined ERFKILL + case ERFKILL: return "ERFKILL"; + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined ERPCMISMATCH + case ERPCMISMATCH: return "ERPCMISMATCH"; + #endif + /* AIX */ + #if defined ESAD + case ESAD: return "ESAD"; + #endif + /* Mac OS X */ + #if defined ESHLIBVERS + case ESHLIBVERS: return "ESHLIBVERS"; + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined ESHUTDOWN + case ESHUTDOWN: return "ESHUTDOWN"; + #endif + /* Haiku */ + #if defined ESIGPARM + case ESIGPARM: return "ESIGPARM"; + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return "ESOCKTNOSUPPORT"; + #endif + /* AIX, OSF/1 */ + #if defined ESOFT + case ESOFT: return "ESOFT"; + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ESRMNT + case ESRMNT: return "ESRMNT"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ESTRPIPE + case ESTRPIPE: return "ESTRPIPE"; + #endif + /* OSF/1 */ + #if defined ESUCCESS + case ESUCCESS: return "ESUCCESS"; + #endif + /* AIX */ + #if defined ESYSERROR + case ESYSERROR: return "ESYSERROR"; + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined ETOOMANYREFS + case ETOOMANYREFS: return "ETOOMANYREFS"; + #endif + /* Minix */ + #if defined ETRAPDENIED + case ETRAPDENIED: return "ETRAPDENIED"; + #endif + /* Linux, IRIX */ + #if defined EUCLEAN + case EUCLEAN: return "EUCLEAN"; + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EUNATCH + case EUNATCH: return "EUNATCH"; + #endif + /* Minix */ + #if defined EURG + case EURG: return "EURG"; + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined EUSERS + case EUSERS: return "EUSERS"; + #endif + /* OSF/1 */ + #if defined EVERSION + case EVERSION: return "EVERSION"; + #endif + /* IRIX */ + #if defined EWRONGFS + case EWRONGFS: return "EWRONGFS"; + #endif + /* AIX */ + #if defined EWRPROTECT + case EWRPROTECT: return "EWRPROTECT"; + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EXFULL + case EXFULL: return "EXFULL"; + #endif + + default: + return NULL; + } +} diff --git a/lib/string.in.h b/lib/string.in.h index 6a54270..b0c490b 100644 --- a/lib/string.in.h +++ b/lib/string.in.h @@ -1045,6 +1045,30 @@ _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " # endif #endif +/* Return the name of the system error code ERRNUM. */ +#if @GNULIB_STRERRORNAME_NP@ +# if @REPLACE_STRERRORNAME_NP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strerrorname_np +# define strerrorname_np rpl_strerrorname_np +# endif +_GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum)); +_GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum)); +# else +# if !@HAVE_STRERRORNAME_NP@ +_GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum)); +# endif +_GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum)); +# endif +_GL_CXXALIASWARN (strerrorname_np); +#elif defined GNULIB_POSIXCHECK +# undef strerrorname_np +# if HAVE_RAW_DECL_STRERRORNAME_NP +_GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - " + "use gnulib module strerrorname_np for portability"); +# endif +#endif + /* Return an abbreviation string for the signal number SIG. */ #if @GNULIB_SIGABBREV_NP@ # if ! @HAVE_SIGABBREV_NP@ diff --git a/m4/strerrorname_np.m4 b/m4/strerrorname_np.m4 new file mode 100644 index 0000000..395e31f --- /dev/null +++ b/m4/strerrorname_np.m4 @@ -0,0 +1,46 @@ +# strerrorname_np.m4 serial 1 +dnl Copyright (C) 2020 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_STRERRORNAME_NP], +[ + dnl Persuade glibc <string.h> to declare strerrorname_np(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + AC_CHECK_FUNCS([strerrorname_np]) + if test $ac_cv_func_strerrorname_np = yes; then + dnl In glibc 2.32, strerrorname_np returns English error descriptions, not + dnl error names. + dnl See <https://sourceware.org/bugzilla/show_bug.cgi?id=26555>. + AC_CACHE_CHECK([whether strerrorname_np works], + [gl_cv_func_strerrorname_np_works], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <errno.h> + #include <string.h> + ]], + [[return strcmp (strerrorname_np (EINVAL), "EINVAL") != 0; + ]])], + [gl_cv_func_strerrorname_np_works=yes], + [gl_cv_func_strerrorname_np_works=no], + [case "$host_os" in + # Guess no on glibc systems. + *-gnu* | gnu*) + gl_cv_func_strerrorname_np_works="guessing no" ;; + # Otherwise obey --enable-cross-guesses. + *) + gl_cv_func_strerrorname_np_works="$gl_cross_guess_normal" ;; + esac + ]) + ]) + case "$gl_cv_func_strerrorname_np_works" in + *yes) ;; + *) REPLACE_STRERRORNAME_NP=1 ;; + esac + else + HAVE_STRERRORNAME_NP=0 + fi +]) diff --git a/m4/string_h.m4 b/m4/string_h.m4 index d7c12aa..29796b8 100644 --- a/m4/string_h.m4 +++ b/m4/string_h.m4 @@ -5,7 +5,7 @@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 26 +# serial 27 # Written by Paul Eggert. @@ -28,7 +28,7 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY], ]], [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r - strerror_r sigabbrev_np sigdescr_np strsignal strverscmp]) + strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp]) AC_REQUIRE([AC_C_RESTRICT]) ]) @@ -44,47 +44,48 @@ AC_DEFUN([gl_STRING_MODULE_INDICATOR], AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [ - GNULIB_EXPLICIT_BZERO=0; AC_SUBST([GNULIB_EXPLICIT_BZERO]) - GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL]) - GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL]) - GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) - GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) - GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) - GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) - GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR]) - GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) - GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) - GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) - GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) - GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT]) - GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) - GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) - GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) - GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) - GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) - GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) - GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) - GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) - GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) - GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) - GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) - GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) - GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) - GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) - GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) - GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) - GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) - GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) - GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) - GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) - GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) - GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) - GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R]) - GNULIB_SIGABBREV_NP=0;AC_SUBST([GNULIB_SIGABBREV_NP]) - GNULIB_SIGDESCR_NP=0; AC_SUBST([GNULIB_SIGDESCR_NP]) - GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) - GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) - HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) + GNULIB_EXPLICIT_BZERO=0; AC_SUBST([GNULIB_EXPLICIT_BZERO]) + GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL]) + GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL]) + GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) + GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) + GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) + GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) + GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR]) + GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) + GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) + GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) + GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) + GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT]) + GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) + GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) + GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) + GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) + GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) + GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) + GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) + GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) + GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) + GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) + GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) + GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) + GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) + GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) + GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) + GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) + GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) + GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) + GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) + GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) + GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) + GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) + GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R]) + GNULIB_STRERRORNAME_NP=0; AC_SUBST([GNULIB_STRERRORNAME_NP]) + GNULIB_SIGABBREV_NP=0; AC_SUBST([GNULIB_SIGABBREV_NP]) + GNULIB_SIGDESCR_NP=0; AC_SUBST([GNULIB_SIGDESCR_NP]) + GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) + GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) + HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO]) HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) @@ -104,6 +105,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) + HAVE_STRERRORNAME_NP=1; AC_SUBST([HAVE_STRERRORNAME_NP]) HAVE_SIGABBREV_NP=1; AC_SUBST([HAVE_SIGABBREV_NP]) HAVE_SIGDESCR_NP=1; AC_SUBST([HAVE_SIGDESCR_NP]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) @@ -121,6 +123,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) + REPLACE_STRERRORNAME_NP=0; AC_SUBST([REPLACE_STRERRORNAME_NP]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) diff --git a/modules/strerrorname_np b/modules/strerrorname_np new file mode 100644 index 0000000..41abf30 --- /dev/null +++ b/modules/strerrorname_np @@ -0,0 +1,28 @@ +Description: +strerrorname_np() function: name of system error code. + +Files: +lib/strerrorname_np.c +m4/strerrorname_np.m4 + +Depends-on: +extensions +string + +configure.ac: +gl_FUNC_STRERRORNAME_NP +if test $HAVE_STRERRORNAME_NP = 0 || test $REPLACE_STRERRORNAME_NP = 1; then + AC_LIBOBJ([strerrorname_np]) +fi +gl_STRING_MODULE_INDICATOR([strerrorname_np]) + +Makefile.am: + +Include: +<string.h> + +License: +LGPLv2+ + +Maintainer: +all diff --git a/modules/string b/modules/string index 5a9db0f..759e4d5 100644 --- a/modules/string +++ b/modules/string @@ -66,6 +66,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ + -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GNULIB_STRERRORNAME_NP)/g' \ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GNULIB_SIGABBREV_NP)/g' \ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GNULIB_SIGDESCR_NP)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ @@ -90,6 +91,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ + -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ @@ -107,6 +109,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ + -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ diff --git a/tests/test-string-c++.cc b/tests/test-string-c++.cc index 960fb2a..2832a8b 100644 --- a/tests/test-string-c++.cc +++ b/tests/test-string-c++.cc @@ -138,6 +138,10 @@ SIGNATURE_CHECK (GNULIB_NAMESPACE::strerror, char *, (int)); SIGNATURE_CHECK (GNULIB_NAMESPACE::strerror_r, int, (int, char *, size_t)); #endif +#if GNULIB_TEST_STRERRORNAME_NP +SIGNATURE_CHECK (GNULIB_NAMESPACE::strerrorname_np, const char *, (int)); +#endif + #if GNULIB_TEST_SIGABBREV_NP SIGNATURE_CHECK (GNULIB_NAMESPACE::sigabbrev_np, const char *, (int)); #endif -- 2.7.4
>From a60712f35f128ab6d3b2f27be0802e10970c9904 Mon Sep 17 00:00:00 2001 From: Bruno Haible <br...@clisp.org> Date: Sun, 30 Aug 2020 22:20:01 +0200 Subject: [PATCH 2/2] strerrorname_np: Add tests. * tests/test-strerrorname_np.c: New file. * modules/strerrorname_np-tests: New file. --- ChangeLog | 4 + modules/strerrorname_np-tests | 12 + tests/test-strerrorname_np.c | 1345 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1361 insertions(+) create mode 100644 modules/strerrorname_np-tests create mode 100644 tests/test-strerrorname_np.c diff --git a/ChangeLog b/ChangeLog index 47df957..c30c56b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2020-08-30 Bruno Haible <br...@clisp.org> + strerrorname_np: Add tests. + * tests/test-strerrorname_np.c: New file. + * modules/strerrorname_np-tests: New file. + strerrorname_np: New module. * lib/string.in.h (strerrorname_np): New declaration. * lib/strerrorname_np.c: New file. diff --git a/modules/strerrorname_np-tests b/modules/strerrorname_np-tests new file mode 100644 index 0000000..609fd19 --- /dev/null +++ b/modules/strerrorname_np-tests @@ -0,0 +1,12 @@ +Files: +tests/test-strerrorname_np.c +tests/signature.h +tests/macros.h + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-strerrorname_np +check_PROGRAMS += test-strerrorname_np diff --git a/tests/test-strerrorname_np.c b/tests/test-strerrorname_np.c new file mode 100644 index 0000000..0ca5ab9 --- /dev/null +++ b/tests/test-strerrorname_np.c @@ -0,0 +1,1345 @@ +/* Test of strerrorname_np() function. + + Copyright (C) 2020 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see <https://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include <string.h> + +#include "signature.h" +SIGNATURE_CHECK (strerrorname_np, const char *, (int)); + +#include <errno.h> + +#include "macros.h" + +int +main (void) +{ + /* Error codes specified by ISO C. */ + ASSERT (strcmp (strerrorname_np (EDOM), "EDOM") == 0); + ASSERT (strcmp (strerrorname_np (EILSEQ), "EILSEQ") == 0); + ASSERT (strcmp (strerrorname_np (ERANGE), "ERANGE") == 0); + + /* Error codes specified by POSIX. + <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html> */ + #if defined E2BIG + ASSERT (strcmp (strerrorname_np (E2BIG), "E2BIG") == 0); + #endif + #if defined EACCES + ASSERT (strcmp (strerrorname_np (EACCES), "EACCES") == 0); + #endif + #if defined EADDRINUSE + ASSERT (strcmp (strerrorname_np (EADDRINUSE), "EADDRINUSE") == 0); + #endif + #if defined EADDRNOTAVAIL + ASSERT (strcmp (strerrorname_np (EADDRNOTAVAIL), "EADDRNOTAVAIL") == 0); + #endif + #if defined EAFNOSUPPORT + ASSERT (strcmp (strerrorname_np (EAFNOSUPPORT), "EAFNOSUPPORT") == 0); + #endif + #if defined EAGAIN + ASSERT (strcmp (strerrorname_np (EAGAIN), "EAGAIN") == 0); + #endif + #if defined EALREADY + ASSERT (strcmp (strerrorname_np (EALREADY), "EALREADY") == 0); + #endif + #if defined EBADF + ASSERT (strcmp (strerrorname_np (EBADF), "EBADF") == 0); + #endif + #if defined EBADMSG + ASSERT (strcmp (strerrorname_np (EBADMSG), "EBADMSG") == 0); + #endif + #if defined EBUSY + ASSERT (strcmp (strerrorname_np (EBUSY), "EBUSY") == 0); + #endif + #if defined ECANCELED + ASSERT (strcmp (strerrorname_np (ECANCELED), "ECANCELED") == 0); + #endif + #if defined ECHILD + ASSERT (strcmp (strerrorname_np (ECHILD), "ECHILD") == 0); + #endif + #if defined ECONNABORTED + ASSERT (strcmp (strerrorname_np (ECONNABORTED), "ECONNABORTED") == 0); + #endif + #if defined ECONNREFUSED + ASSERT (strcmp (strerrorname_np (ECONNREFUSED), "ECONNREFUSED") == 0); + #endif + #if defined ECONNRESET + ASSERT (strcmp (strerrorname_np (ECONNRESET), "ECONNRESET") == 0); + #endif + #if defined EDEADLK + ASSERT (strcmp (strerrorname_np (EDEADLK), "EDEADLK") == 0); + #endif + #if defined EDESTADDRREQ + ASSERT (strcmp (strerrorname_np (EDESTADDRREQ), "EDESTADDRREQ") == 0); + #endif + #if defined EDQUOT + ASSERT (strcmp (strerrorname_np (EDQUOT), "EDQUOT") == 0); + #endif + #if defined EEXIST + ASSERT (strcmp (strerrorname_np (EEXIST), "EEXIST") == 0); + #endif + #if defined EFAULT + ASSERT (strcmp (strerrorname_np (EFAULT), "EFAULT") == 0); + #endif + #if defined EFBIG + ASSERT (strcmp (strerrorname_np (EFBIG), "EFBIG") == 0); + #endif + #if defined EHOSTUNREACH + ASSERT (strcmp (strerrorname_np (EHOSTUNREACH), "EHOSTUNREACH") == 0); + #endif + #if defined EIDRM + ASSERT (strcmp (strerrorname_np (EIDRM), "EIDRM") == 0); + #endif + #if defined EINPROGRESS + ASSERT (strcmp (strerrorname_np (EINPROGRESS), "EINPROGRESS") == 0); + #endif + #if defined EINTR + ASSERT (strcmp (strerrorname_np (EINTR), "EINTR") == 0); + #endif + #if defined EINVAL + ASSERT (strcmp (strerrorname_np (EINVAL), "EINVAL") == 0); + #endif + #if defined EIO + ASSERT (strcmp (strerrorname_np (EIO), "EIO") == 0); + #endif + #if defined EISCONN + ASSERT (strcmp (strerrorname_np (EISCONN), "EISCONN") == 0); + #endif + #if defined EISDIR + ASSERT (strcmp (strerrorname_np (EISDIR), "EISDIR") == 0); + #endif + #if defined ELOOP + ASSERT (strcmp (strerrorname_np (ELOOP), "ELOOP") == 0); + #endif + #if defined EMFILE + ASSERT (strcmp (strerrorname_np (EMFILE), "EMFILE") == 0); + #endif + #if defined EMLINK + ASSERT (strcmp (strerrorname_np (EMLINK), "EMLINK") == 0); + #endif + #if defined EMSGSIZE + ASSERT (strcmp (strerrorname_np (EMSGSIZE), "EMSGSIZE") == 0); + #endif + #if defined EMULTIHOP + ASSERT (strcmp (strerrorname_np (EMULTIHOP), "EMULTIHOP") == 0); + #endif + #if defined ENAMETOOLONG + ASSERT (strcmp (strerrorname_np (ENAMETOOLONG), "ENAMETOOLONG") == 0); + #endif + #if defined ENETDOWN + ASSERT (strcmp (strerrorname_np (ENETDOWN), "ENETDOWN") == 0); + #endif + #if defined ENETRESET + ASSERT (strcmp (strerrorname_np (ENETRESET), "ENETRESET") == 0); + #endif + #if defined ENETUNREACH + ASSERT (strcmp (strerrorname_np (ENETUNREACH), "ENETUNREACH") == 0); + #endif + #if defined ENFILE + ASSERT (strcmp (strerrorname_np (ENFILE), "ENFILE") == 0); + #endif + #if defined ENOBUFS + ASSERT (strcmp (strerrorname_np (ENOBUFS), "ENOBUFS") == 0); + #endif + #if defined ENODATA + ASSERT (strcmp (strerrorname_np (ENODATA), "ENODATA") == 0); + #endif + #if defined ENODEV + ASSERT (strcmp (strerrorname_np (ENODEV), "ENODEV") == 0); + #endif + #if defined ENOENT + ASSERT (strcmp (strerrorname_np (ENOENT), "ENOENT") == 0); + #endif + #if defined ENOEXEC + ASSERT (strcmp (strerrorname_np (ENOEXEC), "ENOEXEC") == 0); + #endif + #if defined ENOLCK + ASSERT (strcmp (strerrorname_np (ENOLCK), "ENOLCK") == 0); + #endif + #if defined ENOLINK + ASSERT (strcmp (strerrorname_np (ENOLINK), "ENOLINK") == 0); + #endif + #if defined ENOMEM + ASSERT (strcmp (strerrorname_np (ENOMEM), "ENOMEM") == 0); + #endif + #if defined ENOMSG + ASSERT (strcmp (strerrorname_np (ENOMSG), "ENOMSG") == 0); + #endif + #if defined ENOPROTOOPT + ASSERT (strcmp (strerrorname_np (ENOPROTOOPT), "ENOPROTOOPT") == 0); + #endif + #if defined ENOSPC + ASSERT (strcmp (strerrorname_np (ENOSPC), "ENOSPC") == 0); + #endif + #if defined ENOSR + ASSERT (strcmp (strerrorname_np (ENOSR), "ENOSR") == 0); + #endif + #if defined ENOSTR + ASSERT (strcmp (strerrorname_np (ENOSTR), "ENOSTR") == 0); + #endif + #if defined ENOSYS + ASSERT (strcmp (strerrorname_np (ENOSYS), "ENOSYS") == 0); + #endif + #if defined ENOTCONN + ASSERT (strcmp (strerrorname_np (ENOTCONN), "ENOTCONN") == 0); + #endif + #if defined ENOTDIR + ASSERT (strcmp (strerrorname_np (ENOTDIR), "ENOTDIR") == 0); + #endif + #if defined ENOTEMPTY && ENOTEMPTY != EEXIST + ASSERT (strcmp (strerrorname_np (ENOTEMPTY), "ENOTEMPTY") == 0); + #endif + #if defined ENOTRECOVERABLE + ASSERT (strcmp (strerrorname_np (ENOTRECOVERABLE), "ENOTRECOVERABLE") == 0); + #endif + #if defined ENOTSOCK + ASSERT (strcmp (strerrorname_np (ENOTSOCK), "ENOTSOCK") == 0); + #endif + #if defined ENOTSUP && ENOTSUP != EOPNOTSUPP + ASSERT (strcmp (strerrorname_np (ENOTSUP), "ENOTSUP") == 0); + #endif + #if defined ENOTTY + ASSERT (strcmp (strerrorname_np (ENOTTY), "ENOTTY") == 0); + #endif + #if defined ENXIO + ASSERT (strcmp (strerrorname_np (ENXIO), "ENXIO") == 0); + #endif + #if defined EOPNOTSUPP + ASSERT (strcmp (strerrorname_np (EOPNOTSUPP), "EOPNOTSUPP") == 0); + #endif + #if defined EOVERFLOW + ASSERT (strcmp (strerrorname_np (EOVERFLOW), "EOVERFLOW") == 0); + #endif + #if defined EOWNERDEAD + ASSERT (strcmp (strerrorname_np (EOWNERDEAD), "EOWNERDEAD") == 0); + #endif + #if defined EPERM + ASSERT (strcmp (strerrorname_np (EPERM), "EPERM") == 0); + #endif + #if defined EPIPE + ASSERT (strcmp (strerrorname_np (EPIPE), "EPIPE") == 0); + #endif + #if defined EPROTO + ASSERT (strcmp (strerrorname_np (EPROTO), "EPROTO") == 0); + #endif + #if defined EPROTONOSUPPORT + ASSERT (strcmp (strerrorname_np (EPROTONOSUPPORT), "EPROTONOSUPPORT") == 0); + #endif + #if defined EPROTOTYPE + ASSERT (strcmp (strerrorname_np (EPROTOTYPE), "EPROTOTYPE") == 0); + #endif + #if defined EROFS + ASSERT (strcmp (strerrorname_np (EROFS), "EROFS") == 0); + #endif + #if defined ESPIPE + ASSERT (strcmp (strerrorname_np (ESPIPE), "ESPIPE") == 0); + #endif + #if defined ESRCH + ASSERT (strcmp (strerrorname_np (ESRCH), "ESRCH") == 0); + #endif + #if defined ESTALE + ASSERT (strcmp (strerrorname_np (ESTALE), "ESTALE") == 0); + #endif + #if defined ETIME + ASSERT (strcmp (strerrorname_np (ETIME), "ETIME") == 0); + #endif + #if defined ETIMEDOUT + ASSERT (strcmp (strerrorname_np (ETIMEDOUT), "ETIMEDOUT") == 0); + #endif + #if defined ETXTBSY + ASSERT (strcmp (strerrorname_np (ETXTBSY), "ETXTBSY") == 0); + #endif + #if defined EWOULDBLOCK && EWOULDBLOCK != EAGAIN + ASSERT (strcmp (strerrorname_np (EWOULDBLOCK), "EWOULDBLOCK") == 0); + #endif + #if defined EXDEV + ASSERT (strcmp (strerrorname_np (EXDEV), "EXDEV") == 0); + #endif + + /* Other error codes on other systems. */ + /* Solaris */ + #if defined EADI + ASSERT (strcmp (strerrorname_np (EADI), "EADI") == 0); + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EADV + ASSERT (strcmp (strerrorname_np (EADV), "EADV") == 0); + #endif + /* OSF/1 */ + #if defined EAIO + ASSERT (strcmp (strerrorname_np (EAIO), "EAIO") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */ + #if defined EAUTH + ASSERT (strcmp (strerrorname_np (EAUTH), "EAUTH") == 0); + #endif + /* GNU/Hurd */ + #if defined EBACKGROUND + ASSERT (strcmp (strerrorname_np (EBACKGROUND), "EBACKGROUND") == 0); + #endif + /* Mac OS X */ + #if defined EBADARCH + ASSERT (strcmp (strerrorname_np (EBADARCH), "EBADARCH") == 0); + #endif + /* Minix */ + #if defined EBADCALL + ASSERT (strcmp (strerrorname_np (EBADCALL), "EBADCALL") == 0); + #endif + /* Minix */ + #if defined EBADCPU + ASSERT (strcmp (strerrorname_np (EBADCPU), "EBADCPU") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADE + ASSERT (strcmp (strerrorname_np (EBADE), "EBADE") == 0); + #endif + /* Minix */ + #if defined EBADEPT + ASSERT (strcmp (strerrorname_np (EBADEPT), "EBADEPT") == 0); + #endif + /* Mac OS X */ + #if defined EBADEXEC + ASSERT (strcmp (strerrorname_np (EBADEXEC), "EBADEXEC") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADFD + ASSERT (strcmp (strerrorname_np (EBADFD), "EBADFD") == 0); + #endif + /* IRIX */ + #if defined EBADFILT + ASSERT (strcmp (strerrorname_np (EBADFILT), "EBADFILT") == 0); + #endif + /* Minix */ + #if defined EBADIOCTL + ASSERT (strcmp (strerrorname_np (EBADIOCTL), "EBADIOCTL") == 0); + #endif + /* Mac OS X */ + #if defined EBADMACHO + ASSERT (strcmp (strerrorname_np (EBADMACHO), "EBADMACHO") == 0); + #endif + /* Minix */ + #if defined EBADMODE + ASSERT (strcmp (strerrorname_np (EBADMODE), "EBADMODE") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADR + ASSERT (strcmp (strerrorname_np (EBADR), "EBADR") == 0); + #endif + /* Minix */ + #if defined EBADREQUEST + ASSERT (strcmp (strerrorname_np (EBADREQUEST), "EBADREQUEST") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EBADRPC + ASSERT (strcmp (strerrorname_np (EBADRPC), "EBADRPC") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADRQC + ASSERT (strcmp (strerrorname_np (EBADRQC), "EBADRQC") == 0); + #endif + /* IRIX */ + #if defined EBADRSPEC + ASSERT (strcmp (strerrorname_np (EBADRSPEC), "EBADRSPEC") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBADSLT + ASSERT (strcmp (strerrorname_np (EBADSLT), "EBADSLT") == 0); + #endif + /* IRIX */ + #if defined EBADTSPEC + ASSERT (strcmp (strerrorname_np (EBADTSPEC), "EBADTSPEC") == 0); + #endif + /* HP-UX */ + #if defined EBADVER + ASSERT (strcmp (strerrorname_np (EBADVER), "EBADVER") == 0); + #endif + /* IRIX */ + #if defined EBDHDL + ASSERT (strcmp (strerrorname_np (EBDHDL), "EBDHDL") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EBFONT + ASSERT (strcmp (strerrorname_np (EBFONT), "EBFONT") == 0); + #endif + /* IRIX */ + #if defined EBUFSIZE + ASSERT (strcmp (strerrorname_np (EBUFSIZE), "EBUFSIZE") == 0); + #endif + /* Minix */ + #if defined ECALLDENIED + ASSERT (strcmp (strerrorname_np (ECALLDENIED), "ECALLDENIED") == 0); + #endif + /* IRIX */ + #if defined ECANTEXTENT + ASSERT (strcmp (strerrorname_np (ECANTEXTENT), "ECANTEXTENT") == 0); + #endif + /* FreeBSD */ + #if defined ECAPMODE + ASSERT (strcmp (strerrorname_np (ECAPMODE), "ECAPMODE") == 0); + #endif + /* Cygwin */ + #if defined ECASECLASH + ASSERT (strcmp (strerrorname_np (ECASECLASH), "ECASECLASH") == 0); + #endif + /* IRIX */ + #if defined ECELLDOWN + ASSERT (strcmp (strerrorname_np (ECELLDOWN), "ECELLDOWN") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ECHRNG + ASSERT (strcmp (strerrorname_np (ECHRNG), "ECHRNG") == 0); + #endif + /* IRIX */ + #if defined ECKPT + ASSERT (strcmp (strerrorname_np (ECKPT), "ECKPT") == 0); + #endif + /* IRIX */ + #if defined ECLOCKCPU + ASSERT (strcmp (strerrorname_np (ECLOCKCPU), "ECLOCKCPU") == 0); + #endif + /* OSF/1 */ + #if defined ECLONEME && ECLONEME != ERESTART + ASSERT (strcmp (strerrorname_np (ECLONEME), "ECLONEME") == 0); + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ECOMM + ASSERT (strcmp (strerrorname_np (ECOMM), "ECOMM") == 0); + #endif + /* HP-UX */ + #if defined ECONFIG + ASSERT (strcmp (strerrorname_np (ECONFIG), "ECONFIG") == 0); + #endif + /* IRIX */ + #if defined ECONTROLLER + ASSERT (strcmp (strerrorname_np (ECONTROLLER), "ECONTROLLER") == 0); + #endif + /* AIX */ + #if defined ECORRUPT + ASSERT (strcmp (strerrorname_np (ECORRUPT), "ECORRUPT") == 0); + #endif + /* GNU/Hurd */ + #if defined ED + ASSERT (strcmp (strerrorname_np (ED), "ED") == 0); + #endif + /* Minix */ + #if defined EDEADEPT + ASSERT (strcmp (strerrorname_np (EDEADEPT), "EDEADEPT") == 0); + #endif + /* IRIX, Solaris, Cygwin */ + #if defined EDEADLOCK && EDEADLOCK != EDEADLK + ASSERT (strcmp (strerrorname_np (EDEADLOCK), "EDEADLOCK") == 0); + #endif + /* Minix */ + #if defined EDEADSRCDST + ASSERT (strcmp (strerrorname_np (EDEADSRCDST), "EDEADSRCDST") == 0); + #endif + /* IRIX */ + #if defined EDELAY + ASSERT (strcmp (strerrorname_np (EDELAY), "EDELAY") == 0); + #endif + /* IRIX */ + #if defined EDESTROYED + ASSERT (strcmp (strerrorname_np (EDESTROYED), "EDESTROYED") == 0); + #endif + /* Mac OS X */ + #if defined EDEVERR + ASSERT (strcmp (strerrorname_np (EDEVERR), "EDEVERR") == 0); + #endif + /* GNU/Hurd */ + #if defined EDIED + ASSERT (strcmp (strerrorname_np (EDIED), "EDIED") == 0); + #endif + /* IRIX */ + #if defined EDIRCORRUPTED + ASSERT (strcmp (strerrorname_np (EDIRCORRUPTED), "EDIRCORRUPTED") == 0); + #endif + /* FreeBSD */ + #if defined EDIRIOCTL + ASSERT (strcmp (strerrorname_np (EDIRIOCTL), "EDIRIOCTL") == 0); + #endif + /* OSF/1 */ + #if defined EDIRTY + ASSERT (strcmp (strerrorname_np (EDIRTY), "EDIRTY") == 0); + #endif + /* IRIX */ + #if defined EDISJOINT + ASSERT (strcmp (strerrorname_np (EDISJOINT), "EDISJOINT") == 0); + #endif + /* AIX */ + #if defined EDIST + ASSERT (strcmp (strerrorname_np (EDIST), "EDIST") == 0); + #endif + /* Minix */ + #if defined EDONTREPLY + ASSERT (strcmp (strerrorname_np (EDONTREPLY), "EDONTREPLY") == 0); + #endif + /* FreeBSD */ + #if defined EDOOFUS + ASSERT (strcmp (strerrorname_np (EDOOFUS), "EDOOFUS") == 0); + #endif + /* Linux, HP-UX, Cygwin */ + #if defined EDOTDOT + ASSERT (strcmp (strerrorname_np (EDOTDOT), "EDOTDOT") == 0); + #endif + /* OSF/1 */ + #if defined EDUPPKG + ASSERT (strcmp (strerrorname_np (EDUPPKG), "EDUPPKG") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_ALREADY_OPEN + ASSERT (strcmp (strerrorname_np (ED_ALREADY_OPEN), "ED_ALREADY_OPEN") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_DEVICE_DOWN + ASSERT (strcmp (strerrorname_np (ED_DEVICE_DOWN), "ED_DEVICE_DOWN") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_INVALID_OPERATION + ASSERT (strcmp (strerrorname_np (ED_INVALID_OPERATION), "ED_INVALID_OPERATION") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_INVALID_RECNUM + ASSERT (strcmp (strerrorname_np (ED_INVALID_RECNUM), "ED_INVALID_RECNUM") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_INVALID_SIZE + ASSERT (strcmp (strerrorname_np (ED_INVALID_SIZE), "ED_INVALID_SIZE") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_IO_ERROR + ASSERT (strcmp (strerrorname_np (ED_IO_ERROR), "ED_IO_ERROR") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_NO_MEMORY + ASSERT (strcmp (strerrorname_np (ED_NO_MEMORY), "ED_NO_MEMORY") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_NO_SUCH_DEVICE + ASSERT (strcmp (strerrorname_np (ED_NO_SUCH_DEVICE), "ED_NO_SUCH_DEVICE") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_READ_ONLY + ASSERT (strcmp (strerrorname_np (ED_READ_ONLY), "ED_READ_ONLY") == 0); + #endif + /* GNU/Hurd */ + #if defined ED_WOULD_BLOCK + ASSERT (strcmp (strerrorname_np (ED_WOULD_BLOCK), "ED_WOULD_BLOCK") == 0); + #endif + /* IRIX */ + #if defined EEMPTY + ASSERT (strcmp (strerrorname_np (EEMPTY), "EEMPTY") == 0); + #endif + /* OSF/1 */ + #if defined EEMULATE + ASSERT (strcmp (strerrorname_np (EEMULATE), "EEMULATE") == 0); + #endif + /* IRIX */ + #if defined EENDOFMINOR + ASSERT (strcmp (strerrorname_np (EENDOFMINOR), "EENDOFMINOR") == 0); + #endif + /* IRIX */ + #if defined EENQUEUED + ASSERT (strcmp (strerrorname_np (EENQUEUED), "EENQUEUED") == 0); + #endif + /* OSF/1 */ + #if defined EFAIL + ASSERT (strcmp (strerrorname_np (EFAIL), "EFAIL") == 0); + #endif + /* AIX */ + #if defined EFORMAT + ASSERT (strcmp (strerrorname_np (EFORMAT), "EFORMAT") == 0); + #endif + /* Haiku */ + #if defined EFPOS + ASSERT (strcmp (strerrorname_np (EFPOS), "EFPOS") == 0); + #endif + /* IRIX */ + #if defined EFSCORRUPTED + ASSERT (strcmp (strerrorname_np (EFSCORRUPTED), "EFSCORRUPTED") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix, Cygwin */ + #if defined EFTYPE + ASSERT (strcmp (strerrorname_np (EFTYPE), "EFTYPE") == 0); + #endif + /* Minix */ + #if defined EGENERIC + ASSERT (strcmp (strerrorname_np (EGENERIC), "EGENERIC") == 0); + #endif + /* GNU/Hurd */ + #if defined EGRATUITOUS + ASSERT (strcmp (strerrorname_np (EGRATUITOUS), "EGRATUITOUS") == 0); + #endif + /* GNU/Hurd */ + #if defined EGREGIOUS + ASSERT (strcmp (strerrorname_np (EGREGIOUS), "EGREGIOUS") == 0); + #endif + /* IRIX */ + #if defined EGROUPLOOP + ASSERT (strcmp (strerrorname_np (EGROUPLOOP), "EGROUPLOOP") == 0); + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined EHOSTDOWN + ASSERT (strcmp (strerrorname_np (EHOSTDOWN), "EHOSTDOWN") == 0); + #endif + /* Linux */ + #if defined EHWPOISON + ASSERT (strcmp (strerrorname_np (EHWPOISON), "EHWPOISON") == 0); + #endif + /* GNU/Hurd */ + #if defined EIEIO + ASSERT (strcmp (strerrorname_np (EIEIO), "EIEIO") == 0); + #endif + /* IRIX */ + #if defined EINIT + ASSERT (strcmp (strerrorname_np (EINIT), "EINIT") == 0); + #endif + /* OSF/1 */ + #if defined EINPROG + ASSERT (strcmp (strerrorname_np (EINPROG), "EINPROG") == 0); + #endif + /* IRIX */ + #if defined EINVALMODE + ASSERT (strcmp (strerrorname_np (EINVALMODE), "EINVALMODE") == 0); + #endif + /* IRIX */ + #if defined EINVALSTATE + ASSERT (strcmp (strerrorname_np (EINVALSTATE), "EINVALSTATE") == 0); + #endif + /* IRIX */ + #if defined EINVALTIME + ASSERT (strcmp (strerrorname_np (EINVALTIME), "EINVALTIME") == 0); + #endif + /* IRIX */ + #if defined EIORESID + ASSERT (strcmp (strerrorname_np (EIORESID), "EIORESID") == 0); + #endif + /* OpenBSD */ + #if defined EIPSEC + ASSERT (strcmp (strerrorname_np (EIPSEC), "EIPSEC") == 0); + #endif + /* Linux, IRIX */ + #if defined EISNAM + ASSERT (strcmp (strerrorname_np (EISNAM), "EISNAM") == 0); + #endif + /* IRIX */ + #if defined EJOINED + ASSERT (strcmp (strerrorname_np (EJOINED), "EJOINED") == 0); + #endif + /* FreeBSD, OSF/1 */ + #if defined EJUSTRETURN + ASSERT (strcmp (strerrorname_np (EJUSTRETURN), "EJUSTRETURN") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_ABORTED + ASSERT (strcmp (strerrorname_np (EKERN_ABORTED), "EKERN_ABORTED") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_FAILURE + ASSERT (strcmp (strerrorname_np (EKERN_FAILURE), "EKERN_FAILURE") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INTERRUPTED + ASSERT (strcmp (strerrorname_np (EKERN_INTERRUPTED), "EKERN_INTERRUPTED") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_ADDRESS + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_ADDRESS), "EKERN_INVALID_ADDRESS") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_ARGUMENT + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_ARGUMENT), "EKERN_INVALID_ARGUMENT") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_CAPABILITY + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_CAPABILITY), "EKERN_INVALID_CAPABILITY") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_HOST + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_HOST), "EKERN_INVALID_HOST") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_NAME + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_NAME), "EKERN_INVALID_NAME") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_RIGHT + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_RIGHT), "EKERN_INVALID_RIGHT") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_TASK + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_TASK), "EKERN_INVALID_TASK") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_INVALID_VALUE + ASSERT (strcmp (strerrorname_np (EKERN_INVALID_VALUE), "EKERN_INVALID_VALUE") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_MEMORY_ERROR + ASSERT (strcmp (strerrorname_np (EKERN_MEMORY_ERROR), "EKERN_MEMORY_ERROR") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_MEMORY_FAILURE + ASSERT (strcmp (strerrorname_np (EKERN_MEMORY_FAILURE), "EKERN_MEMORY_FAILURE") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_MEMORY_PRESENT + ASSERT (strcmp (strerrorname_np (EKERN_MEMORY_PRESENT), "EKERN_MEMORY_PRESENT") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_NAME_EXISTS + ASSERT (strcmp (strerrorname_np (EKERN_NAME_EXISTS), "EKERN_NAME_EXISTS") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_NOT_IN_SET + ASSERT (strcmp (strerrorname_np (EKERN_NOT_IN_SET), "EKERN_NOT_IN_SET") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_NOT_RECEIVER + ASSERT (strcmp (strerrorname_np (EKERN_NOT_RECEIVER), "EKERN_NOT_RECEIVER") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_NO_ACCESS + ASSERT (strcmp (strerrorname_np (EKERN_NO_ACCESS), "EKERN_NO_ACCESS") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_NO_SPACE + ASSERT (strcmp (strerrorname_np (EKERN_NO_SPACE), "EKERN_NO_SPACE") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_PROTECTION_FAILURE + ASSERT (strcmp (strerrorname_np (EKERN_PROTECTION_FAILURE), "EKERN_PROTECTION_FAILURE") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_RESOURCE_SHORTAGE + ASSERT (strcmp (strerrorname_np (EKERN_RESOURCE_SHORTAGE), "EKERN_RESOURCE_SHORTAGE") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_RIGHT_EXISTS + ASSERT (strcmp (strerrorname_np (EKERN_RIGHT_EXISTS), "EKERN_RIGHT_EXISTS") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_TERMINATED + ASSERT (strcmp (strerrorname_np (EKERN_TERMINATED), "EKERN_TERMINATED") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_TIMEDOUT + ASSERT (strcmp (strerrorname_np (EKERN_TIMEDOUT), "EKERN_TIMEDOUT") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_UREFS_OVERFLOW + ASSERT (strcmp (strerrorname_np (EKERN_UREFS_OVERFLOW), "EKERN_UREFS_OVERFLOW") == 0); + #endif + /* GNU/Hurd */ + #if defined EKERN_WRITE_PROTECTION_FAILURE + ASSERT (strcmp (strerrorname_np (EKERN_WRITE_PROTECTION_FAILURE), "EKERN_WRITE_PROTECTION_FAILURE") == 0); + #endif + /* Linux */ + #if defined EKEYEXPIRED + ASSERT (strcmp (strerrorname_np (EKEYEXPIRED), "EKEYEXPIRED") == 0); + #endif + /* Linux */ + #if defined EKEYREJECTED + ASSERT (strcmp (strerrorname_np (EKEYREJECTED), "EKEYREJECTED") == 0); + #endif + /* Linux */ + #if defined EKEYREVOKED + ASSERT (strcmp (strerrorname_np (EKEYREVOKED), "EKEYREVOKED") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL2HLT + ASSERT (strcmp (strerrorname_np (EL2HLT), "EL2HLT") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL2NSYNC + ASSERT (strcmp (strerrorname_np (EL2NSYNC), "EL2NSYNC") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL3HLT + ASSERT (strcmp (strerrorname_np (EL3HLT), "EL3HLT") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EL3RST + ASSERT (strcmp (strerrorname_np (EL3RST), "EL3RST") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */ + #if defined ELAST && 0 + ASSERT (strcmp (strerrorname_np (ELAST), "ELAST") == 0); + #endif + /* Cygwin */ + #if defined ELBIN + ASSERT (strcmp (strerrorname_np (ELBIN), "ELBIN") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBACC + ASSERT (strcmp (strerrorname_np (ELIBACC), "ELIBACC") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBBAD + ASSERT (strcmp (strerrorname_np (ELIBBAD), "ELIBBAD") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBEXEC + ASSERT (strcmp (strerrorname_np (ELIBEXEC), "ELIBEXEC") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBMAX + ASSERT (strcmp (strerrorname_np (ELIBMAX), "ELIBMAX") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ELIBSCN + ASSERT (strcmp (strerrorname_np (ELIBSCN), "ELIBSCN") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ELNRNG + ASSERT (strcmp (strerrorname_np (ELNRNG), "ELNRNG") == 0); + #endif + /* Minix */ + #if defined ELOCKED + ASSERT (strcmp (strerrorname_np (ELOCKED), "ELOCKED") == 0); + #endif + /* Solaris */ + #if defined ELOCKUNMAPPED + ASSERT (strcmp (strerrorname_np (ELOCKUNMAPPED), "ELOCKUNMAPPED") == 0); + #endif + /* IRIX */ + #if defined ELOGINLIM + ASSERT (strcmp (strerrorname_np (ELOGINLIM), "ELOGINLIM") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_BODY_ERROR + ASSERT (strcmp (strerrorname_np (EMACH_RCV_BODY_ERROR), "EMACH_RCV_BODY_ERROR") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_HEADER_ERROR + ASSERT (strcmp (strerrorname_np (EMACH_RCV_HEADER_ERROR), "EMACH_RCV_HEADER_ERROR") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INTERRUPTED + ASSERT (strcmp (strerrorname_np (EMACH_RCV_INTERRUPTED), "EMACH_RCV_INTERRUPTED") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INVALID_DATA + ASSERT (strcmp (strerrorname_np (EMACH_RCV_INVALID_DATA), "EMACH_RCV_INVALID_DATA") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INVALID_NAME + ASSERT (strcmp (strerrorname_np (EMACH_RCV_INVALID_NAME), "EMACH_RCV_INVALID_NAME") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_INVALID_NOTIFY + ASSERT (strcmp (strerrorname_np (EMACH_RCV_INVALID_NOTIFY), "EMACH_RCV_INVALID_NOTIFY") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_IN_PROGRESS + ASSERT (strcmp (strerrorname_np (EMACH_RCV_IN_PROGRESS), "EMACH_RCV_IN_PROGRESS") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_IN_SET + ASSERT (strcmp (strerrorname_np (EMACH_RCV_IN_SET), "EMACH_RCV_IN_SET") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_PORT_CHANGED + ASSERT (strcmp (strerrorname_np (EMACH_RCV_PORT_CHANGED), "EMACH_RCV_PORT_CHANGED") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_PORT_DIED + ASSERT (strcmp (strerrorname_np (EMACH_RCV_PORT_DIED), "EMACH_RCV_PORT_DIED") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_TIMED_OUT + ASSERT (strcmp (strerrorname_np (EMACH_RCV_TIMED_OUT), "EMACH_RCV_TIMED_OUT") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_RCV_TOO_LARGE + ASSERT (strcmp (strerrorname_np (EMACH_RCV_TOO_LARGE), "EMACH_RCV_TOO_LARGE") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INTERRUPTED + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INTERRUPTED), "EMACH_SEND_INTERRUPTED") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_DATA + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_DATA), "EMACH_SEND_INVALID_DATA") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_DEST + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_DEST), "EMACH_SEND_INVALID_DEST") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_HEADER + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_HEADER), "EMACH_SEND_INVALID_HEADER") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_MEMORY + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_MEMORY), "EMACH_SEND_INVALID_MEMORY") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_NOTIFY + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_NOTIFY), "EMACH_SEND_INVALID_NOTIFY") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_REPLY + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_REPLY), "EMACH_SEND_INVALID_REPLY") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_RIGHT + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_RIGHT), "EMACH_SEND_INVALID_RIGHT") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_INVALID_TYPE + ASSERT (strcmp (strerrorname_np (EMACH_SEND_INVALID_TYPE), "EMACH_SEND_INVALID_TYPE") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_IN_PROGRESS + ASSERT (strcmp (strerrorname_np (EMACH_SEND_IN_PROGRESS), "EMACH_SEND_IN_PROGRESS") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_MSG_TOO_SMALL + ASSERT (strcmp (strerrorname_np (EMACH_SEND_MSG_TOO_SMALL), "EMACH_SEND_MSG_TOO_SMALL") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_NOTIFY_IN_PROGRESS + ASSERT (strcmp (strerrorname_np (EMACH_SEND_NOTIFY_IN_PROGRESS), "EMACH_SEND_NOTIFY_IN_PROGRESS") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_NO_BUFFER + ASSERT (strcmp (strerrorname_np (EMACH_SEND_NO_BUFFER), "EMACH_SEND_NO_BUFFER") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_NO_NOTIFY + ASSERT (strcmp (strerrorname_np (EMACH_SEND_NO_NOTIFY), "EMACH_SEND_NO_NOTIFY") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_TIMED_OUT + ASSERT (strcmp (strerrorname_np (EMACH_SEND_TIMED_OUT), "EMACH_SEND_TIMED_OUT") == 0); + #endif + /* GNU/Hurd */ + #if defined EMACH_SEND_WILL_NOTIFY + ASSERT (strcmp (strerrorname_np (EMACH_SEND_WILL_NOTIFY), "EMACH_SEND_WILL_NOTIFY") == 0); + #endif + /* AIX, OSF/1 */ + #if defined EMEDIA + ASSERT (strcmp (strerrorname_np (EMEDIA), "EMEDIA") == 0); + #endif + /* Linux, OpenBSD */ + #if defined EMEDIUMTYPE + ASSERT (strcmp (strerrorname_np (EMEDIUMTYPE), "EMEDIUMTYPE") == 0); + #endif + /* IRIX */ + #if defined EMEMRETRY + ASSERT (strcmp (strerrorname_np (EMEMRETRY), "EMEMRETRY") == 0); + #endif + /* IRIX */ + #if defined EMIGRATED + ASSERT (strcmp (strerrorname_np (EMIGRATED), "EMIGRATED") == 0); + #endif + /* IRIX */ + #if defined EMIGRATING + ASSERT (strcmp (strerrorname_np (EMIGRATING), "EMIGRATING") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_ARRAY_TOO_LARGE + ASSERT (strcmp (strerrorname_np (EMIG_ARRAY_TOO_LARGE), "EMIG_ARRAY_TOO_LARGE") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_BAD_ARGUMENTS + ASSERT (strcmp (strerrorname_np (EMIG_BAD_ARGUMENTS), "EMIG_BAD_ARGUMENTS") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_BAD_ID + ASSERT (strcmp (strerrorname_np (EMIG_BAD_ID), "EMIG_BAD_ID") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_DESTROY_REQUEST + ASSERT (strcmp (strerrorname_np (EMIG_DESTROY_REQUEST), "EMIG_DESTROY_REQUEST") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_EXCEPTION + ASSERT (strcmp (strerrorname_np (EMIG_EXCEPTION), "EMIG_EXCEPTION") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_NO_REPLY + ASSERT (strcmp (strerrorname_np (EMIG_NO_REPLY), "EMIG_NO_REPLY") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_REMOTE_ERROR + ASSERT (strcmp (strerrorname_np (EMIG_REMOTE_ERROR), "EMIG_REMOTE_ERROR") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_REPLY_MISMATCH + ASSERT (strcmp (strerrorname_np (EMIG_REPLY_MISMATCH), "EMIG_REPLY_MISMATCH") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_SERVER_DIED + ASSERT (strcmp (strerrorname_np (EMIG_SERVER_DIED), "EMIG_SERVER_DIED") == 0); + #endif + /* GNU/Hurd */ + #if defined EMIG_TYPE_ERROR + ASSERT (strcmp (strerrorname_np (EMIG_TYPE_ERROR), "EMIG_TYPE_ERROR") == 0); + #endif + /* OSF/1 */ + #if defined EMTIMERS + ASSERT (strcmp (strerrorname_np (EMTIMERS), "EMTIMERS") == 0); + #endif + /* IRIX */ + #if defined EMUSTRUN + ASSERT (strcmp (strerrorname_np (EMUSTRUN), "EMUSTRUN") == 0); + #endif + /* Linux, IRIX */ + #if defined ENAVAIL + ASSERT (strcmp (strerrorname_np (ENAVAIL), "ENAVAIL") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix */ + #if defined ENEEDAUTH + ASSERT (strcmp (strerrorname_np (ENEEDAUTH), "ENEEDAUTH") == 0); + #endif + /* IRIX */ + #if defined ENFSREMOTE + ASSERT (strcmp (strerrorname_np (ENFSREMOTE), "ENFSREMOTE") == 0); + #endif + /* Cygwin */ + #if defined ENMFILE + ASSERT (strcmp (strerrorname_np (ENMFILE), "ENMFILE") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ENOANO + ASSERT (strcmp (strerrorname_np (ENOANO), "ENOANO") == 0); + #endif + /* IRIX */ + #if defined ENOATTACH + ASSERT (strcmp (strerrorname_np (ENOATTACH), "ENOATTACH") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, IRIX, Minix */ + #if defined ENOATTR + ASSERT (strcmp (strerrorname_np (ENOATTR), "ENOATTR") == 0); + #endif + /* IRIX */ + #if defined ENOBWD + ASSERT (strcmp (strerrorname_np (ENOBWD), "ENOBWD") == 0); + #endif + /* MirBSD */ + #if defined ENOCOFFEE + ASSERT (strcmp (strerrorname_np (ENOCOFFEE), "ENOCOFFEE") == 0); + #endif + /* Minix */ + #if defined ENOCONN + ASSERT (strcmp (strerrorname_np (ENOCONN), "ENOCONN") == 0); + #endif + /* AIX */ + #if defined ENOCONNECT + ASSERT (strcmp (strerrorname_np (ENOCONNECT), "ENOCONNECT") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ENOCSI + ASSERT (strcmp (strerrorname_np (ENOCSI), "ENOCSI") == 0); + #endif + /* IRIX */ + #if defined ENOEXIST + ASSERT (strcmp (strerrorname_np (ENOEXIST), "ENOEXIST") == 0); + #endif + /* IRIX */ + #if defined ENOINTRGROUP + ASSERT (strcmp (strerrorname_np (ENOINTRGROUP), "ENOINTRGROUP") == 0); + #endif + /* FreeBSD */ + #if defined ENOIOCTL + ASSERT (strcmp (strerrorname_np (ENOIOCTL), "ENOIOCTL") == 0); + #endif + /* Linux */ + #if defined ENOKEY + ASSERT (strcmp (strerrorname_np (ENOKEY), "ENOKEY") == 0); + #endif + /* IRIX */ + #if defined ENOLIMFILE + ASSERT (strcmp (strerrorname_np (ENOLIMFILE), "ENOLIMFILE") == 0); + #endif + /* HP-UX */ + #if defined ENOLOAD + ASSERT (strcmp (strerrorname_np (ENOLOAD), "ENOLOAD") == 0); + #endif + /* IRIX */ + #if defined ENOLOGIN + ASSERT (strcmp (strerrorname_np (ENOLOGIN), "ENOLOGIN") == 0); + #endif + /* HP-UX */ + #if defined ENOMATCH + ASSERT (strcmp (strerrorname_np (ENOMATCH), "ENOMATCH") == 0); + #endif + /* Linux, OpenBSD, Cygwin */ + #if defined ENOMEDIUM + ASSERT (strcmp (strerrorname_np (ENOMEDIUM), "ENOMEDIUM") == 0); + #endif + /* IRIX */ + #if defined ENOMESSAGE + ASSERT (strcmp (strerrorname_np (ENOMESSAGE), "ENOMESSAGE") == 0); + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ENONET + ASSERT (strcmp (strerrorname_np (ENONET), "ENONET") == 0); + #endif + /* Linux, HP-UX, IRIX, OSF/1, Solaris, Cygwin */ + #if defined ENOPKG + ASSERT (strcmp (strerrorname_np (ENOPKG), "ENOPKG") == 0); + #endif + /* Mac OS X */ + #if defined ENOPOLICY + ASSERT (strcmp (strerrorname_np (ENOPOLICY), "ENOPOLICY") == 0); + #endif + /* IRIX */ + #if defined ENOPROC + ASSERT (strcmp (strerrorname_np (ENOPROC), "ENOPROC") == 0); + #endif + /* HP-UX */ + #if defined ENOREG + ASSERT (strcmp (strerrorname_np (ENOREG), "ENOREG") == 0); + #endif + /* IRIX */ + #if defined ENOSERVICE + ASSERT (strcmp (strerrorname_np (ENOSERVICE), "ENOSERVICE") == 0); + #endif + /* Cygwin */ + #if defined ENOSHARE + ASSERT (strcmp (strerrorname_np (ENOSHARE), "ENOSHARE") == 0); + #endif + /* HP-UX, OSF/1 */ + #if defined ENOSYM + ASSERT (strcmp (strerrorname_np (ENOSYM), "ENOSYM") == 0); + #endif + /* Solaris */ + #if defined ENOTACTIVE + ASSERT (strcmp (strerrorname_np (ENOTACTIVE), "ENOTACTIVE") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined ENOTBLK + ASSERT (strcmp (strerrorname_np (ENOTBLK), "ENOTBLK") == 0); + #endif + /* FreeBSD */ + #if defined ENOTCAPABLE + ASSERT (strcmp (strerrorname_np (ENOTCAPABLE), "ENOTCAPABLE") == 0); + #endif + /* IRIX */ + #if defined ENOTCONTROLLER + ASSERT (strcmp (strerrorname_np (ENOTCONTROLLER), "ENOTCONTROLLER") == 0); + #endif + /* IRIX */ + #if defined ENOTENQUEUED + ASSERT (strcmp (strerrorname_np (ENOTENQUEUED), "ENOTENQUEUED") == 0); + #endif + /* IRIX */ + #if defined ENOTJOINED + ASSERT (strcmp (strerrorname_np (ENOTJOINED), "ENOTJOINED") == 0); + #endif + /* Linux, IRIX */ + #if defined ENOTNAM + ASSERT (strcmp (strerrorname_np (ENOTNAM), "ENOTNAM") == 0); + #endif + /* AIX, Minix */ + #if defined ENOTREADY + ASSERT (strcmp (strerrorname_np (ENOTREADY), "ENOTREADY") == 0); + #endif + /* AIX */ + #if defined ENOTRUST + ASSERT (strcmp (strerrorname_np (ENOTRUST), "ENOTRUST") == 0); + #endif + /* IRIX */ + #if defined ENOTSTOPPED + ASSERT (strcmp (strerrorname_np (ENOTSTOPPED), "ENOTSTOPPED") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ENOTUNIQ + ASSERT (strcmp (strerrorname_np (ENOTUNIQ), "ENOTUNIQ") == 0); + #endif + /* HP-UX */ + #if defined ENOUNLD + ASSERT (strcmp (strerrorname_np (ENOUNLD), "ENOUNLD") == 0); + #endif + /* HP-UX */ + #if defined ENOUNREG + ASSERT (strcmp (strerrorname_np (ENOUNREG), "ENOUNREG") == 0); + #endif + /* Minix */ + #if defined ENOURG + ASSERT (strcmp (strerrorname_np (ENOURG), "ENOURG") == 0); + #endif + /* native Windows */ + #if defined EOTHER + ASSERT (strcmp (strerrorname_np (EOTHER), "EOTHER") == 0); + #endif + /* Minix */ + #if defined EPACKSIZE + ASSERT (strcmp (strerrorname_np (EPACKSIZE), "EPACKSIZE") == 0); + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined EPFNOSUPPORT + ASSERT (strcmp (strerrorname_np (EPFNOSUPPORT), "EPFNOSUPPORT") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, IRIX, OSF/1, Minix, Cygwin */ + #if defined EPROCLIM + ASSERT (strcmp (strerrorname_np (EPROCLIM), "EPROCLIM") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EPROCUNAVAIL + ASSERT (strcmp (strerrorname_np (EPROCUNAVAIL), "EPROCUNAVAIL") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EPROGMISMATCH + ASSERT (strcmp (strerrorname_np (EPROGMISMATCH), "EPROGMISMATCH") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined EPROGUNAVAIL + ASSERT (strcmp (strerrorname_np (EPROGUNAVAIL), "EPROGUNAVAIL") == 0); + #endif + /* Mac OS X */ + #if defined EPWROFF + ASSERT (strcmp (strerrorname_np (EPWROFF), "EPWROFF") == 0); + #endif + /* Mac OS X */ + #if defined EQFULL + ASSERT (strcmp (strerrorname_np (EQFULL), "EQFULL") == 0); + #endif + /* HP-UX */ + #if defined ERELOC + ASSERT (strcmp (strerrorname_np (ERELOC), "ERELOC") == 0); + #endif + /* OSF/1 */ + #if defined ERELOCATED + ASSERT (strcmp (strerrorname_np (ERELOCATED), "ERELOCATED") == 0); + #endif + /* FreeBSD */ + #if defined ERELOOKUP + ASSERT (strcmp (strerrorname_np (ERELOOKUP), "ERELOOKUP") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EREMCHG + ASSERT (strcmp (strerrorname_np (EREMCHG), "EREMCHG") == 0); + #endif + /* IRIX */ + #if defined EREMDEV + ASSERT (strcmp (strerrorname_np (EREMDEV), "EREMDEV") == 0); + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined EREMOTE + ASSERT (strcmp (strerrorname_np (EREMOTE), "EREMOTE") == 0); + #endif + /* Linux, IRIX */ + #if defined EREMOTEIO + ASSERT (strcmp (strerrorname_np (EREMOTEIO), "EREMOTEIO") == 0); + #endif + /* HP-UX */ + #if defined EREMOTERELEASE + ASSERT (strcmp (strerrorname_np (EREMOTERELEASE), "EREMOTERELEASE") == 0); + #endif + /* Linux, FreeBSD, AIX, IRIX, OSF/1, Solaris, Minix */ + #if defined ERESTART + ASSERT (strcmp (strerrorname_np (ERESTART), "ERESTART") == 0); + #endif + /* Linux */ + #if defined ERFKILL + ASSERT (strcmp (strerrorname_np (ERFKILL), "ERFKILL") == 0); + #endif + /* Mac OS X, FreeBSD, NetBSD, OpenBSD, OSF/1, Minix */ + #if defined ERPCMISMATCH + ASSERT (strcmp (strerrorname_np (ERPCMISMATCH), "ERPCMISMATCH") == 0); + #endif + /* AIX */ + #if defined ESAD + ASSERT (strcmp (strerrorname_np (ESAD), "ESAD") == 0); + #endif + /* Mac OS X */ + #if defined ESHLIBVERS + ASSERT (strcmp (strerrorname_np (ESHLIBVERS), "ESHLIBVERS") == 0); + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Haiku, Cygwin */ + #if defined ESHUTDOWN + ASSERT (strcmp (strerrorname_np (ESHUTDOWN), "ESHUTDOWN") == 0); + #endif + /* Haiku */ + #if defined ESIGPARM + ASSERT (strcmp (strerrorname_np (ESIGPARM), "ESIGPARM") == 0); + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined ESOCKTNOSUPPORT + ASSERT (strcmp (strerrorname_np (ESOCKTNOSUPPORT), "ESOCKTNOSUPPORT") == 0); + #endif + /* AIX, OSF/1 */ + #if defined ESOFT + ASSERT (strcmp (strerrorname_np (ESOFT), "ESOFT") == 0); + #endif + /* Linux, HP-UX, IRIX, Solaris, Cygwin */ + #if defined ESRMNT + ASSERT (strcmp (strerrorname_np (ESRMNT), "ESRMNT") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined ESTRPIPE + ASSERT (strcmp (strerrorname_np (ESTRPIPE), "ESTRPIPE") == 0); + #endif + /* OSF/1 */ + #if defined ESUCCESS + ASSERT (strcmp (strerrorname_np (ESUCCESS), "ESUCCESS") == 0); + #endif + /* AIX */ + #if defined ESYSERROR + ASSERT (strcmp (strerrorname_np (ESYSERROR), "ESYSERROR") == 0); + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined ETOOMANYREFS + ASSERT (strcmp (strerrorname_np (ETOOMANYREFS), "ETOOMANYREFS") == 0); + #endif + /* Minix */ + #if defined ETRAPDENIED + ASSERT (strcmp (strerrorname_np (ETRAPDENIED), "ETRAPDENIED") == 0); + #endif + /* Linux, IRIX */ + #if defined EUCLEAN + ASSERT (strcmp (strerrorname_np (EUCLEAN), "EUCLEAN") == 0); + #endif + /* Linux, AIX, HP-UX, IRIX, Solaris, Cygwin */ + #if defined EUNATCH + ASSERT (strcmp (strerrorname_np (EUNATCH), "EUNATCH") == 0); + #endif + /* Minix */ + #if defined EURG + ASSERT (strcmp (strerrorname_np (EURG), "EURG") == 0); + #endif + /* Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, OSF/1, Solaris, Minix, Cygwin */ + #if defined EUSERS + ASSERT (strcmp (strerrorname_np (EUSERS), "EUSERS") == 0); + #endif + /* OSF/1 */ + #if defined EVERSION + ASSERT (strcmp (strerrorname_np (EVERSION), "EVERSION") == 0); + #endif + /* IRIX */ + #if defined EWRONGFS + ASSERT (strcmp (strerrorname_np (EWRONGFS), "EWRONGFS") == 0); + #endif + /* AIX */ + #if defined EWRPROTECT + ASSERT (strcmp (strerrorname_np (EWRPROTECT), "EWRPROTECT") == 0); + #endif + /* Linux, IRIX, Solaris, Cygwin */ + #if defined EXFULL + ASSERT (strcmp (strerrorname_np (EXFULL), "EXFULL") == 0); + #endif + + ASSERT (strerrorname_np (20200830) == NULL); + ASSERT (strerrorname_np (-714) == NULL); + + return 0; +} -- 2.7.4