4
0
Paul Eggert 25 жил өмнө
parent
commit
865e5f3295
1 өөрчлөгдсөн 21 нэмэгдсэн , 5 устгасан
  1. 21 5
      m4/mbstate_t.m4

+ 21 - 5
m4/mbstate_t.m4

@@ -1,4 +1,4 @@
-# serial 2
+# serial 4
 
 # From Paul Eggert.
 
@@ -6,13 +6,29 @@
 # so you can't declare an object of that type.
 # Check for this incompatibility with Standard C.
 
-# Include stdio.h first, because otherwise this test would fail on Linux
-# (at least 2.2.16) because the `_XOPEN_SOURCE 500' definition elicits
+# 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_OBJECT,
-  [AC_CACHE_CHECK([for mbstate_t object type], ac_cv_type_mbstate_t_object,
-    [AC_TRY_COMPILE([#include <stdio.h>
+  [
+   # Check for the mbstate_t type.
+   ac_mbs_tmp=$ac_includes_default
+   ac_includes_default="
+$ac_includes_default
+#if HAVE_WCHAR_H
+# include <wchar.h>
+#endif
+"
+   AC_CHECK_TYPE(mbstate_t, int)
+   # Restore the default value.
+   ac_includes_default=$ac_mbs_tmp
+
+   AC_CACHE_CHECK([for mbstate_t object type], ac_cv_type_mbstate_t_object,
+    [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,