]> Dogcows Code - chaz/tar/blobdiff - m4/mbstate_t.m4
Update
[chaz/tar] / m4 / mbstate_t.m4
index 4cbbfd5b822fb564baa65fc9d03459cbc98c1e2f..ae2bcf1e8e24369a3cc8fd9fc2fc1eff86c4bcfb 100644 (file)
@@ -1,18 +1,29 @@
-# serial 1
+# serial 9
 
 # From Paul Eggert.
 
-# Some versions of BeOS define mbstate_t to be an incomplete type,
+# BeOS 5 has <wchar.h> but does not define mbstate_t,
 # so you can't declare an object of that type.
 # Check for this incompatibility with Standard C.
 
-AC_DEFUN(AC_MBSTATE_T_OBJECT,
-  [AC_CACHE_CHECK([for mbstate_t object type], ac_cv_type_mbstate_t_object,
-    [AC_TRY_COMPILE([#include <wchar.h>],
+# Include stdlib.h first, because otherwise this test would fail on Linux
+# (at least glibc-2.1.3) because the "_XOPEN_SOURCE 500" definition elicits
+# a syntax error in wchar.h due to the use of undefined __int32_t.
+
+AC_DEFUN([AC_MBSTATE_T],
+  [
+   AC_CHECK_HEADERS(stdlib.h)
+
+   AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
+    [AC_TRY_COMPILE([
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+#include <wchar.h>],
       [mbstate_t x; return sizeof x;],
-      ac_cv_type_mbstate_t_object=yes,
-      ac_cv_type_mbstate_t_object=no)])
-   if test $ac_cv_type_mbstate_t_object = yes; then
-     AC_DEFINE(HAVE_MBSTATE_T_OBJECT, 1,
-              [Define if mbstate_t is an object type.])
+      ac_cv_type_mbstate_t=yes,
+      ac_cv_type_mbstate_t=no)])
+   if test $ac_cv_type_mbstate_t = no; then
+     AC_DEFINE(mbstate_t, int,
+              [Define to a type if <wchar.h> does not define.])
    fi])
This page took 0.022197 seconds and 4 git commands to generate.