changeset 16893:a6389b513756

error, strerror-override: Support mingw64 from Fedora 17. * lib/errno.in.h (GNULIB_defined_ESTREAMS): Use a different indicator for ETXTBSY, ENODATA, ENOSR, ENOSTR, ETIME, EOTHER, compared to EINPROGRESS. * lib/strerror-override.h (strerror_override): Test it. * lib/strerror-override.c (strerror_override): Likewise. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also ETXTBSY.
author Paolo Bonzini <bonzini@gnu.org>
date Sun, 03 Jun 2012 18:29:00 +0200
parents 75dd3fc6e824
children 40d1660d75ba
files ChangeLog lib/errno.in.h lib/strerror-override.c lib/strerror-override.h m4/errno_h.m4
diffstat 5 files changed, 22 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2012-05-21  Paolo Bonzini  <bonzini@gnu.org>
+	    Bruno Haible  <bruno@clisp.org>
+
+	error, strerror-override: Support mingw64 from Fedora 17.
+	* lib/errno.in.h (GNULIB_defined_ESTREAMS): Use a different indicator
+	for ETXTBSY, ENODATA, ENOSR, ENOSTR, ETIME, EOTHER, compared to
+	EINPROGRESS.
+	* lib/strerror-override.h (strerror_override): Test it.
+	* lib/strerror-override.c (strerror_override): Likewise.
+	* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also ETXTBSY.
+
 2012-05-21  Paolo Bonzini  <bonzini@gnu.org>
 	    Bruno Haible  <bruno@clisp.org>
 
--- a/lib/errno.in.h
+++ b/lib/errno.in.h
@@ -118,13 +118,17 @@
 #   define ELOOP           114
 #   define EHOSTUNREACH    110
 #   define EWOULDBLOCK     140
+#   define GNULIB_defined_ESOCK 1
+#  endif
+
+#  ifndef ETXTBSY
 #   define ETXTBSY         139
 #   define ENODATA         120  /* not required by POSIX */
 #   define ENOSR           124  /* not required by POSIX */
 #   define ENOSTR          125  /* not required by POSIX */
 #   define ETIME           137  /* not required by POSIX */
 #   define EOTHER          131  /* not required by POSIX */
-#   define GNULIB_defined_ESOCK 1
+#   define GNULIB_defined_ESTREAMS 1
 #  endif
 
 /* These are intentionally the same values as the WSA* error numbers, defined
--- a/lib/strerror-override.c
+++ b/lib/strerror-override.c
@@ -89,6 +89,8 @@
       return "No route to host";
     case EWOULDBLOCK:
       return "Operation would block";
+#endif
+#if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
     case ETXTBSY:
       return "Text file busy";
     case ENODATA:
--- a/lib/strerror-override.h
+++ b/lib/strerror-override.h
@@ -30,6 +30,7 @@
    describing the error.  Otherwise return NULL.  */
 # if REPLACE_STRERROR_0 \
      || GNULIB_defined_ESOCK \
+     || GNULIB_defined_ESTREAMS \
      || GNULIB_defined_EWINSOCK \
      || GNULIB_defined_ENOMSG \
      || GNULIB_defined_EIDRM \
--- a/m4/errno_h.m4
+++ b/m4/errno_h.m4
@@ -10,6 +10,9 @@
   AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [
     AC_EGREP_CPP([booboo],[
 #include <errno.h>
+#if !defined ETXTBSY
+booboo
+#endif
 #if !defined ENOMSG
 booboo
 #endif