X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=m4%2Fmbstate_t.m4;h=ac47f11b2504931b91db8c65ddd0184e3b4128d9;hb=12d0cc62bb2f9068794bbf8b1c210490bd07479a;hp=aca2df34785223f79c22718c099d8eb649967f44;hpb=ee21d9f1e319e42037ec8e12b610eb358d26ed7f;p=chaz%2Ftar diff --git a/m4/mbstate_t.m4 b/m4/mbstate_t.m4 index aca2df3..ac47f11 100644 --- a/m4/mbstate_t.m4 +++ b/m4/mbstate_t.m4 @@ -1,4 +1,4 @@ -# serial 2 +# serial 6 # From Paul Eggert. @@ -6,13 +6,19 @@ # 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 + [ + AC_CHECK_HEADERS(stdlib.h) + + AC_CACHE_CHECK([for mbstate_t object], ac_cv_type_mbstate_t_object, + [AC_TRY_COMPILE([ +#if HAVE_STDLIB_H +# include +#endif #include ], [mbstate_t x; return sizeof x;], ac_cv_type_mbstate_t_object=yes, @@ -20,4 +26,18 @@ AC_DEFUN(AC_MBSTATE_T_OBJECT, 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.]) + else + AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t, + [AC_TRY_COMPILE([ +#if HAVE_STDLIB_H +# include +#endif +#include ], + [mbstate_t *x; return sizeof x;], + ac_cv_type_mbstate_t=yes, + ac_cv_type_mbstate_t=no)]) + if test $ac_cv_type_mbstate_t != yes; then + AC_DEFINE(mbstate_t, int, + [Define to int if does not define.]) + fi fi])