diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-02 07:24:15 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-02 07:24:15 +0000 |
commit | ed8078fcf09b69179ba1b8f7fbbac06781b87908 (patch) | |
tree | 45a34394b5127281bc11b43069433b36f688b8c1 /libstdc++-v3/acinclude.m4 | |
parent | 021a57f44690d097ed3e31143b0848c88692f20e (diff) | |
download | gcc-ed8078fcf09b69179ba1b8f7fbbac06781b87908.tar.gz |
2000-06-01 Benjamin Kosnik <bkoz@gnu.org>
* bits/std_cwctype.h: Clean.
* bits/std_cwchar.h: Clean, remove cruft.
* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Re-work, add bits
for beginning iconv support.
Remove _GLIBCPP_HAS_WCHAR_MIN_MAX, roll into _GLIBCPP_USE_WCHAR_T
macro.
* acconfig.h: Remove _GLIBCPP_HAS_WCHAR_MIN_MAX.
* bits/limits_generic.h: Remove.
* src/gen-num-limits.cc: Same.
* src/locale.cc: Tweaks.
* bits/char_traits.h: Tweaks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34352 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/acinclude.m4')
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 127 |
1 files changed, 77 insertions, 50 deletions
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 9030b7f0cb8..8e67e6d669c 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -520,59 +520,86 @@ dnl Check to see if this target can enable the wchar_t parts of libstdc++. dnl dnl Define _GLIBCPP_USE_WCHAR_T if all the bits are found dnl Define _GLIBCPP_NEED_MBSTATE_T if mbstate_t is not in wchar.h -dnl Define _GLIBCPP_HAS_WCHAR_MIN_MAX if WCHAR_MIN, WCHAR_MAX in wchar.h dnl dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [ - AC_CHECK_HEADER(wchar.h,[ - dnl Test wchar.h for mbstate_t, which is needed for char_traits and others. - AC_MSG_CHECKING([for native mbstate_t]) - AC_TRY_COMPILE([#include <wchar.h>], - [mbstate_t teststate;], - use_native_mbstatet=yes, use_native_mbstatet=no) - AC_MSG_RESULT($use_native_mbstatet) - if test $use_native_mbstatet = "no"; then - AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T) - fi + + dnl Sanity check for existence of ISO C9X headers for extended encoding. + AC_CHECK_HEADER(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no) + AC_CHECK_HEADER(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no) + + dnl Only continue checking if the ISO C9X headers exist. + if test x"$ac_has_wchar_h" = xyes && test x"$ac_has_wctype_h" = xyes; then + + dnl Test wchar.h for mbstate_t, which is needed for char_traits and others. + AC_MSG_CHECKING([for mbstate_t]) + AC_TRY_COMPILE([#include <wchar.h>], + [mbstate_t teststate;], + use_native_mbstatet=yes, use_native_mbstatet=no) + AC_MSG_RESULT($use_native_mbstatet) + if test x"$use_native_mbstatet" = xno; then + AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T) + fi - dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before - dnl numeric_limits can instantiate type_traits<wchar_t> - AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX]) - AC_TRY_COMPILE([#include <wchar.h>], - [int i = WCHAR_MIN; int j = WCHAR_MAX;], - has_wchar_minmax=yes, has_wchar_minmax=no) - AC_MSG_RESULT($has_wchar_minmax) - if test $has_wchar_minmax = "yes"; then - AC_DEFINE(_GLIBCPP_HAS_WCHAR_MIN_MAX) - fi + dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before + dnl numeric_limits can instantiate type_traits<wchar_t> + AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX]) + AC_TRY_COMPILE([#include <wchar.h>], + [int i = WCHAR_MIN; int j = WCHAR_MAX;], + has_wchar_minmax=yes, has_wchar_minmax=no) + AC_MSG_RESULT($has_wchar_minmax) - # Test wchar.h for WEOF, which is what we use to determine whether - # to specialize for wchar_t or not. - AC_MSG_CHECKING([for WEOF]) - AC_TRY_COMPILE([ - #include <wchar.h> - #include <stddef.h>], - [wint_t i = WEOF;], - has_weof=yes, has_weof=no) - AC_MSG_RESULT($has_weof) - - dnl Tests for wide character functions. - AC_REPLACE_STRINGFUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset) - AC_SUBST(libinst_wstring_la) - - AC_MSG_CHECKING([for wide character support]) - if test $has_weof = "yes" && test $has_wchar_minmax = "yes"; then - libinst_wstring_la="libinst-wstring.la" - AC_DEFINE(_GLIBCPP_USE_WCHAR_T) - AC_MSG_RESULT(ok) + dnl Test wchar.h for WEOF, which is what we use to determine whether + dnl to specialize for char_traits<wchar_t> or not. + AC_MSG_CHECKING([for WEOF]) + AC_TRY_COMPILE([ + #include <wchar.h> + #include <stddef.h>], + [wint_t i = WEOF;], + has_weof=yes, has_weof=no) + AC_MSG_RESULT($has_weof) + + dnl Tests for wide character functions used in char_traits<wchar_t>. + AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset, ac_wfuncs=yes, ac_wfuncs=no) + + AC_MSG_CHECKING([for ISO C9X wchar_t support]) + if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then + ac_isoC9X_wchar_t=yes + else + ac_isoC9X_wchar_t=no + fi + AC_MSG_RESULT($ac_isoC9X_wchar_t) + + dnl Use iconv for wchar_t to char conversions. As such, check for + dnl X/Open Portability Guide, version 2 features (XPG2). + AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no) + AC_CHECK_FUNCS(iconv_open iconv_close iconv, ac_XPG2funcs=yes, ac_XPG2funcs=no) + + AC_MSG_CHECKING([for XPG2 wchar_t support]) + if test x"$ac_has_iconv_h" = xyes && test x"$ac_XPG2funcs" = xyes; then + ac_XPG2_wchar_t=yes + else + ac_XPG2_wchar_t=no + fi + AC_MSG_RESULT($ac_XPG2_wchar_t) + + dnl At the moment, only enable wchar_t specializations if all the + dnl above support is present. + AC_MSG_CHECKING([for enabled wchar_t specializations]) + if test x"$ac_isoC9X_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then + libinst_wstring_la="libinst-wstring.la" + AC_DEFINE(_GLIBCPP_USE_WCHAR_T) + AC_MSG_RESULT("yes") + else + libinst_wstring_la="" + AC_MSG_RESULT("no") + fi + AC_SUBST(libinst_wstring_la) + else - libinst_wstring_la="" - AC_MSG_RESULT("not specializing for wchar_t") + AC_MSG_WARN([<wchar.h> not found]) + AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T) fi - ],[ - AC_MSG_WARN([<wchar.h> not found]) - AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T) - ]) ]) @@ -949,7 +976,6 @@ dnl GLIBCPP_ENABLE_LONG_LONG AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl - AC_MSG_CHECKING([for enabled long long]) AC_ARG_ENABLE(long-long, changequote(<<, >>)dnl <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT], @@ -965,11 +991,12 @@ AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl AC_CHECK_FUNC(strtoll,,ac_strtoll=no) AC_CHECK_FUNC(strtoull,,ac_strtoull=no) + AC_MSG_CHECKING([for enabled long long]) if test x"$ac_strtoll" = xno || test x"$ac_strtoull" = xno; then - enable_long_long=no; - fi; unset ac_ll - + enable_long_long=no; + fi; AC_MSG_RESULT($enable_long_long) + dnl Option parsed, now set things appropriately case "$enable_long_long" in yes) AC_DEFINE(_GLIBCPP_USE_LONG_LONG) |