Eric Blake wrote: > gnulib can work around missing ESTALE, but we > would need to port errno_h.m4 to detect interix's situation
Done as follows: 2009-06-17 Bruno Haible <br...@clisp.org> Define missing ESTALE on Interix 3.5. * lib/errno.in.h (ESTALE): Assign a value if missing. * lib/strerror.c (rpl_strerror): Handle missing ESTALE and ECANCELED. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether ESTALE is missing. * doc/posix-headers/errno.texi: Mention the Interix bug. Reported by Jay Krell <jay.kr...@cornell.edu> via Eric Blake. --- lib/errno.in.h.orig 2009-06-17 10:33:17.000000000 +0200 +++ lib/errno.in.h 2009-06-17 10:24:53.000000000 +0200 @@ -1,6 +1,6 @@ /* A POSIX-like <errno.h>. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-2009 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 @@ -145,6 +145,11 @@ # define GNULIB_defined_ENOTSUP 1 # endif +# ifndef ESTALE +# define ESTALE 2009 +# define GNULIB_defined_ESTALE 1 +# endif + # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 --- lib/strerror.c.orig 2009-06-17 10:33:17.000000000 +0200 +++ lib/strerror.c 2009-06-17 10:28:13.000000000 +0200 @@ -313,7 +313,13 @@ break; # endif -# if GNULIB_defined_ +# if GNULIB_defined_ESTALE + case ESTALE: + msg = "Stale NFS file handle"; + break; +# endif + +# if GNULIB_defined_ECANCELED case ECANCELED: msg = "Operation canceled"; break; --- m4/errno_h.m4.orig 2009-06-17 10:33:17.000000000 +0200 +++ m4/errno_h.m4 2009-06-17 10:23:39.000000000 +0200 @@ -1,4 +1,4 @@ -# errno_h.m4 serial 5 +# errno_h.m4 serial 6 dnl Copyright (C) 2004, 2006, 2008, 2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -34,6 +34,9 @@ #if !defined ENOTSUP booboo #endif +#if !defined ESTALE +booboo +#endif #if !defined ECANCELED booboo #endif --- doc/posix-headers/errno.texi.orig 2009-06-17 10:33:17.000000000 +0200 +++ doc/posix-headers/errno.texi 2009-06-17 10:21:00.000000000 +0200 @@ -19,14 +19,17 @@ @code{ENOTSUP} are not defined on some platforms: OpenBSD 4.0, mingw. @item +The macro @code{ESTALE} is not defined on some platforms: +mingw, Interix 3.5. +...@item The macros @code{EWOULDBLOCK}, @code{ETXTBSY}, @code{ELOOP}, @code{ENOTSOCK}, @code{EDESTADDRREQ}, @code{EMSGSIZE}, @code{EPROTOTYPE}, @code{ENOPROTOOPT}, @code{EPROTONOSUPPORT}, @code{EOPNOTSUPP}, @code{EAFNOSUPPORT}, @code{EADDRINUSE}, @code{EADDRNOTAVAIL}, @code{ENETDOWN}, @code{ENETUNREACH}, @code{ENETRESET}, @code{ECONNABORTED}, @code{ECONNRESET}, @code{ENOBUFS}, @code{EISCONN}, @code{ENOTCONN}, @code{ETIMEDOUT}, @code{ECONNREFUSED}, -...@code{ehostunreach}, @code{EALREADY}, @code{EINPROGRESS}, @code{ESTALE}, -...@code{edquot} are not defined on some platforms: +...@code{ehostunreach}, @code{EALREADY}, @code{EINPROGRESS}, @code{EDQUOT} are +not defined on some platforms: mingw. @end itemize