time_members_gnu.h (__timepunct::_M_get_helper): Add.
authorBenjamin Kosnik <bkoz@redhat.com>
Fri, 28 Sep 2001 23:44:48 +0000 (23:44 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 28 Sep 2001 23:44:48 +0000 (23:44 +0000)
2001-09-28  Benjamin Kosnik  <bkoz@redhat.com>

* config/locale/time_members_gnu.h (__timepunct::_M_get_helper): Add.
(__timepunct::_M_put_helper): Add.
* config/locale/time_members_generic.h: Same.
* include/bits/locale_facets.h (__match_parallel): Remove. Format.
(__timepunct): Add data members.
(__timepunct::_M_days): Add.
(__timepunct::_M_days_abbreviated): Add.
(__timepunct::_M_months): Add.
(__timepunct::_M_months_abbreviated): Add.
(__timepunct::_M_initialize_timepunct): Add.
* include/bits/locale_facets.tcc: Same.
* src/locale-inst.cc: Remove instantiations for __match_parallel.
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add CTIME_CC.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* testsuite/22_locale/time_put_members_char.cc: Mark XFAIL.
* testsuite/22_locale/time_put_members_char.cc (test01): New file.
* testsuite/22_locale/time_get.cc: New file.

From-SVN: r45868

17 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/acinclude.m4
libstdc++-v3/aclocal.m4
libstdc++-v3/config/locale/time_members_generic.cc [new file with mode: 0644]
libstdc++-v3/config/locale/time_members_generic.h
libstdc++-v3/config/locale/time_members_gnu.cc [new file with mode: 0644]
libstdc++-v3/config/locale/time_members_gnu.h
libstdc++-v3/configure
libstdc++-v3/include/bits/locale_facets.h
libstdc++-v3/include/bits/locale_facets.tcc
libstdc++-v3/src/Makefile.am
libstdc++-v3/src/Makefile.in
libstdc++-v3/src/locale-inst.cc
libstdc++-v3/src/locale.cc
libstdc++-v3/testsuite/22_locale/time_get.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_get_members_char.cc [new file with mode: 0644]
libstdc++-v3/testsuite/22_locale/time_put_members_char.cc

index 7ca2aa0001c5d0b4feed7cac520a73dedaf5fb1d..a21754780308facf5e79e9e7bf4c054f4dadec34 100644 (file)
@@ -1,3 +1,24 @@
+2001-09-28  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * config/locale/time_members_gnu.h (__timepunct::_M_get_helper): Add.
+       (__timepunct::_M_put_helper): Add.
+       * config/locale/time_members_generic.h: Same.
+       * include/bits/locale_facets.h (__match_parallel): Remove. Format.
+       (__timepunct): Add data members.
+       (__timepunct::_M_days): Add.
+       (__timepunct::_M_days_abbreviated): Add.
+       (__timepunct::_M_months): Add.
+       (__timepunct::_M_months_abbreviated): Add.
+       (__timepunct::_M_initialize_timepunct): Add.
+       * include/bits/locale_facets.tcc: Same. 
+       * src/locale-inst.cc: Remove instantiations for __match_parallel.
+       * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add CTIME_CC.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+       * testsuite/22_locale/time_put_members_char.cc: Mark XFAIL.
+       * testsuite/22_locale/time_put_members_char.cc (test01): New file.
+       * testsuite/22_locale/time_get.cc: New file.
+
 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Use
index 770aaea4856fb030d8a4d18d241358a105c0fdbe..836193ea90abd0fb3e35d8d7d6fdbcb00921d5a3 100644 (file)
@@ -1064,6 +1064,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
       CMONEY_CC=config/locale/moneypunct_members_generic.cc
       CNUMERIC_CC=config/locale/numpunct_members_generic.cc
       CTIME_H=config/locale/time_members_generic.h
+      CTIME_CC=config/locale/time_members_generic.cc
       ;;
     xgnu)
       AC_MSG_RESULT(gnu)
@@ -1093,6 +1094,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
       CMONEY_CC=config/locale/moneypunct_members_gnu.cc
       CNUMERIC_CC=config/locale/numpunct_members_gnu.cc
       CTIME_H=config/locale/time_members_gnu.h
+      CTIME_CC=config/locale/time_members_gnu.cc
       ;;
     xieee_1003.1)
       AC_MSG_RESULT(generic)
@@ -1109,6 +1111,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
       CMONEY_CC=config/locale/moneypunct_members_generic.cc
       CNUMERIC_CC=config/locale/numpunct_members_generic.cc
       CTIME_H=config/locale/time_members_generic.h
+      CTIME_CC=config/locale/time_members_generic.cc
       ;;
     *)
       echo "$enable_clocale is an unknown locale package" 1>&2
@@ -1131,6 +1134,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
   AC_LINK_FILES($CMESSAGES_CC, src/messages.cc)
   AC_LINK_FILES($CMONEY_CC, src/moneypunct.cc)
   AC_LINK_FILES($CNUMERIC_CC, src/numpunct.cc)
+  AC_LINK_FILES($CTIME_CC, src/time.cc)
 ])
 
 
index 0c5e1ee8da99a6c4023b966565c1e6e98d0ef90f..2b0aff5c27afd4a0bd36d06caa2ac9887fbf792d 100644 (file)
@@ -1076,6 +1076,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
       CMONEY_CC=config/locale/moneypunct_members_generic.cc
       CNUMERIC_CC=config/locale/numpunct_members_generic.cc
       CTIME_H=config/locale/time_members_generic.h
+      CTIME_CC=config/locale/time_members_generic.cc
       ;;
     xgnu)
       AC_MSG_RESULT(gnu)
@@ -1105,6 +1106,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
       CMONEY_CC=config/locale/moneypunct_members_gnu.cc
       CNUMERIC_CC=config/locale/numpunct_members_gnu.cc
       CTIME_H=config/locale/time_members_gnu.h
+      CTIME_CC=config/locale/time_members_gnu.cc
       ;;
     xieee_1003.1)
       AC_MSG_RESULT(generic)
@@ -1121,6 +1123,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
       CMONEY_CC=config/locale/moneypunct_members_generic.cc
       CNUMERIC_CC=config/locale/numpunct_members_generic.cc
       CTIME_H=config/locale/time_members_generic.h
+      CTIME_CC=config/locale/time_members_generic.cc
       ;;
     *)
       echo "$enable_clocale is an unknown locale package" 1>&2
@@ -1143,6 +1146,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
   AC_LINK_FILES($CMESSAGES_CC, src/messages.cc)
   AC_LINK_FILES($CMONEY_CC, src/moneypunct.cc)
   AC_LINK_FILES($CNUMERIC_CC, src/numpunct.cc)
+  AC_LINK_FILES($CTIME_CC, src/time.cc)
 ])
 
 
diff --git a/libstdc++-v3/config/locale/time_members_generic.cc b/libstdc++-v3/config/locale/time_members_generic.cc
new file mode 100644 (file)
index 0000000..d1c1051
--- /dev/null
@@ -0,0 +1,106 @@
+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
+//
+
+// Written by Benjamin Kosnik <bkoz@redhat.com>
+
+#include <locale>
+
+namespace std
+{
+  template<> 
+    void
+    __timepunct<char>::_M_initialize_timepunct(__c_locale)
+    { 
+      // "C" locale
+      _M_date_format = "%m/%d/%Y";
+      _M_date_era_format = "%m/%d/%Y";
+      _M_time_format = "%H:%M:%S";
+      _M_time_era_format = "%H:%M:%S";
+      _M_am = "AM";
+      _M_pm = "PM";
+         
+      // Day names, starting with "C"'s Sunday.
+      _M_day1 = "Sunday";
+      _M_day2 = "Monday";
+      _M_day3 = "Tuesday";
+      _M_day4 = "Wednesday";
+      _M_day5 = "Thursday";
+      _M_day6 = "Friday";
+      _M_day7 = "Saturday";
+
+      // Abbreviated day names, starting with "C"'s Sun.
+      _M_day_a1 = "Sun";
+      _M_day_a2 = "Mon";
+      _M_day_a3 = "Tue";
+      _M_day_a4 = "Wed";
+      _M_day_a5 = "Thu";
+      _M_day_a6 = "Fri";
+      _M_day_a7 = "Sat";
+
+      // Month names, starting with "C"'s January.
+      _M_month01 = "January";
+      _M_month02 = "February";
+      _M_month03 = "March";
+      _M_month04 = "April";
+      _M_month05 = "May";
+      _M_month06 = "June";
+      _M_month07 = "July";
+      _M_month08 = "August";
+      _M_month09 = "September";
+      _M_month10 = "October";
+      _M_month11 = "November";
+      _M_month12 = "December";
+
+      // Abbreviated month names, starting with "C"'s Jan.
+      _M_month_a01 = "Jan";
+      _M_month_a02 = "Feb";
+      _M_month_a03 = "Mar";
+      _M_month_a04 = "Apr";
+      _M_month_a05 = "May";
+      _M_month_a06 = "Jun";
+      _M_month_a07 = "July";
+      _M_month_a08 = "Aug";
+      _M_month_a09 = "Sep";
+      _M_month_a10 = "Oct";
+      _M_month_a11 = "Nov";
+      _M_month_a12 = "Dec";
+    }
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+  template<> 
+    void
+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale)
+    { }
+#endif
+}
index 325ffaaa00080ca1a12c384dfd3319d76091bc0b..88b8208feab90d6543525f13f63087a3ec2cf038 100644 (file)
 
   template<typename _CharT>
     void
-    __timepunct<_CharT>::_M_put_helper(char* __s, size_t __maxlen, 
-                                      const char* __format, 
-                                      const tm* __tm) const
+    __timepunct<_CharT>::
+    _M_put_helper(char* __s, size_t __maxlen, const char* __format, 
+                 const tm* __tm) const
     {
       setlocale(LC_ALL, _M_name_timepunct);
       strftime(__s, __maxlen, __format, __tm); 
     }
+
+  template<typename _CharT>
+    void
+    __timepunct<_CharT>::
+    _M_get_helper(const char*, const char*, tm*) const
+    {
+      setlocale(LC_ALL, _M_name_timepunct);
+      // strptime(__s, __format, __tm);
+    }
diff --git a/libstdc++-v3/config/locale/time_members_gnu.cc b/libstdc++-v3/config/locale/time_members_gnu.cc
new file mode 100644 (file)
index 0000000..4f4789a
--- /dev/null
@@ -0,0 +1,176 @@
+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
+//
+
+// Written by Benjamin Kosnik <bkoz@redhat.com>
+
+#include <locale>
+
+namespace std
+{
+  template<> 
+    void
+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
+    {
+      if (!__cloc)
+       {
+         // "C" locale
+         _M_date_format = "%m/%d/%Y";
+         _M_date_era_format = "%m/%d/%Y";
+         _M_time_format = "%H:%M:%S";
+         _M_time_era_format = "%H:%M:%S";
+         _M_am = "AM";
+         _M_pm = "PM";
+         
+         // Day names, starting with "C"'s Sunday.
+         _M_day1 = "Sunday";
+         _M_day2 = "Monday";
+         _M_day3 = "Tuesday";
+         _M_day4 = "Wednesday";
+         _M_day5 = "Thursday";
+         _M_day6 = "Friday";
+         _M_day7 = "Saturday";
+
+         // Abbreviated day names, starting with "C"'s Sun.
+         _M_day_a1 = "Sun";
+         _M_day_a2 = "Mon";
+         _M_day_a3 = "Tue";
+         _M_day_a4 = "Wed";
+         _M_day_a5 = "Thu";
+         _M_day_a6 = "Fri";
+         _M_day_a7 = "Sat";
+
+         // Month names, starting with "C"'s January.
+         _M_month01 = "January";
+         _M_month02 = "February";
+         _M_month03 = "March";
+         _M_month04 = "April";
+         _M_month05 = "May";
+         _M_month06 = "June";
+         _M_month07 = "July";
+         _M_month08 = "August";
+         _M_month09 = "September";
+         _M_month10 = "October";
+         _M_month11 = "November";
+         _M_month12 = "December";
+
+         // Abbreviated month names, starting with "C"'s Jan.
+         _M_month_a01 = "Jan";
+         _M_month_a02 = "Feb";
+         _M_month_a03 = "Mar";
+         _M_month_a04 = "Apr";
+         _M_month_a05 = "May";
+         _M_month_a06 = "Jun";
+         _M_month_a07 = "July";
+         _M_month_a08 = "Aug";
+         _M_month_a09 = "Sep";
+         _M_month_a10 = "Oct";
+         _M_month_a11 = "Nov";
+         _M_month_a12 = "Dec";
+       }
+      else
+       {
+         _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
+
+         _M_date_format = __nl_langinfo_l(D_FMT, __cloc);
+         _M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
+         _M_time_format = __nl_langinfo_l(T_FMT, __cloc);
+         _M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
+         _M_am = __nl_langinfo_l(AM_STR, __cloc);
+         _M_pm = __nl_langinfo_l(PM_STR, __cloc);
+
+         // Day names, starting with "C"'s Sunday.
+         _M_day1 = __nl_langinfo_l(DAY_1, __cloc);
+         _M_day2 = __nl_langinfo_l(DAY_2, __cloc);
+         _M_day3 = __nl_langinfo_l(DAY_3, __cloc);
+         _M_day4 = __nl_langinfo_l(DAY_4, __cloc);
+         _M_day5 = __nl_langinfo_l(DAY_5, __cloc);
+         _M_day6 = __nl_langinfo_l(DAY_6, __cloc);
+         _M_day7 = __nl_langinfo_l(DAY_7, __cloc);
+
+         // Abbreviated day names, starting with "C"'s Sun.
+         _M_day_a1 = __nl_langinfo_l(ABDAY_1, __cloc);
+         _M_day_a2 = __nl_langinfo_l(ABDAY_2, __cloc);
+         _M_day_a3 = __nl_langinfo_l(ABDAY_3, __cloc);
+         _M_day_a4 = __nl_langinfo_l(ABDAY_4, __cloc);
+         _M_day_a5 = __nl_langinfo_l(ABDAY_5, __cloc);
+         _M_day_a6 = __nl_langinfo_l(ABDAY_6, __cloc);
+         _M_day_a7 = __nl_langinfo_l(ABDAY_7, __cloc);
+
+         // Month names, starting with "C"'s January.
+         _M_month01 = __nl_langinfo_l(MON_1, __cloc);
+         _M_month02 = __nl_langinfo_l(MON_2, __cloc);
+         _M_month03 = __nl_langinfo_l(MON_3, __cloc);
+         _M_month04 = __nl_langinfo_l(MON_4, __cloc);
+         _M_month05 = __nl_langinfo_l(MON_5, __cloc);
+         _M_month06 = __nl_langinfo_l(MON_6, __cloc);
+         _M_month07 = __nl_langinfo_l(MON_7, __cloc);
+         _M_month08 = __nl_langinfo_l(MON_8, __cloc);
+         _M_month09 = __nl_langinfo_l(MON_9, __cloc);
+         _M_month10 = __nl_langinfo_l(MON_10, __cloc);
+         _M_month11 = __nl_langinfo_l(MON_11, __cloc);
+         _M_month12 = __nl_langinfo_l(MON_12, __cloc);
+
+         // Abbreviated month names, starting with "C"'s Jan.
+         _M_month_a01 = __nl_langinfo_l(ABMON_1, __cloc);
+         _M_month_a02 = __nl_langinfo_l(ABMON_2, __cloc);
+         _M_month_a03 = __nl_langinfo_l(ABMON_3, __cloc);
+         _M_month_a04 = __nl_langinfo_l(ABMON_4, __cloc);
+         _M_month_a05 = __nl_langinfo_l(ABMON_5, __cloc);
+         _M_month_a06 = __nl_langinfo_l(ABMON_6, __cloc);
+         _M_month_a07 = __nl_langinfo_l(ABMON_7, __cloc);
+         _M_month_a08 = __nl_langinfo_l(ABMON_8, __cloc);
+         _M_month_a09 = __nl_langinfo_l(ABMON_9, __cloc);
+         _M_month_a10 = __nl_langinfo_l(ABMON_10, __cloc);
+         _M_month_a11 = __nl_langinfo_l(ABMON_11, __cloc);
+         _M_month_a12 = __nl_langinfo_l(ABMON_12, __cloc);
+       }
+    }
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+  template<> 
+    void
+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
+    {
+      if (!__cloc)
+       {
+         // "C" locale
+       }
+      else
+       {
+         _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
+       }
+    }
+#endif
+}
+
index 0b9a3a6543a50dac595b1f6c0cbca574863082b1..16c9ff39d183b945e9c09eb9dac8b33fff1fcfd0 100644 (file)
@@ -36,9 +36,9 @@
 
   template<typename _CharT>
     void
-    __timepunct<_CharT>::_M_put_helper(char* __s, size_t __maxlen, 
-                                      const char* __format, 
-                                      const tm* __tm) const
+    __timepunct<_CharT>::
+    _M_put_helper(char* __s, size_t __maxlen, const char* __format, 
+                 const tm* __tm) const
     {
 #if 0
       // Requires glibc 2.3
 #else
       setlocale(LC_ALL, _M_name_timepunct);
       strftime(__s, __maxlen, __format, __tm);
+#endif
+    }
+
+  template<typename _CharT>
+    void
+    __timepunct<_CharT>::
+    _M_get_helper(const char* __s, const char* __format, tm* __tm) const
+    {
+#if 0
+      // Requires glibc 2.3
+      if (_M_c_locale_timepunct)
+       __strptime_l(__s, _M_c_locale_timepunct, __format, __tm);
+      else
+       strptime(__s, __format, __tm);
+#else
+      setlocale(LC_ALL, _M_name_timepunct);
+      strptime(__s, __format, __tm);
 #endif
     }
index b957d292ac40d419a2ef78035b697920ef4ec1fd..64b0841294d2a3a3cbf68532099a425cf8141824 100755 (executable)
@@ -2974,6 +2974,7 @@ fi
       CMONEY_CC=config/locale/moneypunct_members_generic.cc
       CNUMERIC_CC=config/locale/numpunct_members_generic.cc
       CTIME_H=config/locale/time_members_generic.h
+      CTIME_CC=config/locale/time_members_generic.cc
       ;;
     xgnu)
       echo "$ac_t""gnu" 1>&6
@@ -3003,6 +3004,7 @@ fi
       CMONEY_CC=config/locale/moneypunct_members_gnu.cc
       CNUMERIC_CC=config/locale/numpunct_members_gnu.cc
       CTIME_H=config/locale/time_members_gnu.h
+      CTIME_CC=config/locale/time_members_gnu.cc
       ;;
     xieee_1003.1)
       echo "$ac_t""generic" 1>&6
@@ -3019,6 +3021,7 @@ fi
       CMONEY_CC=config/locale/moneypunct_members_generic.cc
       CNUMERIC_CC=config/locale/numpunct_members_generic.cc
       CTIME_H=config/locale/time_members_generic.h
+      CTIME_CC=config/locale/time_members_generic.cc
       ;;
     *)
       echo "$enable_clocale is an unknown locale package" 1>&2
@@ -3041,6 +3044,7 @@ fi
   
   
   
+  
 
 # Check whether --enable-c-mbchar or --disable-c-mbchar was given.
 if test "${enable_c_mbchar+set}" = set; then
@@ -3079,16 +3083,16 @@ cross_compiling=$ac_cv_prog_cxx_cross
   # Check for the existence of <math.h> functions used if C99 is enabled.
   ac_c99_math=yes;
   echo $ac_n "checking for ISO C99 support in <math.h>""... $ac_c" 1>&6
-echo "configure:3083: checking for ISO C99 support in <math.h>" >&5
+echo "configure:3087: checking for ISO C99 support in <math.h>" >&5
   cat > conftest.$ac_ext <<EOF
-#line 3085 "configure"
+#line 3089 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 fpclassify(0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3092: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3098,14 +3102,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3102 "configure"
+#line 3106 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isfinite(0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3115,14 +3119,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3119 "configure"
+#line 3123 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isinf(0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3132,14 +3136,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3136 "configure"
+#line 3140 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isnan(0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3149,14 +3153,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3153 "configure"
+#line 3157 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isnormal(0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3164: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3166,14 +3170,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3170 "configure"
+#line 3174 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 signbit(0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3181: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3183,14 +3187,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3187 "configure"
+#line 3191 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isgreater(0.0,0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3200,14 +3204,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3204 "configure"
+#line 3208 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isgreaterequal(0.0,0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3215: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3217,14 +3221,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3221 "configure"
+#line 3225 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isless(0.0,0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3232: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3234,14 +3238,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3238 "configure"
+#line 3242 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 islessequal(0.0,0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3249: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3251,14 +3255,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3255 "configure"
+#line 3259 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 islessgreater(0.0,0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3268,14 +3272,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3272 "configure"
+#line 3276 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 isunordered(0.0,0.0);
 ; return 0; }
 EOF
-if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3289,16 +3293,16 @@ rm -f conftest*
   # Check for the existence in <stdio.h> of vscanf, et. al.
   ac_c99_stdio=yes;
   echo $ac_n "checking for ISO C99 support in <stdio.h>""... $ac_c" 1>&6
-echo "configure:3293: checking for ISO C99 support in <stdio.h>" >&5
+echo "configure:3297: checking for ISO C99 support in <stdio.h>" >&5
   cat > conftest.$ac_ext <<EOF
-#line 3295 "configure"
+#line 3299 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 snprintf("12", 0, "%i");
 ; return 0; }
 EOF
-if { (eval echo configure:3302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3306: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3308,7 +3312,7 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3312 "configure"
+#line 3316 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                  #include <stdarg.h>
@@ -3319,7 +3323,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3327: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3329,7 +3333,7 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3333 "configure"
+#line 3337 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                  #include <stdarg.h>
@@ -3340,7 +3344,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3350,7 +3354,7 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3354 "configure"
+#line 3358 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                  #include <stdarg.h>
@@ -3361,7 +3365,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3371,7 +3375,7 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3375 "configure"
+#line 3379 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                  #include <stdarg.h>
@@ -3382,7 +3386,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3386: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3396,20 +3400,20 @@ rm -f conftest*
   # Check for the existence in <stdlib.h> of lldiv_t, et. al.
   ac_c99_stdlib=yes;
   echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6
-echo "configure:3400: checking for lldiv_t declaration" >&5
+echo "configure:3404: checking for lldiv_t declaration" >&5
   if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 3406 "configure"
+#line 3410 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
  lldiv_t mydivt;
 ; return 0; }
 EOF
-if { (eval echo configure:3413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_c99_lldiv_t=yes
 else
@@ -3425,16 +3429,16 @@ fi
   echo "$ac_t""$ac_c99_lldiv_t" 1>&6
 
   echo $ac_n "checking for ISO C99 support in <stdlib.h>""... $ac_c" 1>&6
-echo "configure:3429: checking for ISO C99 support in <stdlib.h>" >&5
+echo "configure:3433: checking for ISO C99 support in <stdlib.h>" >&5
   cat > conftest.$ac_ext <<EOF
-#line 3431 "configure"
+#line 3435 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 char* tmp; strtof("gnu", &tmp);
 ; return 0; }
 EOF
-if { (eval echo configure:3438: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3444,14 +3448,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3448 "configure"
+#line 3452 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 char* tmp; strtold("gnu", &tmp);
 ; return 0; }
 EOF
-if { (eval echo configure:3455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3461,14 +3465,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3465 "configure"
+#line 3469 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 char* tmp; strtoll("gnu", &tmp, 10);
 ; return 0; }
 EOF
-if { (eval echo configure:3472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3478,14 +3482,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3482 "configure"
+#line 3486 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 char* tmp; strtoull("gnu", &tmp, 10);
 ; return 0; }
 EOF
-if { (eval echo configure:3489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3493: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3495,14 +3499,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3499 "configure"
+#line 3503 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 llabs(10);
 ; return 0; }
 EOF
-if { (eval echo configure:3506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3512,14 +3516,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3516 "configure"
+#line 3520 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 lldiv(10,1);
 ; return 0; }
 EOF
-if { (eval echo configure:3523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3527: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3529,14 +3533,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3533 "configure"
+#line 3537 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 atoll("10");
 ; return 0; }
 EOF
-if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3546,14 +3550,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3550 "configure"
+#line 3554 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
 _Exit(0);
 ; return 0; }
 EOF
-if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3571,16 +3575,16 @@ rm -f conftest*
   # XXX the wchar.h checks should be rolled into the general C99 bits.
   ac_c99_wchar=yes;
   echo $ac_n "checking for additional ISO C99 support in <wchar.h>""... $ac_c" 1>&6
-echo "configure:3575: checking for additional ISO C99 support in <wchar.h>" >&5
+echo "configure:3579: checking for additional ISO C99 support in <wchar.h>" >&5
   cat > conftest.$ac_ext <<EOF
-#line 3577 "configure"
+#line 3581 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 wcstold(L"10.0", NULL);
 ; return 0; }
 EOF
-if { (eval echo configure:3584: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3590,14 +3594,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3594 "configure"
+#line 3598 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 wcstoll(L"10", NULL, 10);
 ; return 0; }
 EOF
-if { (eval echo configure:3601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3607,14 +3611,14 @@ else
 fi
 rm -f conftest*
   cat > conftest.$ac_ext <<EOF
-#line 3611 "configure"
+#line 3615 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 wcstoull(L"10", NULL, 10);
 ; return 0; }
 EOF
-if { (eval echo configure:3618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3626,7 +3630,7 @@ rm -f conftest*
   echo "$ac_t""$ac_c99_wchar" 1>&6
 
   echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6
-echo "configure:3630: checking for enabled ISO C99 support" >&5
+echo "configure:3634: checking for enabled ISO C99 support" >&5
   if test x"$ac_c99_math" = x"no" ||
      test x"$ac_c99_stdio" = x"no" ||
      test x"$ac_c99_stdlib" = x"no" ||
@@ -3673,7 +3677,7 @@ fi
 
   # Option parsed, now set things appropriately
   echo $ac_n "checking for enabled long long support""... $ac_c" 1>&6
-echo "configure:3677: checking for enabled long long support" >&5
+echo "configure:3681: checking for enabled long long support" >&5
   if test x"$enable_long_long" = xyes; then
     cat >> confdefs.h <<\EOF
 #define _GLIBCPP_USE_LONG_LONG 1
@@ -3683,7 +3687,7 @@ EOF
   echo "$ac_t""$enable_long_long" 1>&6
 
 echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6
-echo "configure:3687: checking for c header strategy to use" >&5
+echo "configure:3691: checking for c header strategy to use" >&5
 # Check whether --enable-cheaders or --disable-cheaders was given.
 if test "${enable_cheaders+set}" = set; then
   enableval="$enable_cheaders"
@@ -3740,7 +3744,7 @@ fi
 
 
   echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
-echo "configure:3744: checking for thread model used by GCC" >&5
+echo "configure:3748: checking for thread model used by GCC" >&5
   target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
   echo "$ac_t""$target_thread_file" 1>&6
 
@@ -3793,7 +3797,7 @@ EXTRA_CXX_FLAGS="$enable_cxx_flags"
 
 
   echo $ac_n "checking for exception model to use""... $ac_c" 1>&6
-echo "configure:3797: checking for exception model to use" >&5
+echo "configure:3801: checking for exception model to use" >&5
   
   ac_ext=C
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -3808,7 +3812,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
   :
 else
                        cat > conftest.$ac_ext << EOF
-#line 3812 "configure"
+#line 3816 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
@@ -3819,7 +3823,7 @@ void foo()
 EOF
    old_CXXFLAGS="$CXXFLAGS"  
    CXXFLAGS=-S
-   if { (eval echo configure:3823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   if { (eval echo configure:3827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
      if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
        enable_sjlj_exceptions=yes
      elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
@@ -3888,17 +3892,17 @@ if test -n "$with_cross_host" || test x"$build" != x"$host"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3892: checking for $ac_hdr" >&5
+echo "configure:3896: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3897 "configure"
+#line 3901 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3902: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3906: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3954,12 +3958,12 @@ done
     # used sections, first .eh_frame and now some of the glibc sections for
     # iconv). Bzzzzt. Thanks for playing, maybe next time.
     echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:3958: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:3962: checking for ld that supports -Wl,--gc-sections" >&5
     if test "$cross_compiling" = yes; then
   ac_sectionLDflags=yes
 else
   cat > conftest.$ac_ext <<EOF
-#line 3963 "configure"
+#line 3967 "configure"
 #include "confdefs.h"
 
      int main(void) 
@@ -3970,7 +3974,7 @@ else
      }
     
 EOF
-if { (eval echo configure:3974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_sectionLDflags=yes
 else
@@ -4257,7 +4261,7 @@ EOF
        fi
        
     echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:4261: checking for main in -lm" >&5
+echo "configure:4265: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4265,14 +4269,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4269 "configure"
+#line 4273 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:4276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4302,12 +4306,12 @@ fi
   for ac_func in nan copysignf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4306: checking for $ac_func" >&5
+echo "configure:4310: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4311 "configure"
+#line 4315 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4330,7 +4334,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4363,12 +4367,12 @@ done
     for ac_func in signbitl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4367: checking for $ac_func" >&5
+echo "configure:4371: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4372 "configure"
+#line 4376 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4391,7 +4395,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4424,16 +4428,16 @@ done
        
 
       echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:4428: checking for mbstate_t" >&5
+echo "configure:4432: checking for mbstate_t" >&5
   cat > conftest.$ac_ext <<EOF
-#line 4430 "configure"
+#line 4434 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 mbstate_t teststate;
 ; return 0; }
 EOF
-if { (eval echo configure:4437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_mbstate_t=yes
 else
@@ -4455,17 +4459,17 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4459: checking for $ac_hdr" >&5
+echo "configure:4463: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4464 "configure"
+#line 4468 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4473: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4494,17 +4498,17 @@ done
 
   ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for wctype.h""... $ac_c" 1>&6
-echo "configure:4498: checking for wctype.h" >&5
+echo "configure:4502: checking for wctype.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4503 "configure"
+#line 4507 "configure"
 #include "confdefs.h"
 #include <wctype.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4508: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4512: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4532,16 +4536,16 @@ fi
      test x"$enable_c_mbchar" != xno; then
       
             echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:4536: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:4540: checking for WCHAR_MIN and WCHAR_MAX" >&5
     cat > conftest.$ac_ext <<EOF
-#line 4538 "configure"
+#line 4542 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 int i = WCHAR_MIN; int j = WCHAR_MAX;
 ; return 0; }
 EOF
-if { (eval echo configure:4545: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4549: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   has_wchar_minmax=yes
 else
@@ -4554,9 +4558,9 @@ rm -f conftest*
     echo "$ac_t""$has_wchar_minmax" 1>&6
     
             echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:4558: checking for WEOF" >&5
+echo "configure:4562: checking for WEOF" >&5
     cat > conftest.$ac_ext <<EOF
-#line 4560 "configure"
+#line 4564 "configure"
 #include "confdefs.h"
 
       #include <wchar.h>
@@ -4565,7 +4569,7 @@ int main() {
 wint_t i = WEOF;
 ; return 0; }
 EOF
-if { (eval echo configure:4569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4573: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   has_weof=yes
 else
@@ -4581,12 +4585,12 @@ rm -f conftest*
     for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4585: checking for $ac_func" >&5
+echo "configure:4589: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4590 "configure"
+#line 4594 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4609,7 +4613,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4644,12 +4648,12 @@ done
     wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4648: checking for $ac_func" >&5
+echo "configure:4652: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4653 "configure"
+#line 4657 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4672,7 +4676,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4700,7 +4704,7 @@ done
 
 
     echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:4704: checking for ISO C99 wchar_t support" >&5
+echo "configure:4708: checking for ISO C99 wchar_t support" >&5
     if test x"$has_weof" = xyes &&
        test x"$has_wchar_minmax" = xyes &&
        test x"$ac_wfuncs" = xyes; then
@@ -4712,17 +4716,17 @@ echo "configure:4704: checking for ISO C99 wchar_t support" >&5
   
             ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:4716: checking for iconv.h" >&5
+echo "configure:4720: checking for iconv.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4721 "configure"
+#line 4725 "configure"
 #include "confdefs.h"
 #include <iconv.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4730: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4746,17 +4750,17 @@ fi
 
     ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:4750: checking for langinfo.h" >&5
+echo "configure:4754: checking for langinfo.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4755 "configure"
+#line 4759 "configure"
 #include "confdefs.h"
 #include <langinfo.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4780,7 +4784,7 @@ fi
 
 
         echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:4784: checking for iconv in -liconv" >&5
+echo "configure:4788: checking for iconv in -liconv" >&5
 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4788,7 +4792,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-liconv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4792 "configure"
+#line 4796 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4799,7 +4803,7 @@ int main() {
 iconv()
 ; return 0; }
 EOF
-if { (eval echo configure:4803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4825,12 +4829,12 @@ fi
     for ac_func in iconv_open iconv_close iconv nl_langinfo
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4829: checking for $ac_func" >&5
+echo "configure:4833: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4834 "configure"
+#line 4838 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4853,7 +4857,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4883,7 +4887,7 @@ done
     LIBS="$ac_save_LIBS"
 
     echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:4887: checking for XPG2 wchar_t support" >&5
+echo "configure:4891: checking for XPG2 wchar_t support" >&5
     if test x"$ac_has_iconv_h" = xyes &&
        test x"$ac_has_langinfo_h" = xyes &&
        test x"$ac_XPG2funcs" = xyes; then
@@ -4894,7 +4898,7 @@ echo "configure:4887: checking for XPG2 wchar_t support" >&5
     echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
   
             echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:4898: checking for enabled wchar_t specializations" >&5
+echo "configure:4902: checking for enabled wchar_t specializations" >&5
     if test x"$ac_isoC99_wchar_t" = xyes &&
        test x"$ac_XPG2_wchar_t" = xyes; then
       cat >> confdefs.h <<\EOF
@@ -5060,17 +5064,17 @@ else
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5064: checking for $ac_hdr" >&5
+echo "configure:5068: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5069 "configure"
+#line 5073 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5074: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5121,10 +5125,10 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
   # Check for -ffunction-sections -fdata-sections
   echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6
-echo "configure:5125: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
+echo "configure:5129: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
   CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
   cat > conftest.$ac_ext <<EOF
-#line 5128 "configure"
+#line 5132 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -5132,7 +5136,7 @@ int foo;
   
 ; return 0; }
 EOF
-if { (eval echo configure:5136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_fdsections=yes
 else
@@ -5190,12 +5194,12 @@ cross_compiling=$ac_cv_prog_cc_cross
     # used sections, first .eh_frame and now some of the glibc sections for
     # iconv). Bzzzzt. Thanks for playing, maybe next time.
     echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-echo "configure:5194: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:5198: checking for ld that supports -Wl,--gc-sections" >&5
     if test "$cross_compiling" = yes; then
   ac_sectionLDflags=yes
 else
   cat > conftest.$ac_ext <<EOF
-#line 5199 "configure"
+#line 5203 "configure"
 #include "confdefs.h"
 
      int main(void) 
@@ -5206,7 +5210,7 @@ else
      }
     
 EOF
-if { (eval echo configure:5210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_sectionLDflags=yes
 else
@@ -5242,7 +5246,7 @@ fi
   
       
   echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6
-echo "configure:5246: checking for __builtin_abs declaration" >&5
+echo "configure:5250: checking for __builtin_abs declaration" >&5
   if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5257,14 +5261,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5261 "configure"
+#line 5265 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_abs(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_abs_use=yes
 else
@@ -5288,21 +5292,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6
   if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then
     echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6
-echo "configure:5292: checking for __builtin_abs linkage" >&5
+echo "configure:5296: checking for __builtin_abs linkage" >&5
     if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5299 "configure"
+#line 5303 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_abs(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_abs_link=yes
 else
@@ -5328,7 +5332,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6
-echo "configure:5332: checking for __builtin_fabsf declaration" >&5
+echo "configure:5336: checking for __builtin_fabsf declaration" >&5
   if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5343,14 +5347,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5347 "configure"
+#line 5351 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fabsf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5354: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fabsf_use=yes
 else
@@ -5374,21 +5378,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6
   if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then
     echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6
-echo "configure:5378: checking for __builtin_fabsf linkage" >&5
+echo "configure:5382: checking for __builtin_fabsf linkage" >&5
     if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5385 "configure"
+#line 5389 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fabsf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fabsf_link=yes
 else
@@ -5414,7 +5418,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6
-echo "configure:5418: checking for __builtin_fabs declaration" >&5
+echo "configure:5422: checking for __builtin_fabs declaration" >&5
   if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5429,14 +5433,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5433 "configure"
+#line 5437 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fabs(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fabs_use=yes
 else
@@ -5460,21 +5464,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6
   if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then
     echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6
-echo "configure:5464: checking for __builtin_fabs linkage" >&5
+echo "configure:5468: checking for __builtin_fabs linkage" >&5
     if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5471 "configure"
+#line 5475 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fabs(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fabs_link=yes
 else
@@ -5500,7 +5504,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6
-echo "configure:5504: checking for __builtin_fabsl declaration" >&5
+echo "configure:5508: checking for __builtin_fabsl declaration" >&5
   if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5515,14 +5519,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5519 "configure"
+#line 5523 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fabsl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5526: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fabsl_use=yes
 else
@@ -5546,21 +5550,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6
   if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then
     echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6
-echo "configure:5550: checking for __builtin_fabsl linkage" >&5
+echo "configure:5554: checking for __builtin_fabsl linkage" >&5
     if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5557 "configure"
+#line 5561 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fabsl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fabsl_link=yes
 else
@@ -5586,7 +5590,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6
-echo "configure:5590: checking for __builtin_labs declaration" >&5
+echo "configure:5594: checking for __builtin_labs declaration" >&5
   if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5601,14 +5605,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5605 "configure"
+#line 5609 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_labs(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_labs_use=yes
 else
@@ -5632,21 +5636,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6
   if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then
     echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6
-echo "configure:5636: checking for __builtin_labs linkage" >&5
+echo "configure:5640: checking for __builtin_labs linkage" >&5
     if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5643 "configure"
+#line 5647 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_labs(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_labs_link=yes
 else
@@ -5673,7 +5677,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6
-echo "configure:5677: checking for __builtin_sqrtf declaration" >&5
+echo "configure:5681: checking for __builtin_sqrtf declaration" >&5
   if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5688,14 +5692,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5692 "configure"
+#line 5696 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sqrtf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5699: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sqrtf_use=yes
 else
@@ -5719,21 +5723,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6
   if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then
     echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6
-echo "configure:5723: checking for __builtin_sqrtf linkage" >&5
+echo "configure:5727: checking for __builtin_sqrtf linkage" >&5
     if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5730 "configure"
+#line 5734 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sqrtf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sqrtf_link=yes
 else
@@ -5759,7 +5763,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_fsqrt declaration""... $ac_c" 1>&6
-echo "configure:5763: checking for __builtin_fsqrt declaration" >&5
+echo "configure:5767: checking for __builtin_fsqrt declaration" >&5
   if test x${glibcpp_cv_func___builtin_fsqrt_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5774,14 +5778,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5778 "configure"
+#line 5782 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fsqrt(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5789: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fsqrt_use=yes
 else
@@ -5805,21 +5809,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_fsqrt_use" 1>&6
   if test x$glibcpp_cv_func___builtin_fsqrt_use = x"yes"; then
     echo $ac_n "checking for __builtin_fsqrt linkage""... $ac_c" 1>&6
-echo "configure:5809: checking for __builtin_fsqrt linkage" >&5
+echo "configure:5813: checking for __builtin_fsqrt linkage" >&5
     if test x${glibcpp_cv_func___builtin_fsqrt_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5816 "configure"
+#line 5820 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_fsqrt(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_fsqrt_link=yes
 else
@@ -5845,7 +5849,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6
-echo "configure:5849: checking for __builtin_sqrtl declaration" >&5
+echo "configure:5853: checking for __builtin_sqrtl declaration" >&5
   if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5860,14 +5864,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5864 "configure"
+#line 5868 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sqrtl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sqrtl_use=yes
 else
@@ -5891,21 +5895,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6
   if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then
     echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6
-echo "configure:5895: checking for __builtin_sqrtl linkage" >&5
+echo "configure:5899: checking for __builtin_sqrtl linkage" >&5
     if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5902 "configure"
+#line 5906 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sqrtl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sqrtl_link=yes
 else
@@ -5932,7 +5936,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6
-echo "configure:5936: checking for __builtin_sinf declaration" >&5
+echo "configure:5940: checking for __builtin_sinf declaration" >&5
   if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5947,14 +5951,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 5951 "configure"
+#line 5955 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sinf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5958: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5962: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sinf_use=yes
 else
@@ -5978,21 +5982,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6
   if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then
     echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6
-echo "configure:5982: checking for __builtin_sinf linkage" >&5
+echo "configure:5986: checking for __builtin_sinf linkage" >&5
     if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 5989 "configure"
+#line 5993 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sinf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:5996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sinf_link=yes
 else
@@ -6018,7 +6022,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6
-echo "configure:6022: checking for __builtin_sin declaration" >&5
+echo "configure:6026: checking for __builtin_sin declaration" >&5
   if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6033,14 +6037,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6037 "configure"
+#line 6041 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sin(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sin_use=yes
 else
@@ -6064,21 +6068,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6
   if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then
     echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6
-echo "configure:6068: checking for __builtin_sin linkage" >&5
+echo "configure:6072: checking for __builtin_sin linkage" >&5
     if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 6075 "configure"
+#line 6079 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sin(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sin_link=yes
 else
@@ -6104,7 +6108,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6
-echo "configure:6108: checking for __builtin_sinl declaration" >&5
+echo "configure:6112: checking for __builtin_sinl declaration" >&5
   if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6119,14 +6123,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6123 "configure"
+#line 6127 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sinl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6134: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sinl_use=yes
 else
@@ -6150,21 +6154,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6
   if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then
     echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6
-echo "configure:6154: checking for __builtin_sinl linkage" >&5
+echo "configure:6158: checking for __builtin_sinl linkage" >&5
     if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 6161 "configure"
+#line 6165 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_sinl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_sinl_link=yes
 else
@@ -6191,7 +6195,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6
-echo "configure:6195: checking for __builtin_cosf declaration" >&5
+echo "configure:6199: checking for __builtin_cosf declaration" >&5
   if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6206,14 +6210,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6210 "configure"
+#line 6214 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_cosf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6217: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_cosf_use=yes
 else
@@ -6237,21 +6241,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6
   if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then
     echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6
-echo "configure:6241: checking for __builtin_cosf linkage" >&5
+echo "configure:6245: checking for __builtin_cosf linkage" >&5
     if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 6248 "configure"
+#line 6252 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_cosf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_cosf_link=yes
 else
@@ -6277,7 +6281,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6
-echo "configure:6281: checking for __builtin_cos declaration" >&5
+echo "configure:6285: checking for __builtin_cos declaration" >&5
   if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6292,14 +6296,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6296 "configure"
+#line 6300 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_cos(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6307: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_cos_use=yes
 else
@@ -6323,21 +6327,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6
   if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then
     echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6
-echo "configure:6327: checking for __builtin_cos linkage" >&5
+echo "configure:6331: checking for __builtin_cos linkage" >&5
     if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 6334 "configure"
+#line 6338 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_cos(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_cos_link=yes
 else
@@ -6363,7 +6367,7 @@ EOF
 
   
   echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6
-echo "configure:6367: checking for __builtin_cosl declaration" >&5
+echo "configure:6371: checking for __builtin_cosl declaration" >&5
   if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6378,14 +6382,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6382 "configure"
+#line 6386 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_cosl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6389: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_cosl_use=yes
 else
@@ -6409,21 +6413,21 @@ fi
   echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6
   if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then
     echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6
-echo "configure:6413: checking for __builtin_cosl linkage" >&5
+echo "configure:6417: checking for __builtin_cosl linkage" >&5
     if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then
       if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 6420 "configure"
+#line 6424 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  __builtin_cosl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcpp_cv_func___builtin_cosl_link=yes
 else
@@ -6514,7 +6518,7 @@ EOF
   CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
 
     echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:6518: checking for sin in -lm" >&5
+echo "configure:6522: checking for sin in -lm" >&5
 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6522,7 +6526,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6526 "configure"
+#line 6530 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6533,7 +6537,7 @@ int main() {
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:6537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6559,7 +6563,7 @@ fi
     
   
   echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6
-echo "configure:6563: checking for isinf declaration" >&5
+echo "configure:6567: checking for isinf declaration" >&5
   if test x${glibcpp_cv_func_isinf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6574,7 +6578,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6578 "configure"
+#line 6582 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -6585,7 +6589,7 @@ int main() {
  isinf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_isinf_use=yes
 else
@@ -6612,12 +6616,12 @@ fi
     for ac_func in isinf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6616: checking for $ac_func" >&5
+echo "configure:6620: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6621 "configure"
+#line 6625 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6640,7 +6644,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6667,7 +6671,7 @@ done
   else
     
   echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6
-echo "configure:6671: checking for _isinf declaration" >&5
+echo "configure:6675: checking for _isinf declaration" >&5
   if test x${glibcpp_cv_func__isinf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6682,7 +6686,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6686 "configure"
+#line 6690 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -6693,7 +6697,7 @@ int main() {
  _isinf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__isinf_use=yes
 else
@@ -6720,12 +6724,12 @@ fi
       for ac_func in _isinf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6724: checking for $ac_func" >&5
+echo "configure:6728: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6729 "configure"
+#line 6733 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6748,7 +6752,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6778,7 +6782,7 @@ done
   
   
   echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6
-echo "configure:6782: checking for isnan declaration" >&5
+echo "configure:6786: checking for isnan declaration" >&5
   if test x${glibcpp_cv_func_isnan_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6793,7 +6797,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6797 "configure"
+#line 6801 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -6804,7 +6808,7 @@ int main() {
  isnan(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_isnan_use=yes
 else
@@ -6831,12 +6835,12 @@ fi
     for ac_func in isnan
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6835: checking for $ac_func" >&5
+echo "configure:6839: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6840 "configure"
+#line 6844 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6859,7 +6863,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6886,7 +6890,7 @@ done
   else
     
   echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6
-echo "configure:6890: checking for _isnan declaration" >&5
+echo "configure:6894: checking for _isnan declaration" >&5
   if test x${glibcpp_cv_func__isnan_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6901,7 +6905,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 6905 "configure"
+#line 6909 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -6912,7 +6916,7 @@ int main() {
  _isnan(0);
 ; return 0; }
 EOF
-if { (eval echo configure:6916: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__isnan_use=yes
 else
@@ -6939,12 +6943,12 @@ fi
       for ac_func in _isnan
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6943: checking for $ac_func" >&5
+echo "configure:6947: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6948 "configure"
+#line 6952 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6967,7 +6971,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6997,7 +7001,7 @@ done
   
   
   echo $ac_n "checking for finite declaration""... $ac_c" 1>&6
-echo "configure:7001: checking for finite declaration" >&5
+echo "configure:7005: checking for finite declaration" >&5
   if test x${glibcpp_cv_func_finite_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7012,7 +7016,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7016 "configure"
+#line 7020 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -7023,7 +7027,7 @@ int main() {
  finite(0);
 ; return 0; }
 EOF
-if { (eval echo configure:7027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7031: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_finite_use=yes
 else
@@ -7050,12 +7054,12 @@ fi
     for ac_func in finite
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7054: checking for $ac_func" >&5
+echo "configure:7058: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7059 "configure"
+#line 7063 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7078,7 +7082,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7105,7 +7109,7 @@ done
   else
     
   echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6
-echo "configure:7109: checking for _finite declaration" >&5
+echo "configure:7113: checking for _finite declaration" >&5
   if test x${glibcpp_cv_func__finite_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7120,7 +7124,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7124 "configure"
+#line 7128 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -7131,7 +7135,7 @@ int main() {
  _finite(0);
 ; return 0; }
 EOF
-if { (eval echo configure:7135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__finite_use=yes
 else
@@ -7158,12 +7162,12 @@ fi
       for ac_func in _finite
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7162: checking for $ac_func" >&5
+echo "configure:7166: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7167 "configure"
+#line 7171 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7186,7 +7190,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7216,7 +7220,7 @@ done
   
   
   echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6
-echo "configure:7220: checking for copysign declaration" >&5
+echo "configure:7224: checking for copysign declaration" >&5
   if test x${glibcpp_cv_func_copysign_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7231,14 +7235,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7235 "configure"
+#line 7239 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  copysign(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:7242: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7246: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_copysign_use=yes
 else
@@ -7265,12 +7269,12 @@ fi
     for ac_func in copysign
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7269: checking for $ac_func" >&5
+echo "configure:7273: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7274 "configure"
+#line 7278 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7293,7 +7297,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7320,7 +7324,7 @@ done
   else
     
   echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6
-echo "configure:7324: checking for _copysign declaration" >&5
+echo "configure:7328: checking for _copysign declaration" >&5
   if test x${glibcpp_cv_func__copysign_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7335,14 +7339,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7339 "configure"
+#line 7343 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _copysign(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:7346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7350: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__copysign_use=yes
 else
@@ -7369,12 +7373,12 @@ fi
       for ac_func in _copysign
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7373: checking for $ac_func" >&5
+echo "configure:7377: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7378 "configure"
+#line 7382 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7397,7 +7401,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7427,7 +7431,7 @@ done
   
   
   echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6
-echo "configure:7431: checking for sincos declaration" >&5
+echo "configure:7435: checking for sincos declaration" >&5
   if test x${glibcpp_cv_func_sincos_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7442,14 +7446,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7446 "configure"
+#line 7450 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  sincos(0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:7453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7457: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_sincos_use=yes
 else
@@ -7476,12 +7480,12 @@ fi
     for ac_func in sincos
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7480: checking for $ac_func" >&5
+echo "configure:7484: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7485 "configure"
+#line 7489 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7504,7 +7508,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7531,7 +7535,7 @@ done
   else
     
   echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6
-echo "configure:7535: checking for _sincos declaration" >&5
+echo "configure:7539: checking for _sincos declaration" >&5
   if test x${glibcpp_cv_func__sincos_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7546,14 +7550,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7550 "configure"
+#line 7554 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _sincos(0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:7557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__sincos_use=yes
 else
@@ -7580,12 +7584,12 @@ fi
       for ac_func in _sincos
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7584: checking for $ac_func" >&5
+echo "configure:7588: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7589 "configure"
+#line 7593 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7608,7 +7612,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7638,7 +7642,7 @@ done
   
   
   echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6
-echo "configure:7642: checking for fpclass declaration" >&5
+echo "configure:7646: checking for fpclass declaration" >&5
   if test x${glibcpp_cv_func_fpclass_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7653,7 +7657,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7657 "configure"
+#line 7661 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -7664,7 +7668,7 @@ int main() {
  fpclass(0);
 ; return 0; }
 EOF
-if { (eval echo configure:7668: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_fpclass_use=yes
 else
@@ -7691,12 +7695,12 @@ fi
     for ac_func in fpclass
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7695: checking for $ac_func" >&5
+echo "configure:7699: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7700 "configure"
+#line 7704 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7719,7 +7723,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7746,7 +7750,7 @@ done
   else
     
   echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6
-echo "configure:7750: checking for _fpclass declaration" >&5
+echo "configure:7754: checking for _fpclass declaration" >&5
   if test x${glibcpp_cv_func__fpclass_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7761,7 +7765,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7765 "configure"
+#line 7769 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -7772,7 +7776,7 @@ int main() {
  _fpclass(0);
 ; return 0; }
 EOF
-if { (eval echo configure:7776: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__fpclass_use=yes
 else
@@ -7799,12 +7803,12 @@ fi
       for ac_func in _fpclass
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7803: checking for $ac_func" >&5
+echo "configure:7807: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7808 "configure"
+#line 7812 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7827,7 +7831,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7857,7 +7861,7 @@ done
   
   
   echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6
-echo "configure:7861: checking for qfpclass declaration" >&5
+echo "configure:7865: checking for qfpclass declaration" >&5
   if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7872,7 +7876,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7876 "configure"
+#line 7880 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -7883,7 +7887,7 @@ int main() {
  qfpclass(0);
 ; return 0; }
 EOF
-if { (eval echo configure:7887: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7891: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_qfpclass_use=yes
 else
@@ -7910,12 +7914,12 @@ fi
     for ac_func in qfpclass
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7914: checking for $ac_func" >&5
+echo "configure:7918: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7919 "configure"
+#line 7923 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7938,7 +7942,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7965,7 +7969,7 @@ done
   else
     
   echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6
-echo "configure:7969: checking for _qfpclass declaration" >&5
+echo "configure:7973: checking for _qfpclass declaration" >&5
   if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7980,7 +7984,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 7984 "configure"
+#line 7988 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -7991,7 +7995,7 @@ int main() {
  _qfpclass(0);
 ; return 0; }
 EOF
-if { (eval echo configure:7995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__qfpclass_use=yes
 else
@@ -8018,12 +8022,12 @@ fi
       for ac_func in _qfpclass
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8022: checking for $ac_func" >&5
+echo "configure:8026: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8027 "configure"
+#line 8031 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8046,7 +8050,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8076,7 +8080,7 @@ done
   
   
   echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6
-echo "configure:8080: checking for hypot declaration" >&5
+echo "configure:8084: checking for hypot declaration" >&5
   if test x${glibcpp_cv_func_hypot_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8091,14 +8095,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 8095 "configure"
+#line 8099 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  hypot(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:8102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_hypot_use=yes
 else
@@ -8125,12 +8129,12 @@ fi
     for ac_func in hypot
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8129: checking for $ac_func" >&5
+echo "configure:8133: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8134 "configure"
+#line 8138 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8153,7 +8157,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8180,7 +8184,7 @@ done
   else
     
   echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6
-echo "configure:8184: checking for _hypot declaration" >&5
+echo "configure:8188: checking for _hypot declaration" >&5
   if test x${glibcpp_cv_func__hypot_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8195,14 +8199,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 8199 "configure"
+#line 8203 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _hypot(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:8206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8210: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__hypot_use=yes
 else
@@ -8229,12 +8233,12 @@ fi
       for ac_func in _hypot
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8233: checking for $ac_func" >&5
+echo "configure:8237: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8238 "configure"
+#line 8242 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8257,7 +8261,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8287,7 +8291,7 @@ done
 
     
   echo $ac_n "checking for float trig functions""... $ac_c" 1>&6
-echo "configure:8291: checking for float trig functions" >&5
+echo "configure:8295: checking for float trig functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8301,7 +8305,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 8305 "configure"
+#line 8309 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
@@ -8310,7 +8314,7 @@ int main() {
                                           coshf sinhf tanhf; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:8314: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_float_trig_use=yes
 else
@@ -8336,12 +8340,12 @@ fi
                                           coshf sinhf tanhf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8340: checking for $ac_func" >&5
+echo "configure:8344: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8345 "configure"
+#line 8349 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8364,7 +8368,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8392,7 +8396,7 @@ done
 
   
   echo $ac_n "checking for float round functions""... $ac_c" 1>&6
-echo "configure:8396: checking for float round functions" >&5
+echo "configure:8400: checking for float round functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8406,14 +8410,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 8410 "configure"
+#line 8414 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  `for x in ceilf floorf; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:8417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_float_round_use=yes
 else
@@ -8437,12 +8441,12 @@ fi
     for ac_func in ceilf floorf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8441: checking for $ac_func" >&5
+echo "configure:8445: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8446 "configure"
+#line 8450 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8465,7 +8469,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8494,7 +8498,7 @@ done
   
   
   echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6
-echo "configure:8498: checking for isnanf declaration" >&5
+echo "configure:8502: checking for isnanf declaration" >&5
   if test x${glibcpp_cv_func_isnanf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8509,7 +8513,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 8513 "configure"
+#line 8517 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -8520,7 +8524,7 @@ int main() {
  isnanf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:8524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8528: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_isnanf_use=yes
 else
@@ -8547,12 +8551,12 @@ fi
     for ac_func in isnanf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8551: checking for $ac_func" >&5
+echo "configure:8555: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8556 "configure"
+#line 8560 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8575,7 +8579,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8602,7 +8606,7 @@ done
   else
     
   echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6
-echo "configure:8606: checking for _isnanf declaration" >&5
+echo "configure:8610: checking for _isnanf declaration" >&5
   if test x${glibcpp_cv_func__isnanf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8617,7 +8621,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 8621 "configure"
+#line 8625 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -8628,7 +8632,7 @@ int main() {
  _isnanf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:8632: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__isnanf_use=yes
 else
@@ -8655,12 +8659,12 @@ fi
       for ac_func in _isnanf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8659: checking for $ac_func" >&5
+echo "configure:8663: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8664 "configure"
+#line 8668 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8683,7 +8687,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8713,7 +8717,7 @@ done
   
   
   echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6
-echo "configure:8717: checking for isinff declaration" >&5
+echo "configure:8721: checking for isinff declaration" >&5
   if test x${glibcpp_cv_func_isinff_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8728,7 +8732,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 8732 "configure"
+#line 8736 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -8739,7 +8743,7 @@ int main() {
  isinff(0);
 ; return 0; }
 EOF
-if { (eval echo configure:8743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_isinff_use=yes
 else
@@ -8766,12 +8770,12 @@ fi
     for ac_func in isinff
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8770: checking for $ac_func" >&5
+echo "configure:8774: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8775 "configure"
+#line 8779 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8794,7 +8798,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8821,7 +8825,7 @@ done
   else
     
   echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6
-echo "configure:8825: checking for _isinff declaration" >&5
+echo "configure:8829: checking for _isinff declaration" >&5
   if test x${glibcpp_cv_func__isinff_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8836,7 +8840,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 8840 "configure"
+#line 8844 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -8847,7 +8851,7 @@ int main() {
  _isinff(0);
 ; return 0; }
 EOF
-if { (eval echo configure:8851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__isinff_use=yes
 else
@@ -8874,12 +8878,12 @@ fi
       for ac_func in _isinff
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8878: checking for $ac_func" >&5
+echo "configure:8882: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8883 "configure"
+#line 8887 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8902,7 +8906,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8932,7 +8936,7 @@ done
   
   
   echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6
-echo "configure:8936: checking for atan2f declaration" >&5
+echo "configure:8940: checking for atan2f declaration" >&5
   if test x${glibcpp_cv_func_atan2f_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8947,14 +8951,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 8951 "configure"
+#line 8955 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  atan2f(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:8958: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8962: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_atan2f_use=yes
 else
@@ -8981,12 +8985,12 @@ fi
     for ac_func in atan2f
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8985: checking for $ac_func" >&5
+echo "configure:8989: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8990 "configure"
+#line 8994 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9009,7 +9013,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9036,7 +9040,7 @@ done
   else
     
   echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6
-echo "configure:9040: checking for _atan2f declaration" >&5
+echo "configure:9044: checking for _atan2f declaration" >&5
   if test x${glibcpp_cv_func__atan2f_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9051,14 +9055,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9055 "configure"
+#line 9059 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _atan2f(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9066: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__atan2f_use=yes
 else
@@ -9085,12 +9089,12 @@ fi
       for ac_func in _atan2f
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9089: checking for $ac_func" >&5
+echo "configure:9093: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9094 "configure"
+#line 9098 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9113,7 +9117,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9143,7 +9147,7 @@ done
   
   
   echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6
-echo "configure:9147: checking for fabsf declaration" >&5
+echo "configure:9151: checking for fabsf declaration" >&5
   if test x${glibcpp_cv_func_fabsf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9158,7 +9162,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9162 "configure"
+#line 9166 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -9169,7 +9173,7 @@ int main() {
  fabsf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:9173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_fabsf_use=yes
 else
@@ -9196,12 +9200,12 @@ fi
     for ac_func in fabsf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9200: checking for $ac_func" >&5
+echo "configure:9204: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9205 "configure"
+#line 9209 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9224,7 +9228,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9251,7 +9255,7 @@ done
   else
     
   echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6
-echo "configure:9255: checking for _fabsf declaration" >&5
+echo "configure:9259: checking for _fabsf declaration" >&5
   if test x${glibcpp_cv_func__fabsf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9266,7 +9270,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9270 "configure"
+#line 9274 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -9277,7 +9281,7 @@ int main() {
  _fabsf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:9281: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9285: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__fabsf_use=yes
 else
@@ -9304,12 +9308,12 @@ fi
       for ac_func in _fabsf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9308: checking for $ac_func" >&5
+echo "configure:9312: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9313 "configure"
+#line 9317 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9332,7 +9336,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9362,7 +9366,7 @@ done
   
   
   echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6
-echo "configure:9366: checking for fmodf declaration" >&5
+echo "configure:9370: checking for fmodf declaration" >&5
   if test x${glibcpp_cv_func_fmodf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9377,14 +9381,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9381 "configure"
+#line 9385 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  fmodf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_fmodf_use=yes
 else
@@ -9411,12 +9415,12 @@ fi
     for ac_func in fmodf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9415: checking for $ac_func" >&5
+echo "configure:9419: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9420 "configure"
+#line 9424 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9439,7 +9443,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9466,7 +9470,7 @@ done
   else
     
   echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6
-echo "configure:9470: checking for _fmodf declaration" >&5
+echo "configure:9474: checking for _fmodf declaration" >&5
   if test x${glibcpp_cv_func__fmodf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9481,14 +9485,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9485 "configure"
+#line 9489 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _fmodf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9492: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__fmodf_use=yes
 else
@@ -9515,12 +9519,12 @@ fi
       for ac_func in _fmodf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9519: checking for $ac_func" >&5
+echo "configure:9523: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9524 "configure"
+#line 9528 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9543,7 +9547,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9573,7 +9577,7 @@ done
   
   
   echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6
-echo "configure:9577: checking for frexpf declaration" >&5
+echo "configure:9581: checking for frexpf declaration" >&5
   if test x${glibcpp_cv_func_frexpf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9588,14 +9592,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9592 "configure"
+#line 9596 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  frexpf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_frexpf_use=yes
 else
@@ -9622,12 +9626,12 @@ fi
     for ac_func in frexpf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9626: checking for $ac_func" >&5
+echo "configure:9630: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9631 "configure"
+#line 9635 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9650,7 +9654,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9677,7 +9681,7 @@ done
   else
     
   echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6
-echo "configure:9681: checking for _frexpf declaration" >&5
+echo "configure:9685: checking for _frexpf declaration" >&5
   if test x${glibcpp_cv_func__frexpf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9692,14 +9696,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9696 "configure"
+#line 9700 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _frexpf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9707: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__frexpf_use=yes
 else
@@ -9726,12 +9730,12 @@ fi
       for ac_func in _frexpf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9730: checking for $ac_func" >&5
+echo "configure:9734: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9735 "configure"
+#line 9739 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9754,7 +9758,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9784,7 +9788,7 @@ done
   
   
   echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6
-echo "configure:9788: checking for hypotf declaration" >&5
+echo "configure:9792: checking for hypotf declaration" >&5
   if test x${glibcpp_cv_func_hypotf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9799,14 +9803,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9803 "configure"
+#line 9807 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  hypotf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9814: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_hypotf_use=yes
 else
@@ -9833,12 +9837,12 @@ fi
     for ac_func in hypotf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9837: checking for $ac_func" >&5
+echo "configure:9841: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9842 "configure"
+#line 9846 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9861,7 +9865,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9888,7 +9892,7 @@ done
   else
     
   echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6
-echo "configure:9892: checking for _hypotf declaration" >&5
+echo "configure:9896: checking for _hypotf declaration" >&5
   if test x${glibcpp_cv_func__hypotf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9903,14 +9907,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 9907 "configure"
+#line 9911 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _hypotf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9918: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__hypotf_use=yes
 else
@@ -9937,12 +9941,12 @@ fi
       for ac_func in _hypotf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9941: checking for $ac_func" >&5
+echo "configure:9945: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9946 "configure"
+#line 9950 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9965,7 +9969,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9995,7 +9999,7 @@ done
   
   
   echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6
-echo "configure:9999: checking for ldexpf declaration" >&5
+echo "configure:10003: checking for ldexpf declaration" >&5
   if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10010,14 +10014,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10014 "configure"
+#line 10018 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  ldexpf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:10021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_ldexpf_use=yes
 else
     for ac_func in ldexpf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10048: checking for $ac_func" >&5
+echo "configure:10052: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10053 "configure"
+#line 10057 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10072,7 +10076,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10099,7 +10103,7 @@ done
   else
     
   echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6
-echo "configure:10103: checking for _ldexpf declaration" >&5
+echo "configure:10107: checking for _ldexpf declaration" >&5
   if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10114,14 +10118,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10118 "configure"
+#line 10122 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _ldexpf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:10125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10129: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__ldexpf_use=yes
 else
       for ac_func in _ldexpf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10152: checking for $ac_func" >&5
+echo "configure:10156: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10157 "configure"
+#line 10161 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10176,7 +10180,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10206,7 +10210,7 @@ done
   
   
   echo $ac_n "checking for logf declaration""... $ac_c" 1>&6
-echo "configure:10210: checking for logf declaration" >&5
+echo "configure:10214: checking for logf declaration" >&5
   if test x${glibcpp_cv_func_logf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10221,7 +10225,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10225 "configure"
+#line 10229 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -10232,7 +10236,7 @@ int main() {
  logf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:10236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_logf_use=yes
 else
     for ac_func in logf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10263: checking for $ac_func" >&5
+echo "configure:10267: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10268 "configure"
+#line 10272 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10287,7 +10291,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10314,7 +10318,7 @@ done
   else
     
   echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6
-echo "configure:10318: checking for _logf declaration" >&5
+echo "configure:10322: checking for _logf declaration" >&5
   if test x${glibcpp_cv_func__logf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10329,7 +10333,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10333 "configure"
+#line 10337 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -10340,7 +10344,7 @@ int main() {
  _logf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:10344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__logf_use=yes
 else
       for ac_func in _logf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10371: checking for $ac_func" >&5
+echo "configure:10375: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10376 "configure"
+#line 10380 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10395,7 +10399,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10425,7 +10429,7 @@ done
   
   
   echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6
-echo "configure:10429: checking for log10f declaration" >&5
+echo "configure:10433: checking for log10f declaration" >&5
   if test x${glibcpp_cv_func_log10f_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10440,7 +10444,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10444 "configure"
+#line 10448 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -10451,7 +10455,7 @@ int main() {
  log10f(0);
 ; return 0; }
 EOF
-if { (eval echo configure:10455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_log10f_use=yes
 else
     for ac_func in log10f
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10482: checking for $ac_func" >&5
+echo "configure:10486: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10487 "configure"
+#line 10491 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10506,7 +10510,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10533,7 +10537,7 @@ done
   else
     
   echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6
-echo "configure:10537: checking for _log10f declaration" >&5
+echo "configure:10541: checking for _log10f declaration" >&5
   if test x${glibcpp_cv_func__log10f_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10548,7 +10552,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10552 "configure"
+#line 10556 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -10559,7 +10563,7 @@ int main() {
  _log10f(0);
 ; return 0; }
 EOF
-if { (eval echo configure:10563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__log10f_use=yes
 else
       for ac_func in _log10f
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10590: checking for $ac_func" >&5
+echo "configure:10594: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10595 "configure"
+#line 10599 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10614,7 +10618,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10644,7 +10648,7 @@ done
   
   
   echo $ac_n "checking for modff declaration""... $ac_c" 1>&6
-echo "configure:10648: checking for modff declaration" >&5
+echo "configure:10652: checking for modff declaration" >&5
   if test x${glibcpp_cv_func_modff_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10659,14 +10663,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10663 "configure"
+#line 10667 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  modff(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:10670: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_modff_use=yes
 else
     for ac_func in modff
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10697: checking for $ac_func" >&5
+echo "configure:10701: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10702 "configure"
+#line 10706 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10721,7 +10725,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10748,7 +10752,7 @@ done
   else
     
   echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6
-echo "configure:10752: checking for _modff declaration" >&5
+echo "configure:10756: checking for _modff declaration" >&5
   if test x${glibcpp_cv_func__modff_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10763,14 +10767,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10767 "configure"
+#line 10771 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _modff(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:10774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10778: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__modff_use=yes
 else
       for ac_func in _modff
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10801: checking for $ac_func" >&5
+echo "configure:10805: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10806 "configure"
+#line 10810 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10825,7 +10829,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10855,7 +10859,7 @@ done
   
   
   echo $ac_n "checking for powf declaration""... $ac_c" 1>&6
-echo "configure:10859: checking for powf declaration" >&5
+echo "configure:10863: checking for powf declaration" >&5
   if test x${glibcpp_cv_func_powf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10870,14 +10874,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10874 "configure"
+#line 10878 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  powf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:10881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10885: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_powf_use=yes
 else
     for ac_func in powf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10908: checking for $ac_func" >&5
+echo "configure:10912: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10913 "configure"
+#line 10917 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10932,7 +10936,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10959,7 +10963,7 @@ done
   else
     
   echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6
-echo "configure:10963: checking for _powf declaration" >&5
+echo "configure:10967: checking for _powf declaration" >&5
   if test x${glibcpp_cv_func__powf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10974,14 +10978,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 10978 "configure"
+#line 10982 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _powf(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:10985: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10989: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__powf_use=yes
 else
       for ac_func in _powf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11012: checking for $ac_func" >&5
+echo "configure:11016: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11017 "configure"
+#line 11021 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11036,7 +11040,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11066,7 +11070,7 @@ done
   
   
   echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6
-echo "configure:11070: checking for sqrtf declaration" >&5
+echo "configure:11074: checking for sqrtf declaration" >&5
   if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11081,7 +11085,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 11085 "configure"
+#line 11089 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -11092,7 +11096,7 @@ int main() {
  sqrtf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:11096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_sqrtf_use=yes
 else
     for ac_func in sqrtf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11123: checking for $ac_func" >&5
+echo "configure:11127: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11128 "configure"
+#line 11132 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11147,7 +11151,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11174,7 +11178,7 @@ done
   else
     
   echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6
-echo "configure:11178: checking for _sqrtf declaration" >&5
+echo "configure:11182: checking for _sqrtf declaration" >&5
   if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11189,7 +11193,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 11193 "configure"
+#line 11197 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -11200,7 +11204,7 @@ int main() {
  _sqrtf(0);
 ; return 0; }
 EOF
-if { (eval echo configure:11204: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11208: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__sqrtf_use=yes
 else
       for ac_func in _sqrtf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11231: checking for $ac_func" >&5
+echo "configure:11235: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11236 "configure"
+#line 11240 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11255,7 +11259,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11285,7 +11289,7 @@ done
   
   
   echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6
-echo "configure:11289: checking for sincosf declaration" >&5
+echo "configure:11293: checking for sincosf declaration" >&5
   if test x${glibcpp_cv_func_sincosf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11300,14 +11304,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 11304 "configure"
+#line 11308 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  sincosf(0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:11311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_sincosf_use=yes
 else
     for ac_func in sincosf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11338: checking for $ac_func" >&5
+echo "configure:11342: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11343 "configure"
+#line 11347 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11362,7 +11366,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11389,7 +11393,7 @@ done
   else
     
   echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6
-echo "configure:11393: checking for _sincosf declaration" >&5
+echo "configure:11397: checking for _sincosf declaration" >&5
   if test x${glibcpp_cv_func__sincosf_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11404,14 +11408,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 11408 "configure"
+#line 11412 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _sincosf(0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:11415: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11419: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__sincosf_use=yes
 else
       for ac_func in _sincosf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11442: checking for $ac_func" >&5
+echo "configure:11446: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11447 "configure"
+#line 11451 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11466,7 +11470,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11496,7 +11500,7 @@ done
   
   
   echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6
-echo "configure:11500: checking for finitef declaration" >&5
+echo "configure:11504: checking for finitef declaration" >&5
   if test x${glibcpp_cv_func_finitef_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11511,7 +11515,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 11515 "configure"
+#line 11519 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -11522,7 +11526,7 @@ int main() {
  finitef(0);
 ; return 0; }
 EOF
-if { (eval echo configure:11526: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_finitef_use=yes
 else
     for ac_func in finitef
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11553: checking for $ac_func" >&5
+echo "configure:11557: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11558 "configure"
+#line 11562 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11577,7 +11581,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11604,7 +11608,7 @@ done
   else
     
   echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6
-echo "configure:11608: checking for _finitef declaration" >&5
+echo "configure:11612: checking for _finitef declaration" >&5
   if test x${glibcpp_cv_func__finitef_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11619,7 +11623,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 11623 "configure"
+#line 11627 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -11630,7 +11634,7 @@ int main() {
  _finitef(0);
 ; return 0; }
 EOF
-if { (eval echo configure:11634: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11638: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__finitef_use=yes
 else
       for ac_func in _finitef
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11661: checking for $ac_func" >&5
+echo "configure:11665: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11666 "configure"
+#line 11670 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11685,7 +11689,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11715,7 +11719,7 @@ done
 
     
   echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6
-echo "configure:11719: checking for long double trig functions" >&5
+echo "configure:11723: checking for long double trig functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -11729,7 +11733,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 11733 "configure"
+#line 11737 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
@@ -11738,7 +11742,7 @@ int main() {
                                           coshl sinhl tanhl; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:11742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11746: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_long_double_trig_use=yes
 else
                                           coshl sinhl tanhl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11768: checking for $ac_func" >&5
+echo "configure:11772: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11773 "configure"
+#line 11777 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11792,7 +11796,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11820,7 +11824,7 @@ done
 
   
   echo $ac_n "checking for long double round functions""... $ac_c" 1>&6
-echo "configure:11824: checking for long double round functions" >&5
+echo "configure:11828: checking for long double round functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -11834,14 +11838,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 11838 "configure"
+#line 11842 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  `for x in ceill floorl; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:11845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11849: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_long_double_round_use=yes
 else
     for ac_func in ceill floorl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11869: checking for $ac_func" >&5
+echo "configure:11873: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11874 "configure"
+#line 11878 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11893,7 +11897,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11922,7 +11926,7 @@ done
   
   
   echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6
-echo "configure:11926: checking for isnanl declaration" >&5
+echo "configure:11930: checking for isnanl declaration" >&5
   if test x${glibcpp_cv_func_isnanl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11937,7 +11941,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 11941 "configure"
+#line 11945 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -11948,7 +11952,7 @@ int main() {
  isnanl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:11952: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11956: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_isnanl_use=yes
 else
     for ac_func in isnanl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11979: checking for $ac_func" >&5
+echo "configure:11983: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11984 "configure"
+#line 11988 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12003,7 +12007,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12030,7 +12034,7 @@ done
   else
     
   echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6
-echo "configure:12034: checking for _isnanl declaration" >&5
+echo "configure:12038: checking for _isnanl declaration" >&5
   if test x${glibcpp_cv_func__isnanl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12045,7 +12049,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12049 "configure"
+#line 12053 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -12056,7 +12060,7 @@ int main() {
  _isnanl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:12060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12064: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__isnanl_use=yes
 else
       for ac_func in _isnanl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12087: checking for $ac_func" >&5
+echo "configure:12091: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12092 "configure"
+#line 12096 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12111,7 +12115,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12141,7 +12145,7 @@ done
   
   
   echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6
-echo "configure:12145: checking for isinfl declaration" >&5
+echo "configure:12149: checking for isinfl declaration" >&5
   if test x${glibcpp_cv_func_isinfl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12156,7 +12160,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12160 "configure"
+#line 12164 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -12167,7 +12171,7 @@ int main() {
  isinfl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:12171: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12175: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_isinfl_use=yes
 else
     for ac_func in isinfl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12198: checking for $ac_func" >&5
+echo "configure:12202: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12203 "configure"
+#line 12207 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12222,7 +12226,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12249,7 +12253,7 @@ done
   else
     
   echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6
-echo "configure:12253: checking for _isinfl declaration" >&5
+echo "configure:12257: checking for _isinfl declaration" >&5
   if test x${glibcpp_cv_func__isinfl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12264,7 +12268,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12268 "configure"
+#line 12272 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -12275,7 +12279,7 @@ int main() {
  _isinfl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:12279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__isinfl_use=yes
 else
       for ac_func in _isinfl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12306: checking for $ac_func" >&5
+echo "configure:12310: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12311 "configure"
+#line 12315 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12330,7 +12334,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12360,7 +12364,7 @@ done
   
   
   echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6
-echo "configure:12364: checking for copysignl declaration" >&5
+echo "configure:12368: checking for copysignl declaration" >&5
   if test x${glibcpp_cv_func_copysignl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12375,14 +12379,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12379 "configure"
+#line 12383 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  copysignl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:12386: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_copysignl_use=yes
 else
     for ac_func in copysignl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12413: checking for $ac_func" >&5
+echo "configure:12417: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12418 "configure"
+#line 12422 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12437,7 +12441,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12464,7 +12468,7 @@ done
   else
     
   echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6
-echo "configure:12468: checking for _copysignl declaration" >&5
+echo "configure:12472: checking for _copysignl declaration" >&5
   if test x${glibcpp_cv_func__copysignl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12479,14 +12483,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12483 "configure"
+#line 12487 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _copysignl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:12490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__copysignl_use=yes
 else
       for ac_func in _copysignl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12517: checking for $ac_func" >&5
+echo "configure:12521: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12522 "configure"
+#line 12526 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12541,7 +12545,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12571,7 +12575,7 @@ done
   
   
   echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6
-echo "configure:12575: checking for atan2l declaration" >&5
+echo "configure:12579: checking for atan2l declaration" >&5
   if test x${glibcpp_cv_func_atan2l_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12586,14 +12590,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12590 "configure"
+#line 12594 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  atan2l(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:12597: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_atan2l_use=yes
 else
     for ac_func in atan2l
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12624: checking for $ac_func" >&5
+echo "configure:12628: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12629 "configure"
+#line 12633 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12648,7 +12652,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12675,7 +12679,7 @@ done
   else
     
   echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6
-echo "configure:12679: checking for _atan2l declaration" >&5
+echo "configure:12683: checking for _atan2l declaration" >&5
   if test x${glibcpp_cv_func__atan2l_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12690,14 +12694,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12694 "configure"
+#line 12698 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _atan2l(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:12701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12705: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__atan2l_use=yes
 else
       for ac_func in _atan2l
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12728: checking for $ac_func" >&5
+echo "configure:12732: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12733 "configure"
+#line 12737 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12752,7 +12756,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12782,7 +12786,7 @@ done
   
   
   echo $ac_n "checking for expl declaration""... $ac_c" 1>&6
-echo "configure:12786: checking for expl declaration" >&5
+echo "configure:12790: checking for expl declaration" >&5
   if test x${glibcpp_cv_func_expl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12797,7 +12801,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12801 "configure"
+#line 12805 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -12808,7 +12812,7 @@ int main() {
  expl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:12812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_expl_use=yes
 else
     for ac_func in expl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12839: checking for $ac_func" >&5
+echo "configure:12843: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12844 "configure"
+#line 12848 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12863,7 +12867,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12890,7 +12894,7 @@ done
   else
     
   echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6
-echo "configure:12894: checking for _expl declaration" >&5
+echo "configure:12898: checking for _expl declaration" >&5
   if test x${glibcpp_cv_func__expl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -12905,7 +12909,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 12909 "configure"
+#line 12913 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -12916,7 +12920,7 @@ int main() {
  _expl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:12920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__expl_use=yes
 else
       for ac_func in _expl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12947: checking for $ac_func" >&5
+echo "configure:12951: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12952 "configure"
+#line 12956 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12971,7 +12975,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13001,7 +13005,7 @@ done
   
   
   echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6
-echo "configure:13005: checking for fabsl declaration" >&5
+echo "configure:13009: checking for fabsl declaration" >&5
   if test x${glibcpp_cv_func_fabsl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13016,7 +13020,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13020 "configure"
+#line 13024 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -13027,7 +13031,7 @@ int main() {
  fabsl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:13031: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13035: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_fabsl_use=yes
 else
     for ac_func in fabsl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13058: checking for $ac_func" >&5
+echo "configure:13062: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13063 "configure"
+#line 13067 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13082,7 +13086,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13109,7 +13113,7 @@ done
   else
     
   echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6
-echo "configure:13113: checking for _fabsl declaration" >&5
+echo "configure:13117: checking for _fabsl declaration" >&5
   if test x${glibcpp_cv_func__fabsl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13124,7 +13128,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13128 "configure"
+#line 13132 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -13135,7 +13139,7 @@ int main() {
  _fabsl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:13139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__fabsl_use=yes
 else
       for ac_func in _fabsl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13166: checking for $ac_func" >&5
+echo "configure:13170: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13171 "configure"
+#line 13175 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13190,7 +13194,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13220,7 +13224,7 @@ done
   
   
   echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6
-echo "configure:13224: checking for fmodl declaration" >&5
+echo "configure:13228: checking for fmodl declaration" >&5
   if test x${glibcpp_cv_func_fmodl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13235,14 +13239,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13239 "configure"
+#line 13243 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  fmodl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13246: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13250: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_fmodl_use=yes
 else
     for ac_func in fmodl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13273: checking for $ac_func" >&5
+echo "configure:13277: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13278 "configure"
+#line 13282 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13297,7 +13301,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13324,7 +13328,7 @@ done
   else
     
   echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6
-echo "configure:13328: checking for _fmodl declaration" >&5
+echo "configure:13332: checking for _fmodl declaration" >&5
   if test x${glibcpp_cv_func__fmodl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13339,14 +13343,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13343 "configure"
+#line 13347 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _fmodl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13350: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13354: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__fmodl_use=yes
 else
       for ac_func in _fmodl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13377: checking for $ac_func" >&5
+echo "configure:13381: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13382 "configure"
+#line 13386 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13401,7 +13405,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13431,7 +13435,7 @@ done
   
   
   echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6
-echo "configure:13435: checking for frexpl declaration" >&5
+echo "configure:13439: checking for frexpl declaration" >&5
   if test x${glibcpp_cv_func_frexpl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13446,14 +13450,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13450 "configure"
+#line 13454 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  frexpl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13457: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13461: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_frexpl_use=yes
 else
     for ac_func in frexpl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13484: checking for $ac_func" >&5
+echo "configure:13488: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13489 "configure"
+#line 13493 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13508,7 +13512,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13535,7 +13539,7 @@ done
   else
     
   echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6
-echo "configure:13539: checking for _frexpl declaration" >&5
+echo "configure:13543: checking for _frexpl declaration" >&5
   if test x${glibcpp_cv_func__frexpl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13550,14 +13554,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13554 "configure"
+#line 13558 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _frexpl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__frexpl_use=yes
 else
       for ac_func in _frexpl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13588: checking for $ac_func" >&5
+echo "configure:13592: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13593 "configure"
+#line 13597 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13612,7 +13616,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13642,7 +13646,7 @@ done
   
   
   echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6
-echo "configure:13646: checking for hypotl declaration" >&5
+echo "configure:13650: checking for hypotl declaration" >&5
   if test x${glibcpp_cv_func_hypotl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13657,14 +13661,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13661 "configure"
+#line 13665 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  hypotl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13668: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_hypotl_use=yes
 else
     for ac_func in hypotl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13695: checking for $ac_func" >&5
+echo "configure:13699: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13700 "configure"
+#line 13704 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13719,7 +13723,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13746,7 +13750,7 @@ done
   else
     
   echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6
-echo "configure:13750: checking for _hypotl declaration" >&5
+echo "configure:13754: checking for _hypotl declaration" >&5
   if test x${glibcpp_cv_func__hypotl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13761,14 +13765,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13765 "configure"
+#line 13769 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _hypotl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13776: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__hypotl_use=yes
 else
       for ac_func in _hypotl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13799: checking for $ac_func" >&5
+echo "configure:13803: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13804 "configure"
+#line 13808 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13823,7 +13827,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13853,7 +13857,7 @@ done
   
   
   echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6
-echo "configure:13857: checking for ldexpl declaration" >&5
+echo "configure:13861: checking for ldexpl declaration" >&5
   if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13868,14 +13872,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13872 "configure"
+#line 13876 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  ldexpl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_ldexpl_use=yes
 else
     for ac_func in ldexpl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13906: checking for $ac_func" >&5
+echo "configure:13910: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13911 "configure"
+#line 13915 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13930,7 +13934,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13957,7 +13961,7 @@ done
   else
     
   echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6
-echo "configure:13961: checking for _ldexpl declaration" >&5
+echo "configure:13965: checking for _ldexpl declaration" >&5
   if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13972,14 +13976,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 13976 "configure"
+#line 13980 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _ldexpl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__ldexpl_use=yes
 else
       for ac_func in _ldexpl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14010: checking for $ac_func" >&5
+echo "configure:14014: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14015 "configure"
+#line 14019 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14034,7 +14038,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14064,7 +14068,7 @@ done
   
   
   echo $ac_n "checking for logl declaration""... $ac_c" 1>&6
-echo "configure:14068: checking for logl declaration" >&5
+echo "configure:14072: checking for logl declaration" >&5
   if test x${glibcpp_cv_func_logl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14079,7 +14083,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14083 "configure"
+#line 14087 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -14090,7 +14094,7 @@ int main() {
  logl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:14094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_logl_use=yes
 else
     for ac_func in logl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14121: checking for $ac_func" >&5
+echo "configure:14125: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14126 "configure"
+#line 14130 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14145,7 +14149,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14172,7 +14176,7 @@ done
   else
     
   echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6
-echo "configure:14176: checking for _logl declaration" >&5
+echo "configure:14180: checking for _logl declaration" >&5
   if test x${glibcpp_cv_func__logl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14187,7 +14191,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14191 "configure"
+#line 14195 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -14198,7 +14202,7 @@ int main() {
  _logl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:14202: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__logl_use=yes
 else
       for ac_func in _logl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14229: checking for $ac_func" >&5
+echo "configure:14233: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14234 "configure"
+#line 14238 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14253,7 +14257,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14283,7 +14287,7 @@ done
   
   
   echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6
-echo "configure:14287: checking for log10l declaration" >&5
+echo "configure:14291: checking for log10l declaration" >&5
   if test x${glibcpp_cv_func_log10l_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14298,7 +14302,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14302 "configure"
+#line 14306 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -14309,7 +14313,7 @@ int main() {
  log10l(0);
 ; return 0; }
 EOF
-if { (eval echo configure:14313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14317: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_log10l_use=yes
 else
     for ac_func in log10l
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14340: checking for $ac_func" >&5
+echo "configure:14344: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14345 "configure"
+#line 14349 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14364,7 +14368,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14391,7 +14395,7 @@ done
   else
     
   echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6
-echo "configure:14395: checking for _log10l declaration" >&5
+echo "configure:14399: checking for _log10l declaration" >&5
   if test x${glibcpp_cv_func__log10l_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14406,7 +14410,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14410 "configure"
+#line 14414 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -14417,7 +14421,7 @@ int main() {
  _log10l(0);
 ; return 0; }
 EOF
-if { (eval echo configure:14421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14425: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__log10l_use=yes
 else
       for ac_func in _log10l
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14448: checking for $ac_func" >&5
+echo "configure:14452: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14453 "configure"
+#line 14457 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14472,7 +14476,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14502,7 +14506,7 @@ done
   
   
   echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6
-echo "configure:14506: checking for modfl declaration" >&5
+echo "configure:14510: checking for modfl declaration" >&5
   if test x${glibcpp_cv_func_modfl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14517,14 +14521,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14521 "configure"
+#line 14525 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  modfl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:14528: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_modfl_use=yes
 else
     for ac_func in modfl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14555: checking for $ac_func" >&5
+echo "configure:14559: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14560 "configure"
+#line 14564 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14579,7 +14583,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14606,7 +14610,7 @@ done
   else
     
   echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6
-echo "configure:14610: checking for _modfl declaration" >&5
+echo "configure:14614: checking for _modfl declaration" >&5
   if test x${glibcpp_cv_func__modfl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14621,14 +14625,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14625 "configure"
+#line 14629 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _modfl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:14632: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__modfl_use=yes
 else
       for ac_func in _modfl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14659: checking for $ac_func" >&5
+echo "configure:14663: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14664 "configure"
+#line 14668 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14683,7 +14687,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14713,7 +14717,7 @@ done
   
   
   echo $ac_n "checking for powl declaration""... $ac_c" 1>&6
-echo "configure:14717: checking for powl declaration" >&5
+echo "configure:14721: checking for powl declaration" >&5
   if test x${glibcpp_cv_func_powl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14728,14 +14732,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14732 "configure"
+#line 14736 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  powl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:14739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_powl_use=yes
 else
     for ac_func in powl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14766: checking for $ac_func" >&5
+echo "configure:14770: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14771 "configure"
+#line 14775 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14790,7 +14794,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14817,7 +14821,7 @@ done
   else
     
   echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6
-echo "configure:14821: checking for _powl declaration" >&5
+echo "configure:14825: checking for _powl declaration" >&5
   if test x${glibcpp_cv_func__powl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14832,14 +14836,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14836 "configure"
+#line 14840 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _powl(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:14843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__powl_use=yes
 else
       for ac_func in _powl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14870: checking for $ac_func" >&5
+echo "configure:14874: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14875 "configure"
+#line 14879 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14894,7 +14898,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -14924,7 +14928,7 @@ done
   
   
   echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6
-echo "configure:14928: checking for sqrtl declaration" >&5
+echo "configure:14932: checking for sqrtl declaration" >&5
   if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14939,7 +14943,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 14943 "configure"
+#line 14947 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -14950,7 +14954,7 @@ int main() {
  sqrtl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:14954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14958: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_sqrtl_use=yes
 else
     for ac_func in sqrtl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14981: checking for $ac_func" >&5
+echo "configure:14985: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14986 "configure"
+#line 14990 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15005,7 +15009,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15032,7 +15036,7 @@ done
   else
     
   echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6
-echo "configure:15036: checking for _sqrtl declaration" >&5
+echo "configure:15040: checking for _sqrtl declaration" >&5
   if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -15047,7 +15051,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 15051 "configure"
+#line 15055 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -15058,7 +15062,7 @@ int main() {
  _sqrtl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:15062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15066: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__sqrtl_use=yes
 else
       for ac_func in _sqrtl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15089: checking for $ac_func" >&5
+echo "configure:15093: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15094 "configure"
+#line 15098 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15113,7 +15117,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15143,7 +15147,7 @@ done
   
   
   echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6
-echo "configure:15147: checking for sincosl declaration" >&5
+echo "configure:15151: checking for sincosl declaration" >&5
   if test x${glibcpp_cv_func_sincosl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -15158,14 +15162,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 15162 "configure"
+#line 15166 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  sincosl(0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:15169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_sincosl_use=yes
 else
     for ac_func in sincosl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15196: checking for $ac_func" >&5
+echo "configure:15200: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15201 "configure"
+#line 15205 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15220,7 +15224,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15247,7 +15251,7 @@ done
   else
     
   echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6
-echo "configure:15251: checking for _sincosl declaration" >&5
+echo "configure:15255: checking for _sincosl declaration" >&5
   if test x${glibcpp_cv_func__sincosl_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -15262,14 +15266,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 15266 "configure"
+#line 15270 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  _sincosl(0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:15273: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__sincosl_use=yes
 else
       for ac_func in _sincosl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15300: checking for $ac_func" >&5
+echo "configure:15304: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15305 "configure"
+#line 15309 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15324,7 +15328,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15354,7 +15358,7 @@ done
   
   
   echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6
-echo "configure:15358: checking for finitel declaration" >&5
+echo "configure:15362: checking for finitel declaration" >&5
   if test x${glibcpp_cv_func_finitel_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -15369,7 +15373,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 15373 "configure"
+#line 15377 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -15380,7 +15384,7 @@ int main() {
  finitel(0);
 ; return 0; }
 EOF
-if { (eval echo configure:15384: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_finitel_use=yes
 else
     for ac_func in finitel
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15411: checking for $ac_func" >&5
+echo "configure:15415: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15416 "configure"
+#line 15420 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15435,7 +15439,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15462,7 +15466,7 @@ done
   else
     
   echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6
-echo "configure:15466: checking for _finitel declaration" >&5
+echo "configure:15470: checking for _finitel declaration" >&5
   if test x${glibcpp_cv_func__finitel_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -15477,7 +15481,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 15481 "configure"
+#line 15485 "configure"
 #include "confdefs.h"
 #include <math.h>
                      #ifdef HAVE_IEEEFP_H
@@ -15488,7 +15492,7 @@ int main() {
  _finitel(0);
 ; return 0; }
 EOF
-if { (eval echo configure:15492: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__finitel_use=yes
 else
       for ac_func in _finitel
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15519: checking for $ac_func" >&5
+echo "configure:15523: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15524 "configure"
+#line 15528 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15543,7 +15547,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15574,7 +15578,7 @@ done
         
     
   echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6
-echo "configure:15578: checking for _float trig functions" >&5
+echo "configure:15582: checking for _float trig functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15588,7 +15592,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 15592 "configure"
+#line 15596 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
@@ -15597,7 +15601,7 @@ int main() {
                                           _coshf _sinhf _tanhf; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:15601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__float_trig_use=yes
 else
                                           _coshf _sinhf _tanhf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15627: checking for $ac_func" >&5
+echo "configure:15631: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15632 "configure"
+#line 15636 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15651,7 +15655,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15679,7 +15683,7 @@ done
 
   
   echo $ac_n "checking for _float round functions""... $ac_c" 1>&6
-echo "configure:15683: checking for _float round functions" >&5
+echo "configure:15687: checking for _float round functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15693,14 +15697,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 15697 "configure"
+#line 15701 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  `for x in _ceilf _floorf; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:15704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15708: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__float_round_use=yes
 else
     for ac_func in _ceilf _floorf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15728: checking for $ac_func" >&5
+echo "configure:15732: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15733 "configure"
+#line 15737 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15752,7 +15756,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15781,7 +15785,7 @@ done
 
     
   echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6
-echo "configure:15785: checking for _long double trig functions" >&5
+echo "configure:15789: checking for _long double trig functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15795,7 +15799,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 15799 "configure"
+#line 15803 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
@@ -15804,7 +15808,7 @@ int main() {
                                           _coshl _sinhl _tanhl; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:15808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__long_double_trig_use=yes
 else
                                           _coshl _sinhl _tanhl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15834: checking for $ac_func" >&5
+echo "configure:15838: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15839 "configure"
+#line 15843 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15858,7 +15862,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15886,7 +15890,7 @@ done
 
   
   echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6
-echo "configure:15890: checking for _long double round functions" >&5
+echo "configure:15894: checking for _long double round functions" >&5
   if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15900,14 +15904,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
     cat > conftest.$ac_ext <<EOF
-#line 15904 "configure"
+#line 15908 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
  `for x in _ceill _floorl; do echo "$x (0);"; done` 
 ; return 0; }
 EOF
-if { (eval echo configure:15911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func__long_double_round_use=yes
 else
     for ac_func in _ceill _floorl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15935: checking for $ac_func" >&5
+echo "configure:15939: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15940 "configure"
+#line 15944 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15959,7 +15963,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15991,7 +15995,7 @@ done
 
   
     echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:15995: checking for main in -lm" >&5
+echo "configure:15999: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -15999,14 +16003,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16003 "configure"
+#line 16007 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:16010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   for ac_func in nan copysignf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16040: checking for $ac_func" >&5
+echo "configure:16044: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16045 "configure"
+#line 16049 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16064,7 +16068,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16097,12 +16101,12 @@ done
     for ac_func in signbitl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16101: checking for $ac_func" >&5
+echo "configure:16105: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16106 "configure"
+#line 16110 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16125,7 +16129,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16158,16 +16162,16 @@ done
   
 
       echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:16162: checking for mbstate_t" >&5
+echo "configure:16166: checking for mbstate_t" >&5
   cat > conftest.$ac_ext <<EOF
-#line 16164 "configure"
+#line 16168 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 mbstate_t teststate;
 ; return 0; }
 EOF
-if { (eval echo configure:16171: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16175: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_mbstate_t=yes
 else
@@ -16189,17 +16193,17 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16193: checking for $ac_hdr" >&5
+echo "configure:16197: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16198 "configure"
+#line 16202 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16228,17 +16232,17 @@ done
 
   ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for wctype.h""... $ac_c" 1>&6
-echo "configure:16232: checking for wctype.h" >&5
+echo "configure:16236: checking for wctype.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16237 "configure"
+#line 16241 "configure"
 #include "confdefs.h"
 #include <wctype.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
      test x"$enable_c_mbchar" != xno; then
       
             echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:16270: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:16274: checking for WCHAR_MIN and WCHAR_MAX" >&5
     cat > conftest.$ac_ext <<EOF
-#line 16272 "configure"
+#line 16276 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 int i = WCHAR_MIN; int j = WCHAR_MAX;
 ; return 0; }
 EOF
-if { (eval echo configure:16279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   has_wchar_minmax=yes
 else
@@ -16288,9 +16292,9 @@ rm -f conftest*
     echo "$ac_t""$has_wchar_minmax" 1>&6
     
             echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:16292: checking for WEOF" >&5
+echo "configure:16296: checking for WEOF" >&5
     cat > conftest.$ac_ext <<EOF
-#line 16294 "configure"
+#line 16298 "configure"
 #include "confdefs.h"
 
       #include <wchar.h>
@@ -16299,7 +16303,7 @@ int main() {
 wint_t i = WEOF;
 ; return 0; }
 EOF
-if { (eval echo configure:16303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16307: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   has_weof=yes
 else
@@ -16315,12 +16319,12 @@ rm -f conftest*
     for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16319: checking for $ac_func" >&5
+echo "configure:16323: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16324 "configure"
+#line 16328 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16343,7 +16347,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16378,12 +16382,12 @@ done
     wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16382: checking for $ac_func" >&5
+echo "configure:16386: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16387 "configure"
+#line 16391 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16406,7 +16410,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16434,7 +16438,7 @@ done
 
 
     echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:16438: checking for ISO C99 wchar_t support" >&5
+echo "configure:16442: checking for ISO C99 wchar_t support" >&5
     if test x"$has_weof" = xyes &&
        test x"$has_wchar_minmax" = xyes &&
        test x"$ac_wfuncs" = xyes; then
@@ -16446,17 +16450,17 @@ echo "configure:16438: checking for ISO C99 wchar_t support" >&5
   
             ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:16450: checking for iconv.h" >&5
+echo "configure:16454: checking for iconv.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16455 "configure"
+#line 16459 "configure"
 #include "confdefs.h"
 #include <iconv.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16464: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
     ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:16484: checking for langinfo.h" >&5
+echo "configure:16488: checking for langinfo.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16489 "configure"
+#line 16493 "configure"
 #include "confdefs.h"
 #include <langinfo.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16494: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16514,7 +16518,7 @@ fi
 
 
         echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:16518: checking for iconv in -liconv" >&5
+echo "configure:16522: checking for iconv in -liconv" >&5
 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -16522,7 +16526,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-liconv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16526 "configure"
+#line 16530 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16533,7 +16537,7 @@ int main() {
 iconv()
 ; return 0; }
 EOF
-if { (eval echo configure:16537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
     for ac_func in iconv_open iconv_close iconv nl_langinfo
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16563: checking for $ac_func" >&5
+echo "configure:16567: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16568 "configure"
+#line 16572 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16587,7 +16591,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16617,7 +16621,7 @@ done
     LIBS="$ac_save_LIBS"
 
     echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:16621: checking for XPG2 wchar_t support" >&5
+echo "configure:16625: checking for XPG2 wchar_t support" >&5
     if test x"$ac_has_iconv_h" = xyes &&
        test x"$ac_has_langinfo_h" = xyes &&
        test x"$ac_XPG2funcs" = xyes; then
@@ -16628,7 +16632,7 @@ echo "configure:16621: checking for XPG2 wchar_t support" >&5
     echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
   
             echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:16632: checking for enabled wchar_t specializations" >&5
+echo "configure:16636: checking for enabled wchar_t specializations" >&5
     if test x"$ac_isoC99_wchar_t" = xyes &&
        test x"$ac_XPG2_wchar_t" = xyes; then
       cat >> confdefs.h <<\EOF
@@ -16650,7 +16654,7 @@ EOF
 
   
   echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6
-echo "configure:16654: checking for strtold declaration" >&5
+echo "configure:16658: checking for strtold declaration" >&5
   if test x${glibcpp_cv_func_strtold_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -16665,14 +16669,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 16669 "configure"
+#line 16673 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
  strtold(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:16676: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16680: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_cv_func_strtold_use=yes
 else
     for ac_func in strtold
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16702: checking for $ac_func" >&5
+echo "configure:16706: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16707 "configure"
+#line 16711 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16726,7 +16730,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16755,12 +16759,12 @@ done
   for ac_func in drand48
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16759: checking for $ac_func" >&5
+echo "configure:16763: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16764 "configure"
+#line 16768 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16783,7 +16787,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16813,17 +16817,17 @@ done
   
   ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for locale.h""... $ac_c" 1>&6
-echo "configure:16817: checking for locale.h" >&5
+echo "configure:16821: checking for locale.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16822 "configure"
+#line 16826 "configure"
 #include "confdefs.h"
 #include <locale.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16827: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16831: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16841,19 +16845,19 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
     echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:16845: checking for LC_MESSAGES" >&5
+echo "configure:16849: checking for LC_MESSAGES" >&5
 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16850 "configure"
+#line 16854 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 return LC_MESSAGES
 ; return 0; }
 EOF
-if { (eval echo configure:16857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_val_LC_MESSAGES=yes
 else
@@ -16880,7 +16884,7 @@ fi
 
 
   cat > conftest.$ac_ext <<EOF
-#line 16884 "configure"
+#line 16888 "configure"
 #include "confdefs.h"
 
 #include <setjmp.h>
@@ -16889,7 +16893,7 @@ int main() {
 sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);
 ; return 0; }
 EOF
-if { (eval echo configure:16893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16897: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_SIGSETJMP 1
@@ -16905,17 +16909,17 @@ rm -f conftest*
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16909: checking for $ac_hdr" >&5
+echo "configure:16913: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16914 "configure"
+#line 16918 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16919: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16923: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16944,12 +16948,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16948: checking for $ac_func" >&5
+echo "configure:16952: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16953 "configure"
+#line 16957 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16972,7 +16976,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16997,7 +17001,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:17001: checking for working mmap" >&5
+echo "configure:17005: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17005,7 +17009,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 17009 "configure"
+#line 17013 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -17158,7 +17162,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:17162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:17193: checking for $ac_hdr" >&5
+echo "configure:17197: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17198 "configure"
+#line 17202 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:17203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:17207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -17232,7 +17236,7 @@ done
     # Can't do these in a loop, else the resulting syntax is wrong.
     
   cat > conftest.$ac_ext <<EOF
-#line 17236 "configure"
+#line 17240 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
                   #include <unistd.h>
@@ -17241,7 +17245,7 @@ int main() {
  int f = RLIMIT_DATA ; 
 ; return 0; }
 EOF
-if { (eval echo configure:17245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17249: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_mresult=1
 else
@@ -17258,7 +17262,7 @@ EOF
 
     
   cat > conftest.$ac_ext <<EOF
-#line 17262 "configure"
+#line 17266 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
                   #include <unistd.h>
@@ -17267,7 +17271,7 @@ int main() {
  int f = RLIMIT_RSS ; 
 ; return 0; }
 EOF
-if { (eval echo configure:17271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17275: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_mresult=1
 else
@@ -17284,7 +17288,7 @@ EOF
 
     
   cat > conftest.$ac_ext <<EOF
-#line 17288 "configure"
+#line 17292 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
                   #include <unistd.h>
@@ -17293,7 +17297,7 @@ int main() {
  int f = RLIMIT_VMEM ; 
 ; return 0; }
 EOF
-if { (eval echo configure:17297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_mresult=1
 else
@@ -17310,7 +17314,7 @@ EOF
 
     
   cat > conftest.$ac_ext <<EOF
-#line 17314 "configure"
+#line 17318 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
                   #include <unistd.h>
@@ -17319,7 +17323,7 @@ int main() {
  int f = RLIMIT_AS ; 
 ; return 0; }
 EOF
-if { (eval echo configure:17323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17327: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcpp_mresult=1
 else
@@ -17341,7 +17345,7 @@ EOF
 else
   
       cat > conftest.$ac_ext <<EOF
-#line 17345 "configure"
+#line 17349 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
                      #include <unistd.h>
@@ -17350,7 +17354,7 @@ int main() {
  struct rlimit r; setrlimit(0, &r);
 ; return 0; }
 EOF
-if { (eval echo configure:17354: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_setrlimit=yes
 else
@@ -17366,7 +17370,7 @@ fi
   fi
 
   echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6
-echo "configure:17370: checking for testsuite memory limit support" >&5
+echo "configure:17374: checking for testsuite memory limit support" >&5
   if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then
     ac_mem_limits=yes
     cat >> confdefs.h <<\EOF
@@ -17468,13 +17472,13 @@ glibcpp_toolexeclibdir=no
 glibcpp_prefixdir=${prefix}
 
 echo $ac_n "checking for interface version number""... $ac_c" 1>&6
-echo "configure:17472: checking for interface version number" >&5
+echo "configure:17476: checking for interface version number" >&5
 libstdcxx_interface=$INTERFACE
 echo "$ac_t""$libstdcxx_interface" 1>&6
 
 # Process the option --with-gxx-include-dir=<path to include-files directory>
 echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6
-echo "configure:17478: checking for --with-gxx-include-dir" >&5
+echo "configure:17482: checking for --with-gxx-include-dir" >&5
 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
 if test "${with_gxx_include_dir+set}" = set; then
   withval="$with_gxx_include_dir"
@@ -17498,7 +17502,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
 
 # Process the option "--enable-version-specific-runtime-libs"
 echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:17502: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:17506: checking for --enable-version-specific-runtime-libs" >&5
 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
 if test "${enable_version_specific_runtime_libs+set}" = set; then
   enableval="$enable_version_specific_runtime_libs"
@@ -17545,7 +17549,7 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
 fi
 
 echo $ac_n "checking for install location""... $ac_c" 1>&6
-echo "configure:17549: checking for install location" >&5
+echo "configure:17553: checking for install location" >&5
 echo "$ac_t""$gxx_include_dir" 1>&6
 
 
@@ -18052,8 +18056,8 @@ fi; done
 EOF
 
 cat >> $CONFIG_STATUS <<EOF
-ac_sources="$BASIC_FILE_CC $CLOCALE_CC $CCOLLATE_CC $CMESSAGES_CC $CMONEY_CC $CNUMERIC_CC"
-ac_dests="src/basic_file.cc src/c++locale.cc src/collate.cc src/messages.cc src/moneypunct.cc src/numpunct.cc"
+ac_sources="$BASIC_FILE_CC $CLOCALE_CC $CCOLLATE_CC $CMESSAGES_CC $CMONEY_CC $CNUMERIC_CC $CTIME_CC"
+ac_dests="src/basic_file.cc src/c++locale.cc src/collate.cc src/messages.cc src/moneypunct.cc src/numpunct.cc src/time.cc"
 EOF
 
 cat >> $CONFIG_STATUS <<\EOF
index 9a59d818fc0e6a81519c3351b4c73ff523887f59..0d2cc70377d395f497657fac61ba43a7fb32659f 100644 (file)
@@ -168,7 +168,7 @@ namespace std
       explicit 
       ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { }
 
-      static locale::id id;
+      static locale::id                id;
 
    protected:
       virtual 
@@ -569,7 +569,7 @@ namespace std
       typedef _InIter                          iter_type;
       typedef char_traits<_CharT>      __traits_type;
 
-      static locale::id id;
+      static locale::id                id;
 
       explicit 
       num_get(size_t __refs = 0) : locale::facet(__refs) { }
@@ -742,7 +742,7 @@ namespace std
       typedef _CharT       char_type;
       typedef _OutIter     iter_type;
 
-      static locale::id id;
+      static locale::id                id;
 
       explicit 
       num_put(size_t __refs = 0) : locale::facet(__refs) { }
@@ -830,14 +830,14 @@ namespace std
       typedef _CharT                   char_type;
       typedef basic_string<_CharT>     string_type;
 
-      static locale::id id;
+      static locale::id                id;
 
     private:
-      char_type        _M_decimal_point;
-      char_type        _M_thousands_sep;
-      string           _M_grouping;
-      string_type      _M_truename;
-      string_type      _M_falsename;
+      char_type                        _M_decimal_point;
+      char_type                        _M_thousands_sep;
+      string                           _M_grouping;
+      string_type                      _M_truename;
+      string_type                      _M_falsename;
 
     public:
       explicit 
@@ -900,12 +900,11 @@ namespace std
   template<typename _CharT>
     locale::id numpunct<_CharT>::id;
 
+  // NB: Cannot be made generic. 
   template<typename _CharT>
     void
-    numpunct<_CharT>::_M_initialize_numpunct(__c_locale /*__cloc*/)
-    { 
-      // NB: Cannot be made generic. 
-    }
+    numpunct<_CharT>::_M_initialize_numpunct(__c_locale)
+    { }
 
   template<> 
     void
@@ -957,7 +956,7 @@ namespace std
       __c_locale                       _M_c_locale_collate;
  
     public:
-      static locale::id id;
+      static locale::id                id;
 
       explicit 
       collate(size_t __refs = 0)
@@ -1064,40 +1063,155 @@ namespace std
     {
     public:
       // Types:
-      typedef _CharT                   char_type;
-      typedef basic_string<_CharT>     string_type;
+      typedef _CharT                   __char_type;
+      typedef basic_string<_CharT>     __string_type;
 
-      static locale::id id;
+      static locale::id                id;
+
+      // List of all known timezones, with GMT first.
+      static const _CharT*             _S_timezones[14];
 
     protected:
       __c_locale                       _M_c_locale_timepunct;
-#if 1
-      // Only needed if glibc < 2.3
       const char*                      _M_name_timepunct;
-#endif
+      const _CharT*                    _M_date_format;
+      const _CharT*                    _M_date_era_format;
+      const _CharT*                    _M_time_format;
+      const _CharT*                    _M_time_era_format;
+      const _CharT*                    _M_am;
+      const _CharT*                    _M_pm;
+    
+      // Day names, starting with "C"'s Sunday.
+      const _CharT*                    _M_day1;
+      const _CharT*                    _M_day2;
+      const _CharT*                    _M_day3;
+      const _CharT*                    _M_day4;
+      const _CharT*                    _M_day5;
+      const _CharT*                    _M_day6;
+      const _CharT*                    _M_day7;
+
+      // Abbreviated day names, starting with "C"'s Sun.
+      const _CharT*                    _M_day_a1;
+      const _CharT*                    _M_day_a2;
+      const _CharT*                    _M_day_a3;
+      const _CharT*                    _M_day_a4;
+      const _CharT*                    _M_day_a5;
+      const _CharT*                    _M_day_a6;
+      const _CharT*                    _M_day_a7;
+
+      // Month names, starting with "C"'s January.
+      const _CharT*                    _M_month01;
+      const _CharT*                    _M_month02;
+      const _CharT*                    _M_month03;
+      const _CharT*                    _M_month04;
+      const _CharT*                    _M_month05;
+      const _CharT*                    _M_month06;
+      const _CharT*                    _M_month07;
+      const _CharT*                    _M_month08;
+      const _CharT*                    _M_month09;
+      const _CharT*                    _M_month10;
+      const _CharT*                    _M_month11;
+      const _CharT*                    _M_month12;
+
+      // Abbreviated month names, starting with "C"'s Jan.
+      const _CharT*                    _M_month_a01;
+      const _CharT*                    _M_month_a02;
+      const _CharT*                    _M_month_a03;
+      const _CharT*                    _M_month_a04;
+      const _CharT*                    _M_month_a05;
+      const _CharT*                    _M_month_a06;
+      const _CharT*                    _M_month_a07;
+      const _CharT*                    _M_month_a08;
+      const _CharT*                    _M_month_a09;
+      const _CharT*                    _M_month_a10;
+      const _CharT*                    _M_month_a11;
+      const _CharT*                    _M_month_a12;
 
     public:
       explicit 
       __timepunct(size_t __refs = 0) 
-      : locale::facet(__refs), _M_c_locale_timepunct(NULL), 
-      _M_name_timepunct("C")
-      { 
-       //      _M_initialize_numpunct(); 
-      }
+      : locale::facet(__refs), _M_name_timepunct("C")
+      { _M_initialize_timepunct(); }
 
       explicit 
       __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0) 
-      : locale::facet(__refs)
-      {
-       _M_name_timepunct = __s;
-       if (__cloc)
-         _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
-      }
+      : locale::facet(__refs), _M_name_timepunct(__s)
+      { _M_initialize_timepunct(__cloc); }
 
       void
       _M_put_helper(char* __s, size_t __maxlen, const char* __format, 
                    const tm* __tm) const;
 
+      // Not used, at the moment. Likely to be strptime-ish.
+      void
+      _M_get_helper(const char* __s, const char* __format, tm* __tm) const;
+
+      const _CharT*
+      _M_date_formats() const
+      { return _M_date_format; }
+
+      const _CharT*
+      _M_time_formats() const
+      { return _M_time_format; }
+
+      void
+      _M_days(const _CharT** __days) const
+      { 
+       __days[0] = _M_day1;
+       __days[1] = _M_day2;
+       __days[2] = _M_day3;
+       __days[3] = _M_day4;
+       __days[4] = _M_day5;
+       __days[5] = _M_day6;
+       __days[6] = _M_day7;
+      }
+
+      void
+      _M_days_abbreviated(const _CharT** __days) const
+      { 
+       __days[0] = _M_day_a1;
+       __days[1] = _M_day_a2;
+       __days[2] = _M_day_a3;
+       __days[3] = _M_day_a4;
+       __days[4] = _M_day_a5;
+       __days[5] = _M_day_a6;
+       __days[6] = _M_day_a7;
+     }
+
+      void
+      _M_months(const _CharT** __months) const
+      { 
+       __months[0] = _M_month01;
+       __months[1] = _M_month02;
+       __months[2] = _M_month03;
+       __months[3] = _M_month04;
+       __months[4] = _M_month05;
+       __months[5] = _M_month06;
+       __months[6] = _M_month07;
+       __months[7] = _M_month08;
+       __months[8] = _M_month09;
+       __months[9] = _M_month10;
+       __months[10] = _M_month11;
+       __months[11] = _M_month12;
+      }
+
+      void
+      _M_months_abbreviated(const _CharT** __months) const
+      { 
+       __months[0] = _M_month_a01;
+       __months[1] = _M_month_a02;
+       __months[2] = _M_month_a03;
+       __months[3] = _M_month_a04;
+       __months[4] = _M_month_a05;
+       __months[5] = _M_month_a06;
+       __months[6] = _M_month_a07;
+       __months[7] = _M_month_a08;
+       __months[8] = _M_month_a09;
+       __months[9] = _M_month_a10;
+       __months[10] = _M_month_a11;
+       __months[11] = _M_month_a12;
+      }
+
     protected:
       virtual 
       ~__timepunct()
@@ -1105,93 +1219,129 @@ namespace std
        if (_M_c_locale_timepunct)
          _S_destroy_c_locale(_M_c_locale_timepunct); 
       }
+
+      // For use at construction time only.
+      void 
+      _M_initialize_timepunct(__c_locale __cloc = NULL);
     };
 
   template<typename _CharT>
     locale::id __timepunct<_CharT>::id;
 
+  template<> 
+    const char*
+    __timepunct<char>::_S_timezones[14];
+
+  // Generic.
+  template<typename _CharT>
+    const _CharT* __timepunct<_CharT>::_S_timezones[14];
+
+  // NB: Cannot be made generic. 
+  template<typename _CharT>
+    void
+    __timepunct<_CharT>::_M_initialize_timepunct(__c_locale)
+    { }
+
+  template<> 
+    void
+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+  template<> 
+    const wchar_t*
+    __timepunct<wchar_t>::_S_timezones[14];
+
+  template<> 
+    void
+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc);
+#endif
+
   template<typename _CharT, typename _InIter>
     class time_get : public locale::facet, public time_base
     {
     public:
       // Types:
-      typedef _CharT     char_type;
-      typedef _InIter    iter_type;
-
-      static locale::id id;
+      typedef _CharT                   char_type;
+      typedef _InIter                  iter_type;
+      typedef basic_string<_CharT>     __string_type;
 
-    protected:
-      mutable basic_string<_CharT>*    _M_daynames;
-      mutable basic_string<_CharT>*    _M_monthnames;
+      static locale::id                id;
 
-    public:
       explicit 
       time_get(size_t __refs = 0) 
-      : locale::facet (__refs), _M_daynames(0), _M_monthnames(0) { }
+      : locale::facet (__refs) { }
 
       dateorder 
       date_order()  const
-      { return do_date_order(); }
+      { return this->do_date_order(); }
 
       iter_type 
-      get_time(iter_type __s, iter_type __end, ios_base& __io, 
-              ios_base::iostate& __err, tm* __t)  const
-      { return do_get_time(__s, __end, __io, __err, __t); }
+      get_time(iter_type __beg, iter_type __end, ios_base& __io, 
+              ios_base::iostate& __err, tm* __tm)  const
+      { return this->do_get_time(__beg, __end, __io, __err, __tm); }
 
       iter_type 
-      get_date(iter_type __s, iter_type __end, ios_base& __io,
-              ios_base::iostate& __err, tm* __t)  const
-      { return do_get_date(__s, __end, __io, __err, __t); }
+      get_date(iter_type __beg, iter_type __end, ios_base& __io,
+              ios_base::iostate& __err, tm* __tm)  const
+      { return this->do_get_date(__beg, __end, __io, __err, __tm); }
 
       iter_type 
-      get_weekday(iter_type __s, iter_type __end, ios_base& __io,
-                 ios_base::iostate& __err, tm* __t) const
-      { return this->do_get_weekday(__s, __end, __io, __err, __t); }
+      get_weekday(iter_type __beg, iter_type __end, ios_base& __io,
+                 ios_base::iostate& __err, tm* __tm) const
+      { return this->do_get_weekday(__beg, __end, __io, __err, __tm); }
 
       iter_type 
-      get_monthname(iter_type __s, iter_type __end, ios_base& __io, 
-                   ios_base::iostate& __err, tm* __t) const
-      { return this->do_get_monthname(__s, __end, __io, __err, __t); }
+      get_monthname(iter_type __beg, iter_type __end, ios_base& __io, 
+                   ios_base::iostate& __err, tm* __tm) const
+      { return this->do_get_monthname(__beg, __end, __io, __err, __tm); }
 
       iter_type 
-      get_year(iter_type __s, iter_type __end, ios_base& __io,
-              ios_base::iostate& __err, tm* __t) const
-      { return this->do_get_year(__s, __end, __io, __err, __t); }
+      get_year(iter_type __beg, iter_type __end, ios_base& __io,
+              ios_base::iostate& __err, tm* __tm) const
+      { return this->do_get_year(__beg, __end, __io, __err, __tm); }
 
     protected:
       virtual 
-      ~time_get() 
-      {      
-       delete [] _M_monthnames; 
-       delete [] _M_daynames; 
-      }
+      ~time_get() { }
 
       virtual dateorder 
-      do_date_order()  const
-      { return time_base::ymd; }
+      do_date_order() const;
 
       virtual iter_type 
-      do_get_time(iter_type __s, iter_type /*__end*/, ios_base&,
-                 ios_base::iostate& /*__err*/, tm* /*__t*/) const
-      { return __s; }
+      do_get_time(iter_type __beg, iter_type __end, ios_base& __io,
+                 ios_base::iostate& __err, tm* __tm) const;
 
       virtual iter_type 
-      do_get_date(iter_type __s, iter_type /*__end*/, ios_base&,
-                 ios_base::iostate& /*__err*/, tm* /*__t*/) const
-      { return __s; }
+      do_get_date(iter_type __beg, iter_type __end, ios_base& __io,
+                 ios_base::iostate& __err, tm* __tm) const;
 
       virtual iter_type 
-      do_get_weekday(iter_type __s, iter_type __end, ios_base&,
-                    ios_base::iostate& __err, tm* __t) const;
+      do_get_weekday(iter_type __beg, iter_type __end, ios_base&,
+                    ios_base::iostate& __err, tm* __tm) const;
 
       virtual iter_type 
-      do_get_monthname(iter_type __s, iter_type __end, ios_base&, 
-                      ios_base::iostate& __err, tm* __t) const;
+      do_get_monthname(iter_type __beg, iter_type __end, ios_base&, 
+                      ios_base::iostate& __err, tm* __tm) const;
 
       virtual iter_type 
-      do_get_year(iter_type __s, iter_type /*__end*/, ios_base&,
-                  ios_base::iostate& /*__err*/, tm* /*__t*/) const
-      { return __s; }
+      do_get_year(iter_type __beg, iter_type __end, ios_base& __io,
+                 ios_base::iostate& __err, tm* __tm) const;
+
+      // Extract time component in the form of
+      // [digitdigit][separator], with a maximum of two digits per
+      // separator. Used by do_get_time.
+      void
+      _M_extract_time(iter_type& __beg, iter_type& __end, int& __member,
+                     int __min, int __max, const char_type __sep, 
+                     bool __extract, const ctype<_CharT>& __ctype, 
+                     ios_base::iostate& __err) const;
+      
+      // Extract day or month name, or any unique array of string
+      // literals in a const _CharT* array.
+      void
+      _M_extract_name(iter_type& __beg, iter_type& __end, int& __member,
+                     const _CharT** __names, size_t __indexlen, 
+                     ios_base::iostate& __err) const;
     };
 
   template<typename _CharT, typename _InIter>
@@ -1201,12 +1351,14 @@ namespace std
     class time_get_byname : public time_get<_CharT, _InIter>
     {
     public:
-      typedef _CharT     char_type;
-      typedef _InIter    iter_type;
+      // Types:
+      typedef _CharT                   char_type;
+      typedef _InIter                  iter_type;
 
       explicit 
       time_get_byname(const char*, size_t __refs = 0) 
       : time_get<_CharT, _InIter>(__refs) { }
+
     protected:
       virtual 
       ~time_get_byname() { }
@@ -1217,10 +1369,10 @@ namespace std
     {
     public:
       // Types:
-      typedef _CharT     char_type;
-      typedef _OutIter   iter_type;
+      typedef _CharT                   char_type;
+      typedef _OutIter                 iter_type;
 
-      static locale::id id;
+      static locale::id                id;
 
       explicit 
       time_put(size_t __refs = 0) 
@@ -1253,8 +1405,8 @@ namespace std
     {
     public:
       // Types:
-      typedef _CharT     char_type;
-      typedef _OutIter   iter_type;
+      typedef _CharT                   char_type;
+      typedef _OutIter                 iter_type;
 
       explicit 
       time_put_byname(const char* /*__s*/, size_t __refs = 0) 
@@ -1457,11 +1609,12 @@ namespace std
     class money_get : public locale::facet
     {
     public:
+      // Types:
       typedef _CharT                   char_type;
       typedef _InIter                  iter_type;
       typedef basic_string<_CharT>     string_type;
 
-      static locale::id id;
+      static locale::id                id;
 
       explicit 
       money_get(size_t __refs = 0) : locale::facet(__refs) { }
@@ -1500,7 +1653,7 @@ namespace std
       typedef _OutIter                 iter_type;
       typedef basic_string<_CharT>     string_type;
 
-      static locale::id id;
+      static locale::id                id;
 
       explicit 
       money_put(size_t __refs = 0) : locale::facet(__refs) { }
@@ -1555,7 +1708,7 @@ namespace std
 #endif
 
     public:
-      static locale::id id;
+      static locale::id                id;
 
       explicit 
       messages(size_t __refs = 0) 
index ec0cf11eba843382f692ecf25f57bcc8d2905702..0f54fa0700d39e94969776a2b362d8d797c6503d 100644 (file)
@@ -87,676 +87,386 @@ namespace std
       return (__i < __facet->size() && (*__facet)[__i] != 0);
     }
 
-  // __match_parallel
-  // matches input __s against a set of __ntargs strings in __targets,
-  // placing in __matches a vector of indices into __targets which
-  // match, and in __remain the number of such matches. If it hits
-  // end of sequence before it minimizes the set, sets __eof.
-  // Empty strings are never matched.
-  template<typename _InIter, typename _CharT>
-    _InIter
-    __match_parallel(_InIter __s, _InIter __end, int __ntargs,
-                     const basic_string<_CharT>* __targets,
-                     int* __matches, int& __remain, bool& __eof)
-    {
-      typedef basic_string<_CharT> __string_type;
-      __eof = false;
-      for (int __ti = 0; __ti < __ntargs; ++__ti)
-        __matches[__ti] = __ti;
-      __remain = __ntargs;
-      size_t __pos = 0;
-      do
-        {
-         int __ti = 0;
-         while (__ti < __remain && __pos == __targets[__matches[__ti]].size())
-           ++__ti;
-         if (__ti == __remain)
-           {
-             if (__pos == 0) __remain = 0;
-             return __s;
-           }
-          if (__s == __end)
-            __eof = true;
-          bool __matched = false;
-          for (int __ti2 = 0; __ti2 < __remain; )
-            {
-              const __string_type& __target = __targets[__matches[__ti2]];
-              if (__pos < __target.size())
-                {
-                  if (__eof || __target[__pos] != *__s)
-                    {
-                      __matches[__ti2] = __matches[--__remain];
-                      continue;
-                    }
-                  __matched = true;
-                }
-              ++__ti2;
-            }
-          if (__matched)
-            {
-              ++__s;
-              ++__pos;
-            }
-          for (int __ti3 = 0; __ti3 < __remain;)
-            {
-              if (__pos > __targets[__matches[__ti3]].size())
-                {
-                  __matches[__ti3] = __matches[--__remain];
-                  continue;
-                }
-              ++__ti3;
-            }
-        }
-      while (__remain);
-      return __s;
-    }
-
-  template<typename _CharT>
-    _Format_cache<_CharT>::_Format_cache()
-    : _M_valid(true), _M_use_grouping(false)
-    { }
-
-  template<>
-    _Format_cache<char>::_Format_cache();
 
-  template<>
-    _Format_cache<wchar_t>::_Format_cache();
+  // This member function takes an (w)istreambuf_iterator object and
+  // parses it into a generic char array suitable for parsing with
+  // strto[l,ll,f,d]. The thought was to encapsulate the conversion
+  // into this one function, and thus the num_get::do_get member
+  // functions can just adjust for the type of the overloaded
+  // argument and process the char array returned from _M_extract.
+  // Other things were also considered, including a fused
+  // multiply-add loop that would obviate the need for any call to
+  // strto... at all: however, it would b e a bit of a pain, because
+  // you'd have to be able to return either floating or integral
+  // types, etc etc. The current approach seems to be smack dab in
+  // the middle between an unoptimized approach using sscanf, and
+  // some kind of hyper-optimized approach alluded to above.
 
-  template<typename _CharT>
+  // XXX
+  // Need to do partial specialization to account for differences
+  // between character sets. For char, this is pretty
+  // straightforward, but for wchar_t, the conversion to a plain-jane
+  // char type is a bit more involved.
+  template<typename _CharT, typename _InIter>
     void
-    _Format_cache<_CharT>::_M_populate(ios_base& __io)
+    num_get<_CharT, _InIter>::
+    _M_extract(_InIter /*__beg*/, _InIter /*__end*/, ios_base& /*__io*/,
+               ios_base::iostate& /*__err*/, char* /*__xtrc*/,
+               int& /*__base*/, bool /*__fp*/) const
     {
-      locale __loc = __io.getloc();
-      numpunct<_CharT> const& __np = use_facet<numpunct<_CharT> >(__loc);
-      _M_truename = __np.truename();
-      _M_falsename = __np.falsename();
-      _M_thousands_sep = __np.thousands_sep();
-      _M_decimal_point = __np.decimal_point();
-      _M_grouping = __np.grouping();
-      _M_use_grouping = _M_grouping.size() != 0 && _M_grouping.data()[0] != 0;
-      _M_valid = true;
+      // XXX Not currently done: need to expand upon char version below.
     }
 
-  // This function is always called via a pointer installed in
-  // an ios_base by ios_base::register_callback.
-  template<typename _CharT>
+  template<>
     void
-    _Format_cache<_CharT>::
-    _S_callback(ios_base::event __ev, ios_base& __ios, int __ix) throw()
+    num_get<char, istreambuf_iterator<char> >::
+    _M_extract(istreambuf_iterator<char> __beg, 
+              istreambuf_iterator<char> __end, ios_base& __io, 
+              ios_base::iostate& __err, char* __xtrc, int& __base, 
+              bool __fp) const;
+
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+  // NB: This is an unresolved library defect #17
+  //17.  Bad bool parsing
+  template<typename _CharT, typename _InIter>
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, bool& __v) const
     {
-      void*& __p = __ios.pword(__ix);
-      switch (__ev)
+      // Parse bool values as long
+      if (!(__io.flags() & ios_base::boolalpha))
         {
-        case ios_base::erase_event:
-          delete static_cast<_Format_cache<_CharT>*>(__p);
-         __p = 0;
-          break;
-        case ios_base::copyfmt_event:
-          // If just stored zero, the callback would get registered again.
-          try 
-           { __p = new _Format_cache<_CharT>; }
-          catch(...) 
-           { }
-          break;
-        case ios_base::imbue_event:
-          static_cast<_Format_cache<_CharT>*>(__p)->_M_valid = false;
-          break;
-        }
-    }
+          // NB: We can't just call do_get(long) here, as it might
+          // refer to a derived class.
 
-  template<typename _CharT>
-    _Format_cache<_CharT>*
-    _Format_cache<_CharT>::_S_get(ios_base& __ios)
-    {
-      if (!_S_pword_ix)
-        _S_pword_ix = ios_base::xalloc();  // XXX MT
-      void*& __p = __ios.pword(_S_pword_ix);
+          // Stage 1: extract and determine the conversion specifier.
+          // Assuming leading zeros eliminated, thus the size of 32 for
+          // integral types.
+          char __xtrc[32] = {'\0'};
+          int __base;
+          _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      // XXX What if pword fails? must check failbit, throw.
-      if (__p == 0)  // XXX MT?  maybe sentry takes care of it
+          // Stage 2: convert and store results.
+          char* __sanity;
+          errno = 0;
+          long __l = strtol(__xtrc, &__sanity, __base);
+          if (!(__err & ios_base::failbit)
+              && __l <= 1
+              && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+            __v = __l;
+          else
+            __err |= ios_base::failbit;
+        }
+
+      // Parse bool values as alphanumeric
+      else
         {
-          auto_ptr<_Format_cache<_CharT> > __ap(new _Format_cache<_CharT>);
-          __ios.register_callback(&_Format_cache<_CharT>::_S_callback,
-                                  _S_pword_ix);
-          __p = __ap.release();
+          typedef _Format_cache<char_type> __fcache_type;
+          __fcache_type* __fmt = __fcache_type::_S_get(__io);
+          const char_type* __true = __fmt->_M_truename.c_str();
+          const char_type* __false = __fmt->_M_falsename.c_str();
+          const size_t __truelen =  __traits_type::length(__true) - 1;
+          const size_t __falselen =  __traits_type::length(__false) - 1;
+
+          for (size_t __pos = 0; __beg != __end; ++__pos)
+            {
+              char_type __c = *__beg++;
+              bool __testf = __c == __false[__pos];
+              bool __testt = __c == __true[__pos];
+              if (!(__testf || __testt))
+                {
+                  __err |= ios_base::failbit;
+                  break;
+                }
+              else if (__testf && __pos == __falselen)
+                {
+                  __v = 0;
+                  break;
+                }
+              else if (__testt && __pos == __truelen)
+                {
+                  __v = 1;
+                  break;
+                }
+            }
+          if (__beg == __end)
+            __err |= ios_base::eofbit;
         }
-      _Format_cache<_CharT>* __ncp = static_cast<_Format_cache<_CharT>*>(__p);
-      if (!__ncp->_M_valid)
-        __ncp->_M_populate(__ios);
 
-      return __ncp;
+      return __beg;
     }
+#endif
 
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+  //XXX.  Which number?  Presumably same as in locale_facets.h...
   template<typename _CharT, typename _InIter>
-    money_get<_CharT, _InIter>::iter_type 
-    money_get<_CharT, _InIter>::do_get(iter_type __s, iter_type __end, 
-                                      bool __intl, ios_base& __io, 
-                                      ios_base::iostate& __err,
-                                      long double& __units) const
-    { 
-      string_type __str;
-      this->do_get(__s, __end, __intl, __io, __err, __str); 
-
-      const int __n = numeric_limits<long double>::digits10;
-      char* __cs = static_cast<char*>(__builtin_alloca(sizeof(char) * __n));
-      const locale __loc = __io.getloc();
-      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
-      const _CharT* __wcs = __str.c_str();
-      __ctype.narrow(__wcs, __wcs + __str.size() + 1, char(), __cs);      
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, short& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-#if defined(_GLIBCPP_USE_C99) && !defined(__hpux)
+      // Stage 2: convert and store results.
       char* __sanity;
       errno = 0;
-      long double __ld = strtold(__cs, &__sanity);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __cs && *__sanity == '\0' && errno == 0)
-        __units = __ld;
-#else
-      typedef typename char_traits<_CharT>::int_type int_type;
-      long double __ld;
-      int __p = sscanf(__cs, "%Lf", &__ld);
+      long __l = strtol(__xtrc, &__sanity, __base);
       if (!(__err & ios_base::failbit)
-         && __p && static_cast<int_type>(__p) != char_traits<_CharT>::eof())
-        __units = __ld;
-#endif
-      return __s;
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
+          && __l >= SHRT_MIN && __l <= SHRT_MAX)
+        __v = static_cast<short>(__l);
+      else
+        __err |= ios_base::failbit;
+
+      return __beg;
     }
 
   template<typename _CharT, typename _InIter>
-    money_get<_CharT, _InIter>::iter_type 
-    money_get<_CharT, _InIter>::do_get(iter_type __s, iter_type __end, 
-                                      bool __intl, ios_base& __io, 
-                                      ios_base::iostate& __err,
-                                      string_type& __units) const
-    { 
-      // These contortions are quite unfortunate.
-      typedef moneypunct<_CharT, true>                 __money_true;
-      typedef moneypunct<_CharT, false>        __money_false;
-      typedef money_base::part                         part;
-      typedef typename string_type::size_type  size_type;
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, int& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32] = {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      const locale __loc = __io.getloc();
-      const __money_true& __mpt = use_facet<__money_true>(__loc); 
-      const __money_false& __mpf = use_facet<__money_false>(__loc); 
-      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+      long __l = strtol(__xtrc, &__sanity, __base);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
+          && __l >= INT_MIN && __l <= INT_MAX)
+        __v = static_cast<int>(__l);
+      else
+        __err |= ios_base::failbit;
 
-      const money_base::pattern __p = __intl ? __mpt.neg_format() 
-                                            : __mpf.neg_format();
+      return __beg;
+    }
+#endif
 
-      const string_type __pos_sign =__intl ? __mpt.positive_sign() 
-                                          : __mpf.positive_sign();
-      const string_type __neg_sign =__intl ? __mpt.negative_sign() 
-                                          : __mpf.negative_sign();
-      const char_type __d = __intl ? __mpt.decimal_point() 
-                                  : __mpf.decimal_point();
-      const char_type __sep = __intl ? __mpt.thousands_sep() 
-                                    : __mpf.thousands_sep();
+  template<typename _CharT, typename _InIter>
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, long& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      const string __grouping = __intl ? __mpt.grouping() 
-                                      : __mpf.grouping();
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+      long __l = strtol(__xtrc, &__sanity, __base);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+        __v = __l;
+      else
+        __err |= ios_base::failbit;
 
-      // Set to deduced positive or negative sign, depending.
-      string_type __sign;
-      // String of grouping info from thousands_sep plucked from __units.
-      string __grouping_tmp; 
-      // Marker for thousands_sep position.
-      int __sep_pos = 0;
-      // If input iterator is in a valid state.
-      bool __testvalid = true;
-      // Flag marking when a decimal point is found.
-      bool __testdecfound = false; 
+      return __beg;
+    }
 
-      char_type __c = *__s;
-      char_type __eof = static_cast<char_type>(char_traits<char_type>::eof());
-      for (int __i = 0; __s != __end && __i < 4 && __testvalid; ++__i)
-       {
-         part __which = static_cast<part>(__p.field[__i]);
-         switch (__which)
-               {
-               case money_base::symbol:
-                 if (__io.flags() & ios_base::showbase)
-                   {
-                     // Symbol is required.
-                     const string_type __symbol = __intl ? __mpt.curr_symbol()
-                                                        : __mpf.curr_symbol();
-                     size_type __len = __symbol.size();
-                     size_type __i = 0;
-                     while (__s != __end 
-                            && __i < __len && __symbol[__i] == __c)
-                       {
-                         __c = *(++__s);
-                         ++__i;
-                       }
-                     if (__i != __len)
-                       __testvalid = false;
-                   }
-                 break;
-               case money_base::sign:              
-                 // Sign might not exist, or be more than one character long. 
-                 if (__pos_sign.size() && __neg_sign.size())
-                 {
-                   // Sign is mandatory.
-                   if (__c == __pos_sign[0])
-                     {
-                       __sign = __pos_sign;
-                       __c = *(++__s);
-                     }
-                   else if (__c == __neg_sign[0])
-                     {
-                       __sign = __neg_sign;
-                       __c = *(++__s);
-                     }
-                   else
-                     __testvalid = false;
-                 }
-                 else if (__pos_sign.size() && __c == __pos_sign[0])
-                   {
-                     __sign = __pos_sign;
-                     __c = *(++__s);
-                   }
-                 else if (__neg_sign.size() && __c == __neg_sign[0])
-                   {
-                     __sign = __neg_sign;
-                     __c = *(++__s);
-                   }
-                 break;
-               case money_base::value:
-                 // Extract digits, remove and stash away the
-                 // grouping of found thousands separators.
-                 while (__s != __end 
-                        && (__ctype.is(ctype_base::digit, __c) 
-                            || (__c == __d && !__testdecfound)
-                            || __c == __sep))
-                   {
-                     if (__c == __d)
-                       {
-                         __grouping_tmp += static_cast<char>(__sep_pos);
-                         __sep_pos = 0;
-                         __testdecfound = true;
-                       }
-                     else if (__c == __sep)
-                       {
-                         if (__grouping.size())
-                           {
-                             // Mark position for later analysis.
-                             __grouping_tmp += static_cast<char>(__sep_pos);
-                             __sep_pos = 0;
-                           }
-                         else
-                           {
-                             __testvalid = false;
-                             break;
-                           }
-                       }
-                     else
-                       {
-                         __units += __c;
-                         ++__sep_pos;
-                       }
-                     __c = *(++__s);
-                   }
-                 break;
-               case money_base::space:
-               case money_base::none:
-                 // Only if not at the end of the pattern.
-                 if (__i != 3)
-                   while (__s != __end && __ctype.is(ctype_base::space, __c))
-                     __c = *(++__s);
-                 break;
-               }
-       }
+#ifdef _GLIBCPP_USE_LONG_LONG
+  template<typename _CharT, typename _InIter>
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, long long& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      // Need to get the rest of the sign characters, if they exist.
-      if (__sign.size() > 1)
-       {
-         size_type __len = __sign.size();
-         size_type __i = 1;
-         for (; __c != __eof && __i < __len; ++__i)
-           while (__s != __end && __c != __sign[__i])
-             __c = *(++__s);
-         
-         if (__i != __len)
-           __testvalid = false;
-       }
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+      long long __ll = strtoll(__xtrc, &__sanity, __base);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+        __v = __ll;
+      else
+        __err |= ios_base::failbit;
 
-      // Strip leading zeros.
-      while (__units[0] == __ctype.widen('0'))
-       __units.erase(__units.begin());
+      return __beg;
+    }
+#endif
 
-      if (__sign == __neg_sign)
-       __units.insert(__units.begin(), __ctype.widen('-'));
+  template<typename _CharT, typename _InIter>
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, unsigned short& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      // Test for grouping fidelity.
-      if (__grouping.size() && __grouping_tmp.size())
-       {
-         if (!__verify_grouping(__grouping, __grouping_tmp))
-           __testvalid = false;
-       }
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+      unsigned long __ul = strtoul(__xtrc, &__sanity, __base);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
+          && __ul <= USHRT_MAX)
+        __v = static_cast<unsigned short>(__ul);
+      else
+        __err |= ios_base::failbit;
 
-      // Iff no more characters are available.      
-      if (__c == __eof)
-       __err |= ios_base::eofbit;
+      return __beg;
+    }
 
-      // Iff valid sequence is not recognized.
-      if (!__testvalid || !__units.size())
-       __err |= ios_base::failbit;
+  template<typename _CharT, typename _InIter>
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, unsigned int& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      return __s; 
-    }
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+      unsigned long __ul = strtoul(__xtrc, &__sanity, __base);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
+          && __ul <= UINT_MAX)
+        __v = static_cast<unsigned int>(__ul);
+      else
+        __err |= ios_base::failbit;
 
-  template<typename _CharT, typename _OutIter>
-    money_put<_CharT, _OutIter>::iter_type
-    money_put<_CharT, _OutIter>::do_put(iter_type __s, bool __intl, 
-                                       ios_base& __io, char_type __fill,
-                                       long double __units) const
-    { 
-      const locale __loc = __io.getloc();
-      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
-      const int __n = numeric_limits<long double>::digits10;
-      char* __cs = static_cast<char*>(__builtin_alloca(sizeof(char) * __n));
-      _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
-      int __len = sprintf(__cs, "%.01Lf", __units);
-      __ctype.widen(__cs, __cs + __len, __ws);
-      string_type __digits(__ws);
-      return this->do_put(__s, __intl, __io, __fill, __digits); 
+      return __beg;
     }
 
-  template<typename _CharT, typename _OutIter>
-    money_put<_CharT, _OutIter>::iter_type
-    money_put<_CharT, _OutIter>::do_put(iter_type __s, bool __intl, 
-                                       ios_base& __io, char_type __fill,
-                                       const string_type& __digits) const
-    { 
-      typedef typename string_type::size_type  size_type;
-      typedef money_base::part                         part;
+  template<typename _CharT, typename _InIter>
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, unsigned long& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32] = {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      const locale __loc = __io.getloc();
-      const size_type __width = static_cast<size_type>(__io.width());
-
-      // These contortions are quite unfortunate.
-      typedef moneypunct<_CharT, true> __money_true;
-      typedef moneypunct<_CharT, false> __money_false;
-      const __money_true& __mpt = use_facet<__money_true>(__loc); 
-      const __money_false& __mpf = use_facet<__money_false>(__loc); 
-      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
-
-      // Determine if negative or positive formats are to be used, and
-      // discard leading negative_sign if it is present.
-      const char_type* __beg = __digits.data();
-      const char_type* __end = __beg + __digits.size();
-      money_base::pattern __p;
-      string_type __sign;
-      if (*__beg != __ctype.widen('-'))
-       {
-         __p = __intl ? __mpt.pos_format() : __mpf.pos_format();
-         __sign =__intl ? __mpt.positive_sign() : __mpf.positive_sign();
-       }
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+      unsigned long __ul = strtoul(__xtrc, &__sanity, __base);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+        __v = __ul;
       else
-       {
-         __p = __intl ? __mpt.neg_format() : __mpf.neg_format();
-         __sign =__intl ? __mpt.negative_sign() : __mpf.negative_sign();
-         ++__beg;
-       }
-      
-      // Look for valid numbers in the current ctype facet within input digits.
-      __end = __ctype.scan_not(ctype_base::digit, __beg, __end);
-      if (__beg != __end)
-       {
-         // Assume valid input, and attempt to format.
-         // Break down input numbers into base components, as follows:
-         //   final_value = grouped units + (decimal point) + (digits)
-         string_type __res;
-         string_type __value;
-         const string_type __symbol = __intl ? __mpt.curr_symbol() 
-                                             : __mpf.curr_symbol();
-
-         // Deal with decimal point, decimal digits.
-         const int __frac = __intl ? __mpt.frac_digits() 
-                                   : __mpf.frac_digits();
-         if (__frac > 0)
-           {
-             const char_type __d = __intl ? __mpt.decimal_point() 
-                                          : __mpf.decimal_point();
-             if (__end - __beg >= __frac)
-               {
-                 __value = string_type(__end - __frac, __end);
-                 __value.insert(__value.begin(), __d);
-                 __end -= __frac;
-               }
-             else
-               {
-                 // Have to pad zeros in the decimal position.
-                 __value = string_type(__beg, __end);
-                 int __paddec = __frac - (__end - __beg);
-                 char_type __zero = __ctype.widen('0');
-                 __value.insert(__value.begin(), __paddec, __zero);
-                 __value.insert(__value.begin(), __d);
-                 __beg = __end;
-               }
-           }
-
-         // Add thousands separators to non-decimal digits, per
-         // grouping rules.
-         if (__beg != __end)
-           {
-             const string __grouping = __intl ? __mpt.grouping() 
-                                              : __mpf.grouping();
-             if (__grouping.size())
-               {
-                 const char_type __sep = __intl ? __mpt.thousands_sep() 
-                                                : __mpf.thousands_sep();
-                 const char* __gbeg = __grouping.data();
-                 const char* __gend = __gbeg + __grouping.size();
-                 const int __n = numeric_limits<long double>::digits10 * 2;
-                 _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
-                 _CharT* __s_end = __group_digits(__s, __sep, __gbeg, 
-                                                  __gend, __beg, __end);
-                 __value.insert(0, __s, __s_end - __s);
-               }
-             else
-               __value.insert(0, string_type(__beg, __end));
-           }
-
-         // Calculate length of resulting string.
-         ios_base::fmtflags __f = __io.flags() & ios_base::adjustfield;
-         size_type __len = __value.size() + __sign.size();
-         __len += (__io.flags() & ios_base::showbase) ? __symbol.size() : 0;
-         bool __testipad = __f == ios_base::internal && __len < __width;
+        __err |= ios_base::failbit;
 
-         // Fit formatted digits into the required pattern.
-         for (int __i = 0; __i < 4; ++__i)
-           {
-             part __which = static_cast<part>(__p.field[__i]);
-             switch (__which)
-               {
-               case money_base::symbol:
-                 if (__io.flags() & ios_base::showbase)
-                   __res += __symbol;
-                 break;
-               case money_base::sign:              
-                 // Sign might not exist, or be more than one
-                 // charater long. In that case, add in the rest
-                 // below.
-                 if (__sign.size())
-                   __res += __sign[0];
-                 break;
-               case money_base::value:
-                 __res += __value;
-                 break;
-               case money_base::space:
-                 // At least one space is required, but if internal
-                 // formatting is required, an arbitrary number of
-                 // fill spaces will be necessary.
-                 if (__testipad)
-                   __res += string_type(__width - __len, __fill);
-                 else
-                   __res += __ctype.widen(' ');
-                 break;
-               case money_base::none:
-                 if (__testipad)
-                   __res += string_type(__width - __len, __fill);
-                 break;
-               }
-           }
+      return __beg;
+    }
 
-         // Special case of multi-part sign parts.
-         if (__sign.size() > 1)
-           __res += string_type(__sign.begin() + 1, __sign.end());
+#ifdef _GLIBCPP_USE_LONG_LONG
+  template<typename _CharT, typename _InIter>
+    _InIter
+    num_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, unsigned long long& __v) const
+    {
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 32 for
+      // integral types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-         // Pad, if still necessary.
-         __len = __res.size();
-         if (__width > __len)
-           {
-             if (__f == ios_base::left)
-               // After.
-               __res.append(__width - __len, __fill);
-             else
-               // Before.
-               __res.insert(0, string_type(__width - __len, __fill));
-             __len = __width;
-           }
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+      unsigned long long __ull = strtoull(__xtrc, &__sanity, __base);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+        __v = __ull;
+      else
+        __err |= ios_base::failbit;
 
-         // Write resulting, fully-formatted string to output iterator.
-         for (size_type __j = 0; __j < __len; ++__j)
-           __s = __res[__j];
-       }
-      __io.width(0);
-      return __s; 
+      return __beg;
     }
+#endif
 
-  // This member function takes an (w)istreambuf_iterator object and
-  // parses it into a generic char array suitable for parsing with
-  // strto[l,ll,f,d]. The thought was to encapsulate the conversion
-  // into this one function, and thus the num_get::do_get member
-  // functions can just adjust for the type of the overloaded
-  // argument and process the char array returned from _M_extract.
-  // Other things were also considered, including a fused
-  // multiply-add loop that would obviate the need for any call to
-  // strto... at all: however, it would b e a bit of a pain, because
-  // you'd have to be able to return either floating or integral
-  // types, etc etc. The current approach seems to be smack dab in
-  // the middle between an unoptimized approach using sscanf, and
-  // some kind of hyper-optimized approach alluded to above.
-
-  // XXX
-  // Need to do partial specialization to account for differences
-  // between character sets. For char, this is pretty
-  // straightforward, but for wchar_t, the conversion to a plain-jane
-  // char type is a bit more involved.
   template<typename _CharT, typename _InIter>
-    void
+    _InIter
     num_get<_CharT, _InIter>::
-    _M_extract(_InIter /*__beg*/, _InIter /*__end*/, ios_base& /*__io*/,
-               ios_base::iostate& /*__err*/, char* /*__xtrc*/,
-               int& /*__base*/, bool /*__fp*/) const
+    do_get(iter_type __beg, iter_type __end, ios_base& __io,
+           ios_base::iostate& __err, float& __v) const
     {
-      // XXX Not currently done: need to expand upon char version below.
-    }
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 256 for
+      // floating-point types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, true);
 
-  template<>
-    void
-    num_get<char, istreambuf_iterator<char> >::
-    _M_extract(istreambuf_iterator<char> __beg, 
-              istreambuf_iterator<char> __end, ios_base& __io, 
-              ios_base::iostate& __err, char* __xtrc, int& __base, 
-              bool __fp) const;
+      // Stage 2: convert and store results.
+      char* __sanity;
+      errno = 0;
+#ifdef _GLIBCPP_USE_C99
+      float __f = strtof(__xtrc, &__sanity);
+#else
+      float __f = static_cast<float>(strtod(__xtrc, &__sanity));
+#endif
+      if (!(__err & ios_base::failbit)
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+        __v = __f;
+      else
+        __err |= ios_base::failbit;
+
+      return __beg;
+    }
 
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-  // NB: This is an unresolved library defect #17
-  //17.  Bad bool parsing
   template<typename _CharT, typename _InIter>
     _InIter
     num_get<_CharT, _InIter>::
     do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, bool& __v) const
+           ios_base::iostate& __err, double& __v) const
     {
-      // Parse bool values as long
-      if (!(__io.flags() & ios_base::boolalpha))
-        {
-          // NB: We can't just call do_get(long) here, as it might
-          // refer to a derived class.
-
-          // Stage 1: extract and determine the conversion specifier.
-          // Assuming leading zeros eliminated, thus the size of 32 for
-          // integral types.
-          char __xtrc[32] = {'\0'};
-          int __base;
-          _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
-
-          // Stage 2: convert and store results.
-          char* __sanity;
-          errno = 0;
-          long __l = strtol(__xtrc, &__sanity, __base);
-          if (!(__err & ios_base::failbit)
-              && __l <= 1
-              && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-            __v = __l;
-          else
-            __err |= ios_base::failbit;
-        }
-
-      // Parse bool values as alphanumeric
-      else
-        {
-          typedef _Format_cache<char_type> __fcache_type;
-          __fcache_type* __fmt = __fcache_type::_S_get(__io);
-          const char_type* __true = __fmt->_M_truename.c_str();
-          const char_type* __false = __fmt->_M_falsename.c_str();
-          const size_t __truelen =  __traits_type::length(__true) - 1;
-          const size_t __falselen =  __traits_type::length(__false) - 1;
-
-          for (size_t __pos = 0; __beg != __end; ++__pos)
-            {
-              char_type __c = *__beg++;
-              bool __testf = __c == __false[__pos];
-              bool __testt = __c == __true[__pos];
-              if (!(__testf || __testt))
-                {
-                  __err |= ios_base::failbit;
-                  break;
-                }
-              else if (__testf && __pos == __falselen)
-                {
-                  __v = 0;
-                  break;
-                }
-              else if (__testt && __pos == __truelen)
-                {
-                  __v = 1;
-                  break;
-                }
-            }
-          if (__beg == __end)
-            __err |= ios_base::eofbit;
-        }
-
-      return __beg;
-    }
-#endif
-
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-  //XXX.  Which number?  Presumably same as in locale_facets.h...
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, short& __v) const
-    {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
+      // Stage 1: extract and determine the conversion specifier.
+      // Assuming leading zeros eliminated, thus the size of 256 for
+      // floating-point types.
+      char __xtrc[32]= {'\0'};
+      int __base;
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, true);
 
       // Stage 2: convert and store results.
       char* __sanity;
       errno = 0;
-      long __l = strtol(__xtrc, &__sanity, __base);
+      double __d = strtod(__xtrc, &__sanity);
       if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
-          && __l >= SHRT_MIN && __l <= SHRT_MAX)
-        __v = static_cast<short>(__l);
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+        __v = __d;
       else
         __err |= ios_base::failbit;
 
@@ -767,63 +477,63 @@ namespace std
     _InIter
     num_get<_CharT, _InIter>::
     do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, int& __v) const
+           ios_base::iostate& __err, long double& __v) const
     {
       // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32] = {'\0'};
+      // Assuming leading zeros eliminated, thus the size of 256 for
+      // floating-point types.
+      char __xtrc[32]= {'\0'};
       int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
+      _M_extract(__beg, __end, __io, __err, __xtrc, __base, true);
 
+#if defined(_GLIBCPP_USE_C99) && !defined(__hpux)
       // Stage 2: convert and store results.
       char* __sanity;
       errno = 0;
-      long __l = strtol(__xtrc, &__sanity, __base);
+      long double __ld = strtold(__xtrc, &__sanity);
       if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
-          && __l >= INT_MIN && __l <= INT_MAX)
-        __v = static_cast<int>(__l);
+          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
+        __v = __ld;
+#else
+      // Stage 2: determine a conversion specifier.
+      ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield;
+      const char* __conv;
+      if (__basefield == ios_base::oct)
+        __conv = "%Lo";
+      else if (__basefield == ios_base::hex)
+        __conv = "%LX";
+      else if (__basefield == 0)
+        __conv = "%Li";
       else
-        __err |= ios_base::failbit;
+        __conv = "%Lf";
 
-      return __beg;
-    }
+      // Stage 3: store results.
+      typedef typename __traits_type::int_type int_type;
+      long double __ld;
+      int __p = sscanf(__xtrc, __conv, &__ld);
+      if (!(__err & ios_base::failbit) && __p 
+         && static_cast<int_type>(__p) != __traits_type::eof())
+        __v = __ld;
 #endif
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, long& __v) const
-    {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
-
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      long __l = strtol(__xtrc, &__sanity, __base);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __l;
       else
         __err |= ios_base::failbit;
 
       return __beg;
     }
 
-#ifdef _GLIBCPP_USE_LONG_LONG
   template<typename _CharT, typename _InIter>
     _InIter
     num_get<_CharT, _InIter>::
     do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, long long& __v) const
+           ios_base::iostate& __err, void*& __v) const
     {
+      // Prepare for hex formatted input
+      typedef ios_base::fmtflags        fmtflags;
+      fmtflags __fmt = __io.flags();
+      fmtflags __fmtmask = ~(ios_base::showpos | ios_base::basefield
+                             | ios_base::uppercase | ios_base::internal);
+      __io.flags(__fmt & __fmtmask | (ios_base::hex | ios_base::showbase));
+
       // Stage 1: extract and determine the conversion specifier.
       // Assuming leading zeros eliminated, thus the size of 32 for
       // integral types.
@@ -834,303 +544,57 @@ namespace std
       // Stage 2: convert and store results.
       char* __sanity;
       errno = 0;
-      long long __ll = strtoll(__xtrc, &__sanity, __base);
+      void* __vp = reinterpret_cast<void*>(strtoul(__xtrc, &__sanity, __base));
       if (!(__err & ios_base::failbit)
           && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __ll;
+        __v = __vp;
       else
         __err |= ios_base::failbit;
 
+      // Reset from hex formatted input
+      __io.flags(__fmt);
       return __beg;
     }
-#endif
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, unsigned short& __v) const
-    {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
 
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      unsigned long __ul = strtoul(__xtrc, &__sanity, __base);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
-          && __ul <= USHRT_MAX)
-        __v = static_cast<unsigned short>(__ul);
-      else
-        __err |= ios_base::failbit;
+  // __pad is specialized for ostreambuf_iterator, random access iterator.
+  template<typename _CharT, typename _OutIter>
+    inline _OutIter
+    __pad(_OutIter __s, _CharT __fill, int __padding);
 
-      return __beg;
+  template<typename _CharT, typename _RaIter>
+    _RaIter
+    __pad(_RaIter __s, _CharT __fill, int __padding, 
+         random_access_iterator_tag)
+    {
+      fill_n(__s, __fill);
+      return __s + __padding;
     }
 
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, unsigned int& __v) const
+  template<typename _CharT, typename _OutIter, typename _Tag>
+    _OutIter
+    __pad(_OutIter __s, _CharT __fill, int __padding, _Tag)
     {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
-
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      unsigned long __ul = strtoul(__xtrc, &__sanity, __base);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0
-          && __ul <= UINT_MAX)
-        __v = static_cast<unsigned int>(__ul);
-      else
-        __err |= ios_base::failbit;
-
-      return __beg;
+      while (--__padding >= 0) { *__s = __fill; ++__s; }
+      return __s;
     }
 
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, unsigned long& __v) const
+  template<typename _CharT, typename _OutIter>
+    inline _OutIter
+    __pad(_OutIter __s, _CharT __fill, int __padding)
     {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32] = {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
-
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      unsigned long __ul = strtoul(__xtrc, &__sanity, __base);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __ul;
-      else
-        __err |= ios_base::failbit;
+      return __pad(__s, __fill, __padding, 
+                  typename iterator_traits<_OutIter>::iterator_category());
+    }
 
-      return __beg;
-    }
-
-#ifdef _GLIBCPP_USE_LONG_LONG
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, unsigned long long& __v) const
-    {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
-
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      unsigned long long __ull = strtoull(__xtrc, &__sanity, __base);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __ull;
-      else
-        __err |= ios_base::failbit;
-
-      return __beg;
-    }
-#endif
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, float& __v) const
-    {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 256 for
-      // floating-point types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, true);
-
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-#ifdef _GLIBCPP_USE_C99
-      float __f = strtof(__xtrc, &__sanity);
-#else
-      float __f = static_cast<float>(strtod(__xtrc, &__sanity));
-#endif
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __f;
-      else
-        __err |= ios_base::failbit;
-
-      return __beg;
-    }
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, double& __v) const
-    {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 256 for
-      // floating-point types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, true);
-
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      double __d = strtod(__xtrc, &__sanity);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __d;
-      else
-        __err |= ios_base::failbit;
-
-      return __beg;
-    }
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, long double& __v) const
-    {
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 256 for
-      // floating-point types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, true);
-
-#if defined(_GLIBCPP_USE_C99) && !defined(__hpux)
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      long double __ld = strtold(__xtrc, &__sanity);
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __ld;
-#else
-      // Stage 2: determine a conversion specifier.
-      ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield;
-      const char* __conv;
-      if (__basefield == ios_base::oct)
-        __conv = "%Lo";
-      else if (__basefield == ios_base::hex)
-        __conv = "%LX";
-      else if (__basefield == 0)
-        __conv = "%Li";
-      else
-        __conv = "%Lf";
-
-      // Stage 3: store results.
-      typedef typename __traits_type::int_type int_type;
-      long double __ld;
-      int __p = sscanf(__xtrc, __conv, &__ld);
-      if (!(__err & ios_base::failbit) && __p 
-         && static_cast<int_type>(__p) != __traits_type::eof())
-        __v = __ld;
-#endif
-      else
-        __err |= ios_base::failbit;
-
-      return __beg;
-    }
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    num_get<_CharT, _InIter>::
-    do_get(iter_type __beg, iter_type __end, ios_base& __io,
-           ios_base::iostate& __err, void*& __v) const
-    {
-      // Prepare for hex formatted input
-      typedef ios_base::fmtflags        fmtflags;
-      fmtflags __fmt = __io.flags();
-      fmtflags __fmtmask = ~(ios_base::showpos | ios_base::basefield
-                             | ios_base::uppercase | ios_base::internal);
-      __io.flags(__fmt & __fmtmask | (ios_base::hex | ios_base::showbase));
-
-      // Stage 1: extract and determine the conversion specifier.
-      // Assuming leading zeros eliminated, thus the size of 32 for
-      // integral types.
-      char __xtrc[32]= {'\0'};
-      int __base;
-      _M_extract(__beg, __end, __io, __err, __xtrc, __base, false);
-
-      // Stage 2: convert and store results.
-      char* __sanity;
-      errno = 0;
-      void* __vp = reinterpret_cast<void*>(strtoul(__xtrc, &__sanity, __base));
-      if (!(__err & ios_base::failbit)
-          && __sanity != __xtrc && *__sanity == '\0' && errno == 0)
-        __v = __vp;
-      else
-        __err |= ios_base::failbit;
-
-      // Reset from hex formatted input
-      __io.flags(__fmt);
-      return __beg;
-    }
-
-  // __pad is specialized for ostreambuf_iterator, random access iterator.
-  template<typename _CharT, typename _OutIter>
-    inline _OutIter
-    __pad(_OutIter __s, _CharT __fill, int __padding);
-
-  template<typename _CharT, typename _RaIter>
-    _RaIter
-    __pad(_RaIter __s, _CharT __fill, int __padding, 
-         random_access_iterator_tag)
-    {
-      fill_n(__s, __fill);
-      return __s + __padding;
-    }
-
-  template<typename _CharT, typename _OutIter, typename _Tag>
-    _OutIter
-    __pad(_OutIter __s, _CharT __fill, int __padding, _Tag)
-    {
-      while (--__padding >= 0) { *__s = __fill; ++__s; }
-      return __s;
-    }
-
-  template<typename _CharT, typename _OutIter>
-    inline _OutIter
-    __pad(_OutIter __s, _CharT __fill, int __padding)
-    {
-      return __pad(__s, __fill, __padding, 
-                  typename iterator_traits<_OutIter>::iterator_category());
-    }
-
-  template<typename _CharT, typename _OutIter>
-    _OutIter
-    __pad_numeric(_OutIter __s, ios_base::fmtflags /*__flags*/,
-                 _CharT /*__fill*/, int /*__width*/, 
-                 _CharT const* /*__first*/, _CharT const* /*__middle*/, 
-                 _CharT const* /*__last*/)
-  {
-      // XXX Not currently done: non streambuf_iterator
-      return __s;
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    __pad_numeric(_OutIter __s, ios_base::fmtflags /*__flags*/,
+                 _CharT /*__fill*/, int /*__width*/, 
+                 _CharT const* /*__first*/, _CharT const* /*__middle*/, 
+                 _CharT const* /*__last*/)
+  {
+      // XXX Not currently done: non streambuf_iterator
+      return __s;
     }
 
   // Partial specialization for ostreambuf_iterator.
@@ -1203,322 +667,966 @@ namespace std
       return __s;
     }
 
-  // Check to make sure that the __grouping_tmp string constructed in
-  // money_get or num_get matches the canonical grouping for a given
-  // locale.
-  // __grouping_tmp is parsed L to R
-  // 1,222,444 == __grouping_tmp of "/1/3/3"
-  // __grouping is parsed R to L
-  // 1,222,444 == __grouping of "/3" == "/3/3/3"
-  template<typename _CharT>
-    bool
-    __verify_grouping(const basic_string<_CharT>& __grouping, 
-                     basic_string<_CharT>& __grouping_tmp)
-    {         
-      int __i = 0;
-      int __j = 0;
-      const int __len = __grouping.size();
-      const int __n = __grouping_tmp.size();
-      bool __test = true;
-      
-      // Parsed number groupings have to match the
-      // numpunct::grouping string exactly, starting at the
-      // right-most point of the parsed sequence of elements ...
-      while (__test && __i < __n - 1)
-       for (__j = 0; __test && __j < __len && __i < __n - 1; ++__j,++__i)
-         __test &= __grouping[__j] == __grouping_tmp[__n - __i - 1];
-      // ... but the last parsed grouping can be <= numpunct
-      // grouping.
-      __j == __len ? __j = 0 : __j;
-      __test &= __grouping[__j] >= __grouping_tmp[__n - __i - 1];
-      return __test;
+  template<typename _CharT, typename _OutIter, typename _ValueT>
+    _OutIter
+    __output_integer(_OutIter __s, ios_base& __io, _CharT __fill, bool __neg,
+                    _ValueT __v)
+    {
+      // Leave room for "+/-," "0x," and commas. This size is
+      // arbitrary, but should work.
+      const int __n = numeric_limits<_ValueT>::digits10 * 2 + 4;
+      _CharT* __digits = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
+      _CharT* __digits_end = __digits + __n;
+      ios_base::fmtflags __flags = __io.flags();
+      const _Format_cache<_CharT>* __fmt = _Format_cache<_CharT>::_S_get(__io);
+      char const* __table = __fmt->_S_literals + __fmt->_S_digits;
+
+      ios_base::fmtflags __basefield = (__flags & __io.basefield);
+      _CharT* __sign_end = __digits_end;
+      if (__basefield == ios_base::hex)
+        {
+          if (__flags & ios_base::uppercase)
+            __table += 16;  // use ABCDEF
+          do
+            *--__digits_end = __table[__v & 15];
+          while ((__v >>= 4) != 0);
+          __sign_end = __digits_end;
+          if (__flags & ios_base::showbase)
+            {
+              *--__digits_end = __fmt->_S_literals[__fmt->_S_x +
+                       ((__flags & ios_base::uppercase) ? 1 : 0)];
+              *--__digits_end = __table[0];
+            }
+        }
+      else if (__basefield == ios_base::oct)
+        {
+          do
+            *--__digits_end = __table[__v & 7];
+          while ((__v >>= 3) != 0);
+          if (__flags & ios_base::showbase
+              && static_cast<char>(*__digits_end) != __table[0])
+            *--__digits_end = __table[0];
+          __sign_end = __digits_end;
+        }
+      else
+        {
+          // NB: This is _lots_ faster than using ldiv.
+          do
+            *--__digits_end = __table[__v % 10];
+          while ((__v /= 10) != 0);
+          __sign_end = __digits_end;
+          // NB: ios_base:hex || ios_base::oct assumed to be unsigned.
+          if (__neg || (__flags & ios_base::showpos))
+            *--__digits_end = __fmt->_S_literals[__fmt->_S_plus - __neg];
+        }
+
+      // XXX should specialize!
+      if (!__fmt->_M_use_grouping && !__io.width())
+        return copy(__digits_end, __digits + __n, __s);
+
+      if (!__fmt->_M_use_grouping)
+        return __pad_numeric(__s, __flags, __fill, __io.width(0),
+                            __digits_end, __sign_end, __digits + __n);
+
+      _CharT* __p = __digits;
+      while (__digits_end < __sign_end)
+        *__p++ = *__digits_end++;
+      const char* __gbeg = __fmt->_M_grouping.data();
+      const char* __gend = __gbeg + __fmt->_M_grouping.size();
+      __digits_end = __group_digits(__p, __fmt->_M_thousands_sep, 
+                                   __gbeg, __gend,
+                                   __sign_end, __digits + __n);
+      return __pad_numeric(__s, __flags, __fill, __io.width(0),
+                          __digits, __p, __digits_end);
+    }
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    num_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
+    {
+      unsigned long __uv = __v;
+      bool __neg = false;
+      if (__v < 0)
+        {
+          __neg = true;
+          __uv = -__uv;
+        }
+      return __output_integer(__s, __io, __fill, __neg, __uv);
+    }
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    num_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __io, char_type __fill,
+           unsigned long __v) const
+    { return __output_integer(__s, __io, __fill, false, __v); }
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    num_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __b, char_type __fill, long long __v) const
+    {
+      unsigned long long __uv = __v;
+      bool __neg = false;
+      if (__v < 0)
+        {
+          __neg = true;
+          __uv = -__uv;
+        }
+      return __output_integer(__s, __b, __fill, __neg, __uv);
+    }
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    num_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __io, char_type __fill,
+           unsigned long long __v) const
+    { return __output_integer(__s, __io, __fill, false, __v); }
+#endif
+
+  // Generic helper function
+  template<typename _CharT, typename _Traits, typename _OutIter>
+    _OutIter
+    __output_float(_OutIter __s, ios_base& __io, _CharT __fill,
+                    const char* __sptr, size_t __slen)
+    {
+      // XXX Not currently done: non-streambuf_iterator
+      return __s;
+    }
+
+  // Partial specialization for ostreambuf_iterator.
+  template<typename _CharT, typename _Traits>
+    ostreambuf_iterator<_CharT, _Traits>
+    __output_float(ostreambuf_iterator<_CharT, _Traits> __s, ios_base& __io, 
+                  _CharT __fill, const char* __sptr, size_t __slen)
+    {
+      size_t __padding = __io.width() > streamsize(__slen) ?
+                         __io.width() -__slen : 0;
+      locale __loc = __io.getloc();
+      ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
+      ios_base::fmtflags __adjfield = __io.flags() & ios_base::adjustfield;
+      const char* const __eptr = __sptr + __slen;
+      // [22.2.2.2.2.19] Table 61
+      if (__adjfield == ios_base::internal)
+       {
+         // [22.2.2.2.2.14]; widen()
+         if (__sptr < __eptr && (*__sptr == '+' || *__sptr == '-'))
+           {
+             __s = __ctype.widen(*__sptr);
+             ++__s;
+             ++__sptr;
+           }
+         __s = __pad(__s, __fill, __padding);
+         __padding = 0;
+       }
+      else if (__adjfield != ios_base::left)
+        {
+          __s = __pad(__s, __fill, __padding);
+          __padding = 0;
+        }
+      // the "C" locale decimal character
+      char __decimal_point = *(localeconv()->decimal_point);
+      const _Format_cache<_CharT>* __fmt = _Format_cache<_CharT>::_S_get(__io);
+      for (; __sptr != __eptr; ++__s, ++__sptr)
+       {
+         // [22.2.2.2.2.17]; decimal point conversion
+         if (*__sptr == __decimal_point)
+           __s = __fmt->_M_decimal_point;
+         // [22.2.2.2.2.14]; widen()
+         else
+           __s = __ctype.widen(*__sptr);
+       }
+      // [22.2.2.2.2.19] Table 61
+      if (__padding)
+        __pad(__s, __fill, __padding);
+      __io.width(0);
+      return __s;
+    }
+
+  bool
+  __build_float_format(ios_base& __io, char* __fptr, char __modifier,
+                      streamsize __prec);
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    num_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
+    {
+      const streamsize __max_prec = numeric_limits<double>::digits10 + 3;
+      streamsize __prec = __io.precision();
+      // Protect against sprintf() buffer overflows.
+      if (__prec > __max_prec)
+        __prec = __max_prec;
+      // The *2 provides for signs, exp, 'E', and pad.
+      char __sbuf[__max_prec * 2];
+      size_t __slen;
+      // Long enough for the max format spec.
+      char __fbuf[16];
+      if (__build_float_format(__io, __fbuf, 0, __prec))
+        __slen = sprintf(__sbuf, __fbuf, __prec, __v);
+      else
+        __slen = sprintf(__sbuf, __fbuf, __v);
+      // [22.2.2.2.2] Stages 2-4.
+      return __output_float(__s, __io, __fill, __sbuf, __slen);
+    }
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    num_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __io, char_type __fill,
+           long double __v) const
+    {
+      const streamsize __max_prec = numeric_limits<long double>::digits10 + 3;
+      streamsize __prec = __io.precision();
+      // Protect against sprintf() buffer overflows.
+      if (__prec > __max_prec)
+        __prec = __max_prec;
+      // The *2 provides for signs, exp, 'E', and pad.
+      char __sbuf[__max_prec * 2];
+      size_t __slen;
+      // Long enough for the max format spec.
+      char __fbuf[16];
+      // 'L' as per [22.2.2.2.2] Table 59
+      if (__build_float_format(__io, __fbuf, 'L', __prec))
+        __slen = sprintf(__sbuf, __fbuf, __prec, __v);
+      else
+        __slen = sprintf(__sbuf, __fbuf, __v);
+      // [22.2.2.2.2] Stages 2-4
+      return __output_float(__s, __io, __fill, __sbuf, __slen);
+    }
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    num_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __io, char_type __fill,
+           const void* __v) const
+    {
+      typedef ios_base::fmtflags        fmtflags;
+      fmtflags __fmt = __io.flags();
+      fmtflags __fmtmask = ~(ios_base::showpos | ios_base::basefield
+                             | ios_base::uppercase | ios_base::internal);
+      __io.flags(__fmt & __fmtmask | (ios_base::hex | ios_base::showbase));
+      try {
+        _OutIter __s2 = __output_integer(__s, __io, __fill, false,
+                                  reinterpret_cast<unsigned long>(__v));
+        __io.flags(__fmt);
+        return __s2;
+      }
+      catch (...) {
+        __io.flags(__fmt);
+        __throw_exception_again;
+      }
+    }
+
+
+  template<typename _CharT, typename _InIter>
+    _InIter
+    money_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 
+          ios_base::iostate& __err, long double& __units) const
+    { 
+      string_type __str;
+      this->do_get(__beg, __end, __intl, __io, __err, __str); 
+
+      const int __n = numeric_limits<long double>::digits10;
+      char* __cs = static_cast<char*>(__builtin_alloca(sizeof(char) * __n));
+      const locale __loc = __io.getloc();
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
+      const _CharT* __wcs = __str.c_str();
+      __ctype.narrow(__wcs, __wcs + __str.size() + 1, char(), __cs);      
+
+#if defined(_GLIBCPP_USE_C99) && !defined(__hpux)
+      char* __sanity;
+      errno = 0;
+      long double __ld = strtold(__cs, &__sanity);
+      if (!(__err & ios_base::failbit)
+          && __sanity != __cs && *__sanity == '\0' && errno == 0)
+        __units = __ld;
+#else
+      typedef typename char_traits<_CharT>::int_type int_type;
+      long double __ld;
+      int __p = sscanf(__cs, "%Lf", &__ld);
+      if (!(__err & ios_base::failbit)
+         && __p && static_cast<int_type>(__p) != char_traits<_CharT>::eof())
+        __units = __ld;
+#endif
+      return __beg;
+    }
+
+  template<typename _CharT, typename _InIter>
+    _InIter
+    money_get<_CharT, _InIter>::
+    do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 
+          ios_base::iostate& __err, string_type& __units) const
+    { 
+      // These contortions are quite unfortunate.
+      typedef moneypunct<_CharT, true>                 __money_true;
+      typedef moneypunct<_CharT, false>        __money_false;
+      typedef money_base::part                         part;
+      typedef typename string_type::size_type  size_type;
+
+      const locale __loc = __io.getloc();
+      const __money_true& __mpt = use_facet<__money_true>(__loc); 
+      const __money_false& __mpf = use_facet<__money_false>(__loc); 
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
+
+      const money_base::pattern __p = __intl ? __mpt.neg_format() 
+                                            : __mpf.neg_format();
+
+      const string_type __pos_sign =__intl ? __mpt.positive_sign() 
+                                          : __mpf.positive_sign();
+      const string_type __neg_sign =__intl ? __mpt.negative_sign() 
+                                          : __mpf.negative_sign();
+      const char_type __d = __intl ? __mpt.decimal_point() 
+                                  : __mpf.decimal_point();
+      const char_type __sep = __intl ? __mpt.thousands_sep() 
+                                    : __mpf.thousands_sep();
+
+      const string __grouping = __intl ? __mpt.grouping() : __mpf.grouping();
+
+      // Set to deduced positive or negative sign, depending.
+      string_type __sign;
+      // String of grouping info from thousands_sep plucked from __units.
+      string __grouping_tmp; 
+      // Marker for thousands_sep position.
+      int __sep_pos = 0;
+      // If input iterator is in a valid state.
+      bool __testvalid = true;
+      // Flag marking when a decimal point is found.
+      bool __testdecfound = false; 
+
+      char_type __c = *__beg;
+      char_type __eof = static_cast<char_type>(char_traits<char_type>::eof());
+      for (int __i = 0; __beg != __end && __i < 4 && __testvalid; ++__i)
+       {
+         part __which = static_cast<part>(__p.field[__i]);
+         switch (__which)
+               {
+               case money_base::symbol:
+                 if (__io.flags() & ios_base::showbase)
+                   {
+                     // Symbol is required.
+                     const string_type __symbol = __intl ? __mpt.curr_symbol()
+                                                        : __mpf.curr_symbol();
+                     size_type __len = __symbol.size();
+                     size_type __i = 0;
+                     while (__beg != __end 
+                            && __i < __len && __symbol[__i] == __c)
+                       {
+                         __c = *(++__beg);
+                         ++__i;
+                       }
+                     if (__i != __len)
+                       __testvalid = false;
+                   }
+                 break;
+               case money_base::sign:              
+                 // Sign might not exist, or be more than one character long. 
+                 if (__pos_sign.size() && __neg_sign.size())
+                 {
+                   // Sign is mandatory.
+                   if (__c == __pos_sign[0])
+                     {
+                       __sign = __pos_sign;
+                       __c = *(++__beg);
+                     }
+                   else if (__c == __neg_sign[0])
+                     {
+                       __sign = __neg_sign;
+                       __c = *(++__beg);
+                     }
+                   else
+                     __testvalid = false;
+                 }
+                 else if (__pos_sign.size() && __c == __pos_sign[0])
+                   {
+                     __sign = __pos_sign;
+                     __c = *(++__beg);
+                   }
+                 else if (__neg_sign.size() && __c == __neg_sign[0])
+                   {
+                     __sign = __neg_sign;
+                     __c = *(++__beg);
+                   }
+                 break;
+               case money_base::value:
+                 // Extract digits, remove and stash away the
+                 // grouping of found thousands separators.
+                 while (__beg != __end 
+                        && (__ctype.is(ctype_base::digit, __c) 
+                            || (__c == __d && !__testdecfound)
+                            || __c == __sep))
+                   {
+                     if (__c == __d)
+                       {
+                         __grouping_tmp += static_cast<char>(__sep_pos);
+                         __sep_pos = 0;
+                         __testdecfound = true;
+                       }
+                     else if (__c == __sep)
+                       {
+                         if (__grouping.size())
+                           {
+                             // Mark position for later analysis.
+                             __grouping_tmp += static_cast<char>(__sep_pos);
+                             __sep_pos = 0;
+                           }
+                         else
+                           {
+                             __testvalid = false;
+                             break;
+                           }
+                       }
+                     else
+                       {
+                         __units += __c;
+                         ++__sep_pos;
+                       }
+                     __c = *(++__beg);
+                   }
+                 break;
+               case money_base::space:
+               case money_base::none:
+                 // Only if not at the end of the pattern.
+                 if (__i != 3)
+                   while (__beg != __end 
+                          && __ctype.is(ctype_base::space, __c))
+                     __c = *(++__beg);
+                 break;
+               }
+       }
+
+      // Need to get the rest of the sign characters, if they exist.
+      if (__sign.size() > 1)
+       {
+         size_type __len = __sign.size();
+         size_type __i = 1;
+         for (; __c != __eof && __i < __len; ++__i)
+           while (__beg != __end && __c != __sign[__i])
+             __c = *(++__beg);
+         
+         if (__i != __len)
+           __testvalid = false;
+       }
+
+      // Strip leading zeros.
+      while (__units[0] == __ctype.widen('0'))
+       __units.erase(__units.begin());
+
+      if (__sign == __neg_sign)
+       __units.insert(__units.begin(), __ctype.widen('-'));
+
+      // Test for grouping fidelity.
+      if (__grouping.size() && __grouping_tmp.size())
+       {
+         if (!__verify_grouping(__grouping, __grouping_tmp))
+           __testvalid = false;
+       }
+
+      // Iff no more characters are available.      
+      if (__c == __eof)
+       __err |= ios_base::eofbit;
+
+      // Iff valid sequence is not recognized.
+      if (!__testvalid || !__units.size())
+       __err |= ios_base::failbit;
+
+      return __beg; 
+    }
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    money_put<_CharT, _OutIter>::
+    do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
+          long double __units) const
+    { 
+      const locale __loc = __io.getloc();
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
+      const int __n = numeric_limits<long double>::digits10;
+      char* __cs = static_cast<char*>(__builtin_alloca(sizeof(char) * __n));
+      _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
+      int __len = sprintf(__cs, "%.01Lf", __units);
+      __ctype.widen(__cs, __cs + __len, __ws);
+      string_type __digits(__ws);
+      return this->do_put(__s, __intl, __io, __fill, __digits); 
+    }
+
+  template<typename _CharT, typename _OutIter>
+    _OutIter
+    money_put<_CharT, _OutIter>::
+    do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
+          const string_type& __digits) const
+    { 
+      typedef typename string_type::size_type  size_type;
+      typedef money_base::part                         part;
+
+      const locale __loc = __io.getloc();
+      const size_type __width = static_cast<size_type>(__io.width());
+
+      // These contortions are quite unfortunate.
+      typedef moneypunct<_CharT, true> __money_true;
+      typedef moneypunct<_CharT, false> __money_false;
+      const __money_true& __mpt = use_facet<__money_true>(__loc); 
+      const __money_false& __mpf = use_facet<__money_false>(__loc); 
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
+
+      // Determine if negative or positive formats are to be used, and
+      // discard leading negative_sign if it is present.
+      const char_type* __beg = __digits.data();
+      const char_type* __end = __beg + __digits.size();
+      money_base::pattern __p;
+      string_type __sign;
+      if (*__beg != __ctype.widen('-'))
+       {
+         __p = __intl ? __mpt.pos_format() : __mpf.pos_format();
+         __sign =__intl ? __mpt.positive_sign() : __mpf.positive_sign();
+       }
+      else
+       {
+         __p = __intl ? __mpt.neg_format() : __mpf.neg_format();
+         __sign =__intl ? __mpt.negative_sign() : __mpf.negative_sign();
+         ++__beg;
+       }
+      
+      // Look for valid numbers in the current ctype facet within input digits.
+      __end = __ctype.scan_not(ctype_base::digit, __beg, __end);
+      if (__beg != __end)
+       {
+         // Assume valid input, and attempt to format.
+         // Break down input numbers into base components, as follows:
+         //   final_value = grouped units + (decimal point) + (digits)
+         string_type __res;
+         string_type __value;
+         const string_type __symbol = __intl ? __mpt.curr_symbol() 
+                                             : __mpf.curr_symbol();
+
+         // Deal with decimal point, decimal digits.
+         const int __frac = __intl ? __mpt.frac_digits() 
+                                   : __mpf.frac_digits();
+         if (__frac > 0)
+           {
+             const char_type __d = __intl ? __mpt.decimal_point() 
+                                          : __mpf.decimal_point();
+             if (__end - __beg >= __frac)
+               {
+                 __value = string_type(__end - __frac, __end);
+                 __value.insert(__value.begin(), __d);
+                 __end -= __frac;
+               }
+             else
+               {
+                 // Have to pad zeros in the decimal position.
+                 __value = string_type(__beg, __end);
+                 int __paddec = __frac - (__end - __beg);
+                 char_type __zero = __ctype.widen('0');
+                 __value.insert(__value.begin(), __paddec, __zero);
+                 __value.insert(__value.begin(), __d);
+                 __beg = __end;
+               }
+           }
+
+         // Add thousands separators to non-decimal digits, per
+         // grouping rules.
+         if (__beg != __end)
+           {
+             const string __grouping = __intl ? __mpt.grouping() 
+                                              : __mpf.grouping();
+             if (__grouping.size())
+               {
+                 const char_type __sep = __intl ? __mpt.thousands_sep() 
+                                                : __mpf.thousands_sep();
+                 const char* __gbeg = __grouping.data();
+                 const char* __gend = __gbeg + __grouping.size();
+                 const int __n = numeric_limits<long double>::digits10 * 2;
+                 _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
+                 _CharT* __s_end = __group_digits(__s, __sep, __gbeg, 
+                                                  __gend, __beg, __end);
+                 __value.insert(0, __s, __s_end - __s);
+               }
+             else
+               __value.insert(0, string_type(__beg, __end));
+           }
+
+         // Calculate length of resulting string.
+         ios_base::fmtflags __f = __io.flags() & ios_base::adjustfield;
+         size_type __len = __value.size() + __sign.size();
+         __len += (__io.flags() & ios_base::showbase) ? __symbol.size() : 0;
+         bool __testipad = __f == ios_base::internal && __len < __width;
+
+         // Fit formatted digits into the required pattern.
+         for (int __i = 0; __i < 4; ++__i)
+           {
+             part __which = static_cast<part>(__p.field[__i]);
+             switch (__which)
+               {
+               case money_base::symbol:
+                 if (__io.flags() & ios_base::showbase)
+                   __res += __symbol;
+                 break;
+               case money_base::sign:              
+                 // Sign might not exist, or be more than one
+                 // charater long. In that case, add in the rest
+                 // below.
+                 if (__sign.size())
+                   __res += __sign[0];
+                 break;
+               case money_base::value:
+                 __res += __value;
+                 break;
+               case money_base::space:
+                 // At least one space is required, but if internal
+                 // formatting is required, an arbitrary number of
+                 // fill spaces will be necessary.
+                 if (__testipad)
+                   __res += string_type(__width - __len, __fill);
+                 else
+                   __res += __ctype.widen(' ');
+                 break;
+               case money_base::none:
+                 if (__testipad)
+                   __res += string_type(__width - __len, __fill);
+                 break;
+               }
+           }
+
+         // Special case of multi-part sign parts.
+         if (__sign.size() > 1)
+           __res += string_type(__sign.begin() + 1, __sign.end());
+
+         // Pad, if still necessary.
+         __len = __res.size();
+         if (__width > __len)
+           {
+             if (__f == ios_base::left)
+               // After.
+               __res.append(__width - __len, __fill);
+             else
+               // Before.
+               __res.insert(0, string_type(__width - __len, __fill));
+             __len = __width;
+           }
+
+         // Write resulting, fully-formatted string to output iterator.
+         for (size_type __j = 0; __j < __len; ++__j)
+           __s = __res[__j];
+       }
+      __io.width(0);
+      return __s; 
     }
 
-  // Inserts "group separator" characters into an array of characters.
-  // It's recursive, one iteration per group.  It moves the characters
-  // in the buffer this way: "xxxx12345" -> "12,345xxx".  Call this
-  // only with __gbeg != __gend.
-  template<typename _CharT>
-    _CharT*
-    __group_digits(_CharT* __s, _CharT __sep,  
-                  const char* __gbeg, const char* __gend, 
-                  const _CharT* __first, const _CharT* __last)
+
+  // NB: Not especially useful. Without an ios_base object or some
+  // kind of locale reference, we are left clawing at the air where
+  // the side of the mountain used to be...
+  template<typename _CharT, typename _InIter>
+    time_base::dateorder
+    time_get<_CharT, _InIter>::do_date_order() const
+    { return time_base::no_order; }
+
+  template<typename _CharT, typename _InIter>
+    void
+    time_get<_CharT, _InIter>::
+    _M_extract_time(iter_type& __beg, iter_type& __end, int& __member,
+                   int __min, int __max, const char_type __sep, 
+                   bool __extract, const ctype<_CharT>& __ctype, 
+                   ios_base::iostate& __err) const
     {
-      if (__last - __first > *__gbeg)
-        {
-          __s = __group_digits(__s,  __sep,
-                              (__gbeg + 1 == __gend ? __gbeg : __gbeg + 1),
-                              __gend, __first, __last - *__gbeg);
-          __first = __last - *__gbeg;
-          *__s++ = __sep;
-        }
-      do
-        {
-          *__s++ = *__first++;
-        }
-      while (__first != __last);
-      return __s;
+      if (__err == ios_base::goodbit)
+       {
+         size_t __i = 0;
+         string __digits;
+         bool __testvalid = true;
+         const ctype_base::mask __digit = ctype_base::digit;
+         char_type __c = *__beg;
+         for (;__beg != __end && __ctype.is(__digit, __c) && __i < 2; ++__i)
+           {
+             __digits += __ctype.narrow(__c, 0);
+             __c = *(++__beg);
+           }
+         if (__i == 2)
+           {
+             int __value = atoi(__digits.c_str());
+             if (__min <= __value && __value <= __max)
+               __member = __value;
+             else
+               __testvalid = false;
+           }
+         else
+           __testvalid = false;
+         
+         // Extract and discard separator.
+         if (__extract && __testvalid)
+           {
+             if (__c == __sep)
+               ++__beg;
+             else
+               __testvalid = false;
+           }
+         if (!__testvalid)
+           __err |= ios_base::failbit;
+       }
     }
 
-  template<typename _CharT, typename _OutIter, typename _ValueT>
-    _OutIter
-    __output_integer(_OutIter __s, ios_base& __io, _CharT __fill, bool __neg,
-                    _ValueT __v)
+  // Assumptions:
+  // All elements in __names are unique.
+  template<typename _CharT, typename _InIter>
+    void
+    time_get<_CharT, _InIter>::
+    _M_extract_name(iter_type& __beg, iter_type& __end, int& __member,
+                   const _CharT** __names, size_t __indexlen, 
+                   ios_base::iostate& __err) const
     {
-      // Leave room for "+/-," "0x," and commas. This size is
-      // arbitrary, but should work.
-      const int __n = numeric_limits<_ValueT>::digits10 * 2 + 4;
-      _CharT* __digits = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
-      _CharT* __digits_end = __digits + __n;
-      ios_base::fmtflags __flags = __io.flags();
-      const _Format_cache<_CharT>* __fmt = _Format_cache<_CharT>::_S_get(__io);
-      char const* __table = __fmt->_S_literals + __fmt->_S_digits;
-
-      ios_base::fmtflags __basefield = (__flags & __io.basefield);
-      _CharT* __sign_end = __digits_end;
-      if (__basefield == ios_base::hex)
-        {
-          if (__flags & ios_base::uppercase)
-            __table += 16;  // use ABCDEF
-          do
-            *--__digits_end = __table[__v & 15];
-          while ((__v >>= 4) != 0);
-          __sign_end = __digits_end;
-          if (__flags & ios_base::showbase)
-            {
-              *--__digits_end = __fmt->_S_literals[__fmt->_S_x +
-                       ((__flags & ios_base::uppercase) ? 1 : 0)];
-              *--__digits_end = __table[0];
-            }
-        }
-      else if (__basefield == ios_base::oct)
-        {
-          do
-            *--__digits_end = __table[__v & 7];
-          while ((__v >>= 3) != 0);
-          if (__flags & ios_base::showbase
-              && static_cast<char>(*__digits_end) != __table[0])
-            *--__digits_end = __table[0];
-          __sign_end = __digits_end;
-        }
-      else
-        {
-          // NB: This is _lots_ faster than using ldiv.
-          do
-            *--__digits_end = __table[__v % 10];
-          while ((__v /= 10) != 0);
-          __sign_end = __digits_end;
-          // NB: ios_base:hex || ios_base::oct assumed to be unsigned.
-          if (__neg || (__flags & ios_base::showpos))
-            *--__digits_end = __fmt->_S_literals[__fmt->_S_plus - __neg];
-        }
-
-      // XXX should specialize!
-      if (!__fmt->_M_use_grouping && !__io.width())
-        return copy(__digits_end, __digits + __n, __s);
+      typedef char_traits<char_type> __traits_type;
+      int __matches[__indexlen];
+      size_t __nmatches = 0;
+      size_t __pos = 0;
+      bool __testvalid = true;
+      const char_type* __name;
 
-      if (!__fmt->_M_use_grouping)
-        return __pad_numeric(__s, __flags, __fill, __io.width(0),
-                            __digits_end, __sign_end, __digits + __n);
+      char_type __c = *__beg;
+      // Look for initial matches.
+      for (size_t __i1 = 0; __i1 < __indexlen; ++__i1)
+       if (__c == __names[__i1][0])
+         __matches[__nmatches++] = __i1;
+      
+      while(__nmatches > 1)
+       {
+         // Find smallest matching string.
+         size_t __minlen = 10;
+         for (size_t __i2 = 0; __i2 < __nmatches; ++__i2)
+           __minlen = min(__minlen, 
+                          __traits_type::length(__names[__matches[__i2]]));
+         
+         if (__pos < __minlen && __beg != __end)
+           {
+             ++__pos;
+             __c = *(++__beg);
+             for (size_t __i3 = 0; __i3 < __nmatches; ++__i3)
+               {
+                 __name = __names[__matches[__i3]];
+                 if (__name[__pos] != __c)
+                   __matches[__i3] = __matches[--__nmatches];
+               }
+           }
+         else
+           break;
+       }
 
-      _CharT* __p = __digits;
-      while (__digits_end < __sign_end)
-        *__p++ = *__digits_end++;
-      const char* __gbeg = __fmt->_M_grouping.data();
-      const char* __gend = __gbeg + __fmt->_M_grouping.size();
-      __digits_end = __group_digits(__p, __fmt->_M_thousands_sep, 
-                                   __gbeg, __gend,
-                                   __sign_end, __digits + __n);
-      return __pad_numeric(__s, __flags, __fill, __io.width(0),
-                          __digits, __p, __digits_end);
+      if (__nmatches == 1)
+       {
+         // Make sure found name is completely extracted.
+         __name = __names[__matches[0]];
+         const size_t __len = __traits_type::length(__name);
+         while (__pos < __len && __beg != __end && __name[__pos] == *__beg)
+           ++__beg, ++__pos;
+
+         if (__len == __pos)
+           __member = __matches[0];
+         else
+           __testvalid = false;
+       }
+      else
+       __testvalid = false;
+      if (!__testvalid)
+       __err |= ios_base::failbit;
     }
 
-  template<typename _CharT, typename _OutIter>
-    _OutIter
-    num_put<_CharT, _OutIter>::
-    do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
+  template<typename _CharT, typename _InIter>
+    _InIter
+    time_get<_CharT, _InIter>::
+    do_get_time(iter_type __beg, iter_type __end, ios_base& __io,
+               ios_base::iostate& __err, tm* __tm) const
     {
-      unsigned long __uv = __v;
-      bool __neg = false;
-      if (__v < 0)
-        {
-          __neg = true;
-          __uv = -__uv;
-        }
-      return __output_integer(__s, __io, __fill, __neg, __uv);
-    }
+      locale __loc = __io.getloc();
+      __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc);
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
 
-  template<typename _CharT, typename _OutIter>
-    _OutIter
-    num_put<_CharT, _OutIter>::
-    do_put(iter_type __s, ios_base& __io, char_type __fill,
-           unsigned long __v) const
-    { return __output_integer(__s, __io, __fill, false, __v); }
+      const char_type __sep = __ctype.widen(':');
+      _M_extract_time(__beg, __end, __tm->tm_hour, 0, 23, __sep, true, 
+                     __ctype, __err);
+      _M_extract_time(__beg, __end, __tm->tm_min, 0, 59, __sep, true, 
+                     __ctype, __err);
+      _M_extract_time(__beg, __end, __tm->tm_sec, 0, 59, __sep, false, 
+                     __ctype, __err);
+
+      // NB: Assume Ante- and Post-meridiem affixes not part of
+      // default time format.
+
+      // NB: Some locales have a timezone component as part of the
+      // default time formatting. In these cases, attempt to extract
+      // timezone parts.
+      const __string_type  __format = __tp._M_time_formats();
+      if (__format.find(__ctype.widen('Z')) != __string_type::npos)
+       {
+         // Some valid timezone abbreviations are:
+         // HST, AKST, PST, MST, CST, EST, AST, NST, CET, IST, EET, CST, JST
+         // GMT, GMT[+-][hh:mm]
+         if (__ctype.is(ctype_base::space, *__beg))
+           ++__beg;
+           
+         if (__ctype.is(ctype_base::upper, *__beg))
+           {
+             int __tmp;
+             _M_extract_name(__beg, __end, __tmp, 
+                             __timepunct<_CharT>::_S_timezones, 14, __err);
 
-#ifdef _GLIBCPP_USE_LONG_LONG
-  template<typename _CharT, typename _OutIter>
-    _OutIter
-    num_put<_CharT, _OutIter>::
-    do_put(iter_type __s, ios_base& __b, char_type __fill, long long __v) const
-    {
-      unsigned long long __uv = __v;
-      bool __neg = false;
-      if (__v < 0)
-        {
-          __neg = true;
-          __uv = -__uv;
-        }
-      return __output_integer(__s, __b, __fill, __neg, __uv);
+             char_type __c = *__beg;
+             if (!__err && __tmp == 0
+                 &&(__c == __ctype.widen('-') || __c == __ctype.widen('-')))
+               {
+                 // GMT requires special effort.
+                 _M_extract_time(__beg, __end, __tmp, 0, 23, __sep, true, 
+                                 __ctype, __err);
+                 _M_extract_time(__beg, __end, __tmp, 0, 59, __sep, false, 
+                                 __ctype, __err);
+               }           
+           }
+       }
+      if (__beg == __end)
+       __err |= ios_base::eofbit;
+      return __beg;
     }
 
-  template<typename _CharT, typename _OutIter>
-    _OutIter
-    num_put<_CharT, _OutIter>::
-    do_put(iter_type __s, ios_base& __io, char_type __fill,
-           unsigned long long __v) const
-    { return __output_integer(__s, __io, __fill, false, __v); }
-#endif
-
-  // Generic helper function
-  template<typename _CharT, typename _Traits, typename _OutIter>
-    _OutIter
-    __output_float(_OutIter __s, ios_base& __io, _CharT __fill,
-                    const char* __sptr, size_t __slen)
+  template<typename _CharT, typename _InIter>
+    _InIter
+    time_get<_CharT, _InIter>::
+    do_get_date(iter_type __beg, iter_type __end, ios_base& __io,
+               ios_base::iostate& __err, tm* /*__tm*/) const
     {
-      // XXX Not currently done: non-streambuf_iterator
-      return __s;
+      locale __loc = __io.getloc();
+      __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc);
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
+
+      if (__beg == __end)
+       __err |= ios_base::eofbit;
+      return __beg;
     }
 
-  // Partial specialization for ostreambuf_iterator.
-  template<typename _CharT, typename _Traits>
-    ostreambuf_iterator<_CharT, _Traits>
-    __output_float(ostreambuf_iterator<_CharT, _Traits> __s, ios_base& __io, 
-                  _CharT __fill, const char* __sptr, size_t __slen)
+  template<typename _CharT, typename _InIter>
+    _InIter
+    time_get<_CharT, _InIter>::
+    do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 
+                  ios_base::iostate& __err, tm* __tm) const
     {
-      size_t __padding = __io.width() > streamsize(__slen) ?
-                         __io.width() -__slen : 0;
+      typedef char_traits<char_type> __traits_type;
       locale __loc = __io.getloc();
-      ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
-      ios_base::fmtflags __adjfield = __io.flags() & ios_base::adjustfield;
-      const char* const __eptr = __sptr + __slen;
-      // [22.2.2.2.2.19] Table 61
-      if (__adjfield == ios_base::internal)
-       {
-         // [22.2.2.2.2.14]; widen()
-         if (__sptr < __eptr && (*__sptr == '+' || *__sptr == '-'))
-           {
-             __s = __ctype.widen(*__sptr);
-             ++__s;
-             ++__sptr;
-           }
-         __s = __pad(__s, __fill, __padding);
-         __padding = 0;
-       }
-      else if (__adjfield != ios_base::left)
-        {
-          __s = __pad(__s, __fill, __padding);
-          __padding = 0;
-        }
-      // the "C" locale decimal character
-      char __decimal_point = *(localeconv()->decimal_point);
-      const _Format_cache<_CharT>* __fmt = _Format_cache<_CharT>::_S_get(__io);
-      for (; __sptr != __eptr; ++__s, ++__sptr)
-       {
-         // [22.2.2.2.2.17]; decimal point conversion
-         if (*__sptr == __decimal_point)
-           __s = __fmt->_M_decimal_point;
-         // [22.2.2.2.2.14]; widen()
-         else
-           __s = __ctype.widen(*__sptr);
-       }
-      // [22.2.2.2.2.19] Table 61
-      if (__padding)
-        __pad(__s, __fill, __padding);
-      __io.width(0);
-      return __s;
-    }
-
-  bool
-  __build_float_format(ios_base& __io, char* __fptr, char __modifier,
-                      streamsize __prec);
+      __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc);
+      const char_type*  __days[7];
+      __tp._M_days_abbreviated(__days);
+      int __tmpwday;
+      _M_extract_name(__beg, __end, __tmpwday, __days, 7, __err);
+
+      // Check to see if non-abbreviated name exists, and extract.
+      // NB: Assumes both _M_days and _M_days_abbreviated organized in
+      // exact same order, first to last, such that the resulting
+      // __days array with the same index points to a day, and that
+      // day's abbreviated form.
+      // NB: Also assumes that an abbreviated name is a subset of the name. 
+      if (!__err)
+       {
+         size_t __pos = __traits_type::length(__days[__tmpwday]);
+         __tp._M_days(__days);
+         const char_type* __name = __days[__tmpwday];
+         if (__name[__pos] == *__beg)
+           {
+             // Extract the rest of it.
+             const size_t __len = __traits_type::length(__name);
+             while (__pos < __len && __beg != __end 
+                    && __name[__pos] == *__beg)
+               ++__beg, ++__pos;
+             if (__len != __pos)
+               __err |= ios_base::failbit;
+           }
+         if (!__err)
+           __tm->tm_wday = __tmpwday;
+       }
+      if (__beg == __end)
+       __err |= ios_base::eofbit;
+      return __beg;
+     }
 
-  template<typename _CharT, typename _OutIter>
-    _OutIter
-    num_put<_CharT, _OutIter>::
-    do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
+  template<typename _CharT, typename _InIter>
+    _InIter
+    time_get<_CharT, _InIter>::
+    do_get_monthname(iter_type __beg, iter_type __end,
+                     ios_base& __io, ios_base::iostate& __err, tm* __tm) const
     {
-      const streamsize __max_prec = numeric_limits<double>::digits10 + 3;
-      streamsize __prec = __io.precision();
-      // Protect against sprintf() buffer overflows.
-      if (__prec > __max_prec)
-        __prec = __max_prec;
-      // The *2 provides for signs, exp, 'E', and pad.
-      char __sbuf[__max_prec * 2];
-      size_t __slen;
-      // Long enough for the max format spec.
-      char __fbuf[16];
-      if (__build_float_format(__io, __fbuf, 0, __prec))
-        __slen = sprintf(__sbuf, __fbuf, __prec, __v);
-      else
-        __slen = sprintf(__sbuf, __fbuf, __v);
-      // [22.2.2.2.2] Stages 2-4.
-      return __output_float(__s, __io, __fill, __sbuf, __slen);
+      typedef char_traits<char_type> __traits_type;
+      locale __loc = __io.getloc();
+      __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc);
+      const char_type*  __months[12];
+      __tp._M_months_abbreviated(__months);
+      int __tmpmon;
+      _M_extract_name(__beg, __end, __tmpmon, __months, 12, __err);
+
+      // Check to see if non-abbreviated name exists, and extract.
+      // NB: Assumes both _M_months and _M_months_abbreviated organized in
+      // exact same order, first to last, such that the resulting
+      // __months array with the same index points to a month, and that
+      // month's abbreviated form.
+      // NB: Also assumes that an abbreviated name is a subset of the name. 
+      if (!__err)
+       {
+         size_t __pos = __traits_type::length(__months[__tmpmon]);
+         __tp._M_months(__months);
+         const char_type* __name = __months[__tmpmon];
+         if (__name[__pos] == *__beg)
+           {
+             // Extract the rest of it.
+             const size_t __len = __traits_type::length(__name);
+             while (__pos < __len && __beg != __end 
+                    && __name[__pos] == *__beg)
+               ++__beg, ++__pos;
+             if (__len != __pos)
+               __err |= ios_base::failbit;
+           }
+         if (!__err)
+           __tm->tm_mon = __tmpmon;
+       }
+      if (__beg == __end)
+       __err |= ios_base::eofbit;
+      return __beg;
     }
 
-  template<typename _CharT, typename _OutIter>
-    _OutIter
-    num_put<_CharT, _OutIter>::
-    do_put(iter_type __s, ios_base& __io, char_type __fill,
-           long double __v) const
+  template<typename _CharT, typename _InIter>
+    _InIter
+    time_get<_CharT, _InIter>::
+    do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 
+               ios_base::iostate& __err, tm* __tm) const
     {
-      const streamsize __max_prec = numeric_limits<long double>::digits10 + 3;
-      streamsize __prec = __io.precision();
-      // Protect against sprintf() buffer overflows.
-      if (__prec > __max_prec)
-        __prec = __max_prec;
-      // The *2 provides for signs, exp, 'E', and pad.
-      char __sbuf[__max_prec * 2];
-      size_t __slen;
-      // Long enough for the max format spec.
-      char __fbuf[16];
-      // 'L' as per [22.2.2.2.2] Table 59
-      if (__build_float_format(__io, __fbuf, 'L', __prec))
-        __slen = sprintf(__sbuf, __fbuf, __prec, __v);
+      locale __loc = __io.getloc();
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
+
+      char_type __c = *__beg;
+      size_t __i = 0;
+      string __digits;
+      while (__i < 4 && __beg != __end && __ctype.is(ctype_base::digit, __c))
+       {
+         __digits += __ctype.narrow(__c, 0);
+         __c = *(++__beg);
+         ++__i;
+       }
+      if (__i == 2 || __i == 4)
+       {
+         int __year = atoi(__digits.c_str());
+         __year = __i == 2 ? __year : __year - 1900; 
+         __tm->tm_year = __year;
+       }
       else
-        __slen = sprintf(__sbuf, __fbuf, __v);
-      // [22.2.2.2.2] Stages 2-4
-      return __output_float(__s, __io, __fill, __sbuf, __slen);
+       __err |= ios_base::failbit;
+      if (__beg == __end)
+       __err |= ios_base::eofbit;
+      return __beg;
     }
 
   template<typename _CharT, typename _OutIter>
     _OutIter
-    num_put<_CharT, _OutIter>::
-    do_put(iter_type __s, ios_base& __io, char_type __fill,
-           const void* __v) const
-    {
-      typedef ios_base::fmtflags        fmtflags;
-      fmtflags __fmt = __io.flags();
-      fmtflags __fmtmask = ~(ios_base::showpos | ios_base::basefield
-                             | ios_base::uppercase | ios_base::internal);
-      __io.flags(__fmt & __fmtmask | (ios_base::hex | ios_base::showbase));
-      try {
-        _OutIter __s2 = __output_integer(__s, __io, __fill, false,
-                                  reinterpret_cast<unsigned long>(__v));
-        __io.flags(__fmt);
-        return __s2;
-      }
-      catch (...) {
-        __io.flags(__fmt);
-        __throw_exception_again;
-      }
-    }
-
-  template<typename _CharT, typename _OutIter>
-    time_put<_CharT, _OutIter>::iter_type 
-    time_put<_CharT, _OutIter>::put(iter_type __s, ios_base& __io, 
-                                   char_type, const tm* __tm, 
-                                   const _CharT* __beg, 
-                                   const _CharT* __end) const
+    time_put<_CharT, _OutIter>::
+    put(iter_type __s, ios_base& __io, char_type, const tm* __tm, 
+       const _CharT* __beg, const _CharT* __end) const
     {
       locale __loc = __io.getloc();
       ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
@@ -1550,10 +1658,10 @@ namespace std
     }
 
   template<typename _CharT, typename _OutIter>
-    time_put<_CharT, _OutIter>::iter_type 
-    time_put<_CharT, _OutIter>::do_put(iter_type __s, ios_base& __io, 
-                                      char_type, const tm* __tm, 
-                                      char __format, char __mod) const
+    _OutIter
+    time_put<_CharT, _OutIter>::
+    do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, 
+          char __format, char __mod) const
     { 
       // NB: This size is arbitrary. Should this be a data member,
       // initialized at construction?
@@ -1584,152 +1692,30 @@ namespace std
       __tp._M_put_helper(__res, __maxlen, __fmt, __tm);
 
       // Write resulting, fully-formatted string to output iterator.
+      const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); 
       size_t __len = strlen(__res);
       for (size_t __i = 0; __i < __len; ++__i)
-       __s = __res[__i];
+       __s = __ctype.widen(__res[__i]);
       return __s;
     }
 
-  // Support for time_get:
-  // Note that these partial specializations could, and maybe should,
-  // be changed to full specializations (by eliminating the _Dummy
-  // argument) and moved to a .cc file.
-  template<typename _CharT, typename _Dummy = int>
-    struct _Weekdaynames;
-
-  template<typename _Dummy>
-    struct _Weekdaynames<char, _Dummy>
-    { static const char* const _S_names[14]; };
-
-  template<typename _Dummy>
-    const char* const
-    _Weekdaynames<char, _Dummy>::_S_names[14] =
-    {
-      "Sun", "Sunday",
-      "Mon", "Monday",   "Tue", "Tuesday", "Wed", "Wednesday",
-      "Thu", "Thursday", "Fri", "Friday",  "Sat", "Saturday"
-    };
-
-#ifdef _GLIBCPP_USE_WCHAR_T
-  template<typename _Dummy>
-    struct _Weekdaynames<wchar_t, _Dummy>
-    { static const wchar_t* const _S_names[14]; };
-
-  template<typename _Dummy>
-    const wchar_t* const
-    _Weekdaynames<wchar_t, _Dummy>::_S_names[14] =
-    {
-      L"Sun", L"Sunday",
-      L"Mon", L"Monday",   L"Tue", L"Tuesday", L"Wed", L"Wednesday",
-      L"Thu", L"Thursday", L"Fri", L"Friday",  L"Sat", L"Saturday"
-    };
-#endif
-
-  template<typename _CharT, typename _Dummy = int>
-    struct _Monthnames;
-
-  template<typename _Dummy>
-    struct _Monthnames<char,_Dummy>
-    { static const char* const _S_names[24]; };
-
-  template<typename _Dummy>
-    const char* const
-    _Monthnames<char,_Dummy>::_S_names[24] =
-    {
-      "Jan", "January", "Feb", "February", "Mar", "March",
-      "Apr", "April",   "May", "May",      "Jun", "June",
-      "Jul", "July",    "Aug", "August",   "Sep", "September",
-      "Oct", "October", "Nov", "November", "Dec", "December"
-    };
-
-#ifdef _GLIBCPP_USE_WCHAR_T
-  template<typename _Dummy>
-    struct _Monthnames<wchar_t, _Dummy>
-    { static const wchar_t* const _S_names[24]; };
-
-  template<typename _Dummy>
-    const wchar_t* const
-    _Monthnames<wchar_t,_Dummy>::_S_names[24] =
-    {
-      L"Jan", L"January", L"Feb", L"February", L"Mar", L"March",
-      L"Apr", L"April",   L"May", L"May",      L"Jun", L"June",
-      L"Jul", L"July",    L"Aug", L"August",   L"Sep", L"September",
-      L"Oct", L"October", L"Nov", L"November", L"Dec", L"December"
-    };
-#endif
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    time_get<_CharT, _InIter>::
-    do_get_weekday(iter_type __s, iter_type __end,
-                   ios_base& __io, ios_base::iostate& __err, tm* __t) const
-    {
-      if (!_M_daynames)
-        {
-          _M_daynames = new basic_string<_CharT>[14];
-          for (int __i = 0; __i < 14; ++__i)
-            _M_daynames[__i] = _Weekdaynames<_CharT>::_S_names[__i];
-        }
-      bool __at_eof = false;
-      int __remain = 0;
-      int __matches[14];
-      iter_type __out = __match_parallel(__s, __end, 14, _M_daynames,
-                                         __matches, __remain, __at_eof);
-      __err = ios_base::iostate(0);
-      if (__at_eof) __err |= __io.eofbit;
-      if (__remain == 1 ||
-          __remain == 2 && (__matches[0]>>1) == (__matches[1]>>1))
-        __t->tm_wday = (__matches[0]>>1);
-      else
-        __err |= __io.failbit;
-      return __out;
-    }
-
-  template<typename _CharT, typename _InIter>
-    _InIter
-    time_get<_CharT, _InIter>::
-    do_get_monthname(iter_type __s, iter_type __end,
-                     ios_base& __io, ios_base::iostate& __err, tm* __t) const
-    {
-      if (!_M_monthnames)
-        {
-          _M_monthnames = new basic_string<_CharT>[24];
-          for (int __i = 0; __i < 24; ++__i)
-            _M_monthnames[__i] = _Monthnames<_CharT>::_S_names[__i];
-        }
-      bool __at_eof = false;
-      int __remain = 0;
-      int __matches[24];
-      iter_type __out = __match_parallel( __s, __end, 24, _M_monthnames,
-                                          __matches, __remain, __at_eof);
-      __err = ios_base::iostate(0);
-      if (__at_eof) __err |= __io.eofbit;
-      if (__remain == 1 ||
-          __remain == 2 && (__matches[0]>>1) == (__matches[1]>>1))
-        __t->tm_mon = (__matches[0]>>1);
-      else
-        __err |= __io.failbit;
-      return __out;
-    }
 
   // Generic version does nothing.
   template<typename _CharT>
     int
-    collate<_CharT>::
-    _M_compare_helper(const _CharT*, const _CharT*) const
+    collate<_CharT>::_M_compare_helper(const _CharT*, const _CharT*) const
     { return 0; }
 
   // Generic version does nothing.
   template<typename _CharT>
     size_t
-    collate<_CharT>::
-    _M_transform_helper(_CharT*, const _CharT*, size_t) const
+    collate<_CharT>::_M_transform_helper(_CharT*, const _CharT*, size_t) const
     { return 0; }
 
   template<typename _CharT>
     int
     collate<_CharT>::
-    do_compare(const _CharT* __lo1, const _CharT* __hi1,
+    do_compare(const _CharT* __lo1, const _CharT* __hi1, 
               const _CharT* __lo2, const _CharT* __hi2) const
     { 
       const string_type __one(__lo1, __hi1);
@@ -1768,6 +1754,142 @@ namespace std
                       (__val >> (numeric_limits<unsigned long>::digits - 1)));
       return static_cast<long>(__val);
     }
+
+  // Used by both numeric and monetary facets.
+  // Check to make sure that the __grouping_tmp string constructed in
+  // money_get or num_get matches the canonical grouping for a given
+  // locale.
+  // __grouping_tmp is parsed L to R
+  // 1,222,444 == __grouping_tmp of "/1/3/3"
+  // __grouping is parsed R to L
+  // 1,222,444 == __grouping of "/3" == "/3/3/3"
+  template<typename _CharT>
+    bool
+    __verify_grouping(const basic_string<_CharT>& __grouping, 
+                     basic_string<_CharT>& __grouping_tmp)
+    {         
+      int __i = 0;
+      int __j = 0;
+      const int __len = __grouping.size();
+      const int __n = __grouping_tmp.size();
+      bool __test = true;
+      
+      // Parsed number groupings have to match the
+      // numpunct::grouping string exactly, starting at the
+      // right-most point of the parsed sequence of elements ...
+      while (__test && __i < __n - 1)
+       for (__j = 0; __test && __j < __len && __i < __n - 1; ++__j,++__i)
+         __test &= __grouping[__j] == __grouping_tmp[__n - __i - 1];
+      // ... but the last parsed grouping can be <= numpunct
+      // grouping.
+      __j == __len ? __j = 0 : __j;
+      __test &= __grouping[__j] >= __grouping_tmp[__n - __i - 1];
+      return __test;
+    }
+
+  // Used by both numeric and monetary facets.
+  // Inserts "group separator" characters into an array of characters.
+  // It's recursive, one iteration per group.  It moves the characters
+  // in the buffer this way: "xxxx12345" -> "12,345xxx".  Call this
+  // only with __gbeg != __gend.
+  template<typename _CharT>
+    _CharT*
+    __group_digits(_CharT* __s, _CharT __sep,  
+                  const char* __gbeg, const char* __gend, 
+                  const _CharT* __first, const _CharT* __last)
+    {
+      if (__last - __first > *__gbeg)
+        {
+          __s = __group_digits(__s,  __sep,
+                              (__gbeg + 1 == __gend ? __gbeg : __gbeg + 1),
+                              __gend, __first, __last - *__gbeg);
+          __first = __last - *__gbeg;
+          *__s++ = __sep;
+        }
+      do
+        {
+          *__s++ = *__first++;
+        }
+      while (__first != __last);
+      return __s;
+    }
+
+  // XXX This stuff needs to be re-examined, heavily modified, or ditched.
+  template<typename _CharT>
+    _Format_cache<_CharT>::_Format_cache()
+    : _M_valid(true), _M_use_grouping(false)
+    { }
+
+  template<>
+    _Format_cache<char>::_Format_cache();
+
+  template<>
+    _Format_cache<wchar_t>::_Format_cache();
+
+  template<typename _CharT>
+    void
+    _Format_cache<_CharT>::_M_populate(ios_base& __io)
+    {
+      locale __loc = __io.getloc();
+      numpunct<_CharT> const& __np = use_facet<numpunct<_CharT> >(__loc);
+      _M_truename = __np.truename();
+      _M_falsename = __np.falsename();
+      _M_thousands_sep = __np.thousands_sep();
+      _M_decimal_point = __np.decimal_point();
+      _M_grouping = __np.grouping();
+      _M_use_grouping = _M_grouping.size() != 0 && _M_grouping.data()[0] != 0;
+      _M_valid = true;
+    }
+
+  // This function is always called via a pointer installed in
+  // an ios_base by ios_base::register_callback.
+  template<typename _CharT>
+    void
+    _Format_cache<_CharT>::
+    _S_callback(ios_base::event __ev, ios_base& __ios, int __ix) throw()
+    {
+      void*& __p = __ios.pword(__ix);
+      switch (__ev)
+        {
+        case ios_base::erase_event:
+          delete static_cast<_Format_cache<_CharT>*>(__p);
+         __p = 0;
+          break;
+        case ios_base::copyfmt_event:
+          // If just stored zero, the callback would get registered again.
+          try 
+           { __p = new _Format_cache<_CharT>; }
+          catch(...) 
+           { }
+          break;
+        case ios_base::imbue_event:
+          static_cast<_Format_cache<_CharT>*>(__p)->_M_valid = false;
+          break;
+        }
+    }
+
+  template<typename _CharT>
+    _Format_cache<_CharT>*
+    _Format_cache<_CharT>::_S_get(ios_base& __ios)
+    {
+      if (!_S_pword_ix)
+        _S_pword_ix = ios_base::xalloc();  // XXX MT
+      void*& __p = __ios.pword(_S_pword_ix);
+
+      // XXX What if pword fails? must check failbit, throw.
+      if (__p == 0)  // XXX MT?  maybe sentry takes care of it
+        {
+          auto_ptr<_Format_cache<_CharT> > __ap(new _Format_cache<_CharT>);
+          __ios.register_callback(&_Format_cache<_CharT>::_S_callback,
+                                  _S_pword_ix);
+          __p = __ap.release();
+        }
+      _Format_cache<_CharT>* __ncp = static_cast<_Format_cache<_CharT>*>(__p);
+      if (!__ncp->_M_valid)
+        __ncp->_M_populate(__ios);
+
+      return __ncp;
+    }
 } // namespace std
 
 #endif
index 26d63f16ae3de0b2db1ff28180ddb0fa76336b7f..71f3c1d2554bfe5970d594d4c6b04596cbaf5554 100644 (file)
@@ -63,7 +63,7 @@ sources = \
        basic_file.cc bitset.cc c++locale.cc cmath.cc codecvt.cc \
        complex_io.cc functexcept.cc globals.cc ios.cc limits.cc \
        locale.cc locale-inst.cc localename.cc \
-       collate.cc messages.cc moneypunct.cc numpunct.cc \
+       collate.cc messages.cc moneypunct.cc numpunct.cc time.cc \
        misc-inst.cc stdexcept.cc stl-inst.cc string-inst.cc strstream.cc \
        valarray-inst.cc wstring-inst.cc
 
index 80caff14ac8c614edffe79ca37ff0595d9ac599d..ac40a911228870e085bf4887bf1ba3be6ea13d6c 100644 (file)
@@ -189,7 +189,7 @@ sources = \
        basic_file.cc bitset.cc c++locale.cc cmath.cc codecvt.cc \
        complex_io.cc functexcept.cc globals.cc ios.cc limits.cc \
        locale.cc locale-inst.cc localename.cc \
-       collate.cc messages.cc moneypunct.cc numpunct.cc \
+       collate.cc messages.cc moneypunct.cc numpunct.cc time.cc \
        misc-inst.cc stdexcept.cc stl-inst.cc string-inst.cc strstream.cc \
        valarray-inst.cc wstring-inst.cc
 
@@ -271,7 +271,7 @@ LIBS = @LIBS@
 libstdc___la_OBJECTS =  basic_file.lo bitset.lo c++locale.lo cmath.lo \
 codecvt.lo complex_io.lo functexcept.lo globals.lo ios.lo limits.lo \
 locale.lo locale-inst.lo localename.lo collate.lo messages.lo \
-moneypunct.lo numpunct.lo misc-inst.lo stdexcept.lo stl-inst.lo \
+moneypunct.lo numpunct.lo time.lo misc-inst.lo stdexcept.lo stl-inst.lo \
 string-inst.lo strstream.lo valarray-inst.lo wstring-inst.lo
 CXXFLAGS = @CXXFLAGS@
 CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
index 7e60498cc493b0fe5bc5719eb69c3ce0f201bbf9..ac072151f3f3fc1acae9ebbd98cb0aea9bcd079d 100644 (file)
@@ -122,13 +122,9 @@ namespace std
   // collate
   template class collate<char>;
   template class collate_byname<char>;
-  template class _Weekdaynames<char, int>;
-  template class _Monthnames<char, int>;
 #ifdef _GLIBCPP_USE_WCHAR_T
   template class collate<wchar_t>;
   template class collate_byname<wchar_t>;
-  template class _Weekdaynames<wchar_t, int>;
-  template class _Monthnames<wchar_t, int>;
 #endif
     
   // use_facet
@@ -243,30 +239,17 @@ namespace std
                   const vec_pfacet::value_type&);
 
 
+  //
+  // locale
+  //
   typedef istreambuf_iterator<char, char_traits<char> > istreambuf_iter;
   typedef ostreambuf_iterator<char, char_traits<char> > ostreambuf_iter;
 
-
-  template 
-    istreambuf_iter 
-    __match_parallel<istreambuf_iter, char>
-    (istreambuf_iter, istreambuf_iter, int, const string*, int*, int&, bool&);
-
-
 #ifdef _GLIBCPP_USE_WCHAR_T
   typedef istreambuf_iterator<wchar_t,char_traits<wchar_t> > wistreambuf_iter;
   typedef ostreambuf_iterator<wchar_t,char_traits<wchar_t> > wostreambuf_iter;
-
-  template 
-    wistreambuf_iter 
-    __match_parallel<wistreambuf_iter, wchar_t>
-   (wistreambuf_iter, wistreambuf_iter, int, const wstring*, int*, int&, bool&);
 #endif
 
-
-  //
-  // locale
-  //
   template 
     bool
     locale::operator()(const string&, const string&) const;
index 8e76f51b651c2ce45db1e159e9f750b7f60273d5..02297d1d9ea430e94d98053de7161a410a38354e 100644 (file)
@@ -434,6 +434,25 @@ namespace std
   : ctype<char>(new mask[table_size], true, __refs)
   { }
 
+  // Definitions for static const data members of time_base
+  template<> 
+    const char*
+    __timepunct<char>::_S_timezones[14] =
+    { 
+      "GMT", "HST", "AKST", "PST", "MST", "CST", "EST", "AST", "NST", "CET", 
+      "IST", "EET", "CST", "JST"  
+    };
+#ifdef _GLIBCPP_USE_WCHAR_T
+  template<> 
+    const wchar_t*
+    __timepunct<wchar_t>::_S_timezones[14] =
+    { 
+      L"GMT", L"HST", L"AKST", L"PST", L"MST", L"CST", L"EST", L"AST", 
+      L"NST", L"CET", L"IST", L"EET", L"CST", L"JST"  
+    };
+#endif
+
   // Definitions for static const data members of money_base
   const money_base::pattern 
   money_base::_S_default_pattern =  {{symbol, sign, none, value}};
diff --git a/libstdc++-v3/testsuite/22_locale/time_get.cc b/libstdc++-v3/testsuite/22_locale/time_get.cc
new file mode 100644 (file)
index 0000000..701350b
--- /dev/null
@@ -0,0 +1,54 @@
+// 2001-09-21  Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.5.1  Template class time_get
+
+#include <locale>
+
+void test01()
+{
+  // Check for required base class.
+  typedef std::time_get<char> test_type;
+  typedef std::locale::facet base_type1;
+  typedef std::time_base base_type2;
+  const test_type& obj = std::use_facet<test_type>(std::locale()); 
+  const base_type1* base1 = &obj;
+  const base_type2* base2 = &obj;
+  
+  // Check for required typedefs
+  typedef test_type::char_type char_type;
+  typedef test_type::iter_type iter_type;
+}
+
+// Should be able to instantiate this for other types besides char, wchar_t
+class gnu_time_get: public std::time_get<unsigned char> 
+{ };
+
+void test02()
+{ 
+  gnu_time_get facet01;
+}
+
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc b/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc
new file mode 100644 (file)
index 0000000..7af11b1
--- /dev/null
@@ -0,0 +1,491 @@
+// 2001-09-21 Benjamin Kosnik  <bkoz@redhat.com>
+
+// Copyright (C) 2001 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// XXX This test is not working for non-glibc locale models.
+// { dg-do run { xfail *-*-* } }
+
+void test01()
+{
+  using namespace std;
+  typedef time_base::dateorder dateorder;
+  typedef istreambuf_iterator<char> iterator_type;
+
+  bool test = true;
+
+  // basic construction and sanity checks.
+  locale loc_c = locale::classic();
+  locale loc_hk("en_HK");
+  locale loc_fr("fr_FR@euro");
+  locale loc_de("de_DE");
+  VERIFY( loc_hk != loc_c );
+  VERIFY( loc_hk != loc_fr );
+  VERIFY( loc_hk != loc_de );
+  VERIFY( loc_de != loc_fr );
+
+  // cache the __timepunct facets, for quicker gdb inspection
+  const __timepunct<char>& time_c = use_facet<__timepunct<char> >(loc_c); 
+  const __timepunct<char>& time_de = use_facet<__timepunct<char> >(loc_de); 
+  const __timepunct<char>& time_hk = use_facet<__timepunct<char> >(loc_hk); 
+  const __timepunct<char>& time_fr = use_facet<__timepunct<char> >(loc_fr); 
+
+  const string empty;
+
+  // create an ostream-derived object, cache the time_get facet
+  iterator_type end;
+
+  istringstream iss;
+  const time_get<char>& tim_get = use_facet<time_get<char> >(iss.getloc()); 
+
+  const ios_base::iostate good = ios_base::goodbit;
+  ios_base::iostate errorstate = good;
+
+  // create "C" time objects
+  const tm time_bday = { 0, 0, 12, 4, 3, 71 };
+  const char* all = "%a %A %b %B %c %d %H %I %j %m %M %p %s %U "
+                    "%w %W %x %X %y %Y %Z %%";
+  const char* date = "%A, the second of %B";
+  const char* date_ex = "%Ex";
+
+  // 1
+  // dateorder date_order() const
+  iss.imbue(loc_c);
+  dateorder do1 = tim_get.date_order();
+  //  VERIFY( do1 == time_base::mdy );
+  VERIFY( do1 == time_base::no_order );
+
+  // 2
+  // iter_type 
+  // get_time(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*) const
+
+  // sanity checks for "C" locale
+  iss.str("12:00:00");
+  iterator_type is_it01(iss);
+  tm time01;
+  errorstate = good;
+  tim_get.get_time(is_it01, end, iss, errorstate, &time01);
+  VERIFY( time01.tm_sec == time_bday.tm_sec );
+  VERIFY( time01.tm_min == time_bday.tm_min );
+  VERIFY( time01.tm_hour == time_bday.tm_hour );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  iss.str("12:00:00 ");
+  iterator_type is_it02(iss);
+  tm time02;
+  errorstate = good;
+  tim_get.get_time(is_it02, end, iss, errorstate, &time02);
+  VERIFY( time01.tm_sec == time_bday.tm_sec );
+  VERIFY( time01.tm_min == time_bday.tm_min );
+  VERIFY( time01.tm_hour == time_bday.tm_hour );
+  VERIFY( errorstate == good );
+
+  iss.str("12:61:00 ");
+  iterator_type is_it03(iss);
+  tm time03;
+  errorstate = good;
+  tim_get.get_time(is_it03, end, iss, errorstate, &time03);
+  VERIFY( time01.tm_hour == time_bday.tm_hour );
+  VERIFY( errorstate == ios_base::failbit );
+
+  iss.str("12:a:00 ");
+  iterator_type is_it04(iss);
+  tm time04;
+  errorstate = good;
+  tim_get.get_time(is_it04, end, iss, errorstate, &time04);
+  VERIFY( time01.tm_hour == time_bday.tm_hour );
+  VERIFY( *is_it04 == 'a');
+  VERIFY( errorstate == ios_base::failbit );
+
+  // inspection of named locales, de_DE
+  iss.imbue(loc_de);
+  iss.str("12:00:00");
+  iterator_type is_it10(iss);
+  tm time10;
+  errorstate = good;
+  tim_get.get_time(is_it10, end, iss, errorstate, &time10);
+  VERIFY( time10.tm_sec == time_bday.tm_sec );
+  VERIFY( time10.tm_min == time_bday.tm_min );
+  VERIFY( time10.tm_hour == time_bday.tm_hour );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  // inspection of named locales, en_HK
+  iss.imbue(loc_hk);
+  iss.str("12:00:00 PST"); 
+  // Hong Kong in California! Well, they have Paris in Vegas... this
+  // is all a little disney-esque anyway. Besides, you can get decent
+  // Dim Sum in San Francisco.
+  iterator_type is_it20(iss);
+  tm time20;
+  errorstate = good;
+  tim_get.get_time(is_it20, end, iss, errorstate, &time20);
+  VERIFY( time10.tm_sec == time_bday.tm_sec );
+  VERIFY( time10.tm_min == time_bday.tm_min );
+  VERIFY( time10.tm_hour == time_bday.tm_hour );
+  VERIFY( errorstate == ios_base::eofbit );
+}
+
+void test02()
+{
+  using namespace std;
+  typedef time_base::dateorder dateorder;
+  typedef istreambuf_iterator<char> iterator_type;
+
+  bool test = true;
+
+  // basic construction and sanity checks.
+  locale loc_c = locale::classic();
+  locale loc_hk("en_HK");
+  locale loc_fr("fr_FR@euro");
+  locale loc_de("de_DE");
+  VERIFY( loc_hk != loc_c );
+  VERIFY( loc_hk != loc_fr );
+  VERIFY( loc_hk != loc_de );
+  VERIFY( loc_de != loc_fr );
+
+  // cache the __timepunct facets, for quicker gdb inspection
+  const __timepunct<char>& time_c = use_facet<__timepunct<char> >(loc_c); 
+  const __timepunct<char>& time_de = use_facet<__timepunct<char> >(loc_de); 
+  const __timepunct<char>& time_hk = use_facet<__timepunct<char> >(loc_hk); 
+  const __timepunct<char>& time_fr = use_facet<__timepunct<char> >(loc_fr); 
+
+  const string empty;
+
+  // create an ostream-derived object, cache the time_get facet
+  iterator_type end;
+
+  istringstream iss;
+  const time_get<char>& tim_get = use_facet<time_get<char> >(iss.getloc()); 
+
+  const ios_base::iostate good = ios_base::goodbit;
+  ios_base::iostate errorstate = good;
+
+  // create "C" time objects
+  const tm time_bday = { 0, 0, 12, 4, 3, 71 };
+  const char* all = "%a %A %b %B %c %d %H %I %j %m %M %p %s %U "
+                    "%w %W %x %X %y %Y %Z %%";
+  const char* date = "%A, the second of %B";
+  const char* date_ex = "%Ex";
+
+  // iter_type 
+  // get_weekday(iter_type, iter_type, ios_base&, 
+  //             ios_base::iostate&, tm*) const
+
+  // sanity checks for "C" locale
+  iss.str("Sunday");
+  iterator_type is_it01(iss);
+  tm time01;
+  errorstate = good;
+  tim_get.get_weekday(is_it01, end, iss, errorstate, &time01);
+  VERIFY( time01.tm_wday == time_bday.tm_wday );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  iss.str("Sun");
+  iterator_type is_it02(iss);
+  tm time02;
+  errorstate = good;
+  tim_get.get_weekday(is_it02, end, iss, errorstate, &time02);
+  VERIFY( time02.tm_wday == time_bday.tm_wday );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  iss.str("Sun ");
+  iterator_type is_it03(iss);
+  tm time03;
+  errorstate = good;
+  tim_get.get_weekday(is_it03, end, iss, errorstate, &time03);
+  VERIFY( time03.tm_wday == time_bday.tm_wday );
+  VERIFY( errorstate == good );
+  VERIFY( *is_it03 == ' ');
+
+  iss.str("San");
+  iterator_type is_it04(iss);
+  tm time04;
+  time04.tm_wday = 4;
+  errorstate = good;
+  tim_get.get_weekday(is_it04, end, iss, errorstate, &time04);
+  VERIFY( time04.tm_wday == 4 );
+  VERIFY( *is_it04 == 'n');
+  VERIFY( errorstate == ios_base::failbit );
+
+  iss.str("Tuesday ");
+  iterator_type is_it05(iss);
+  tm time05;
+  errorstate = good;
+  tim_get.get_weekday(is_it05, end, iss, errorstate, &time05);
+  VERIFY( time05.tm_wday == 2 );
+  VERIFY( errorstate == good );
+  VERIFY( *is_it05 == ' ');
+
+  iss.str("Tuesducky "); // Kind of like Fryday, without the swirls.
+  iterator_type is_it06(iss);
+  tm time06;
+  time06.tm_wday = 4;
+  errorstate = good;
+  tim_get.get_weekday(is_it06, end, iss, errorstate, &time06);
+  VERIFY( time06.tm_wday == 4 );
+  VERIFY( errorstate == ios_base::failbit );
+  VERIFY( *is_it05 == 'u');
+
+  // inspection of named locales, de_DE
+  iss.imbue(loc_de);
+  iss.str("Sonntag");
+  iterator_type is_it10(iss);
+  tm time10;
+  errorstate = good;
+  tim_get.get_weekday(is_it10, end, iss, errorstate, &time10);
+  VERIFY( time10.tm_wday == time_bday.tm_wday );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  // inspection of named locales, en_HK
+  iss.imbue(loc_hk);
+  iss.str("Sunday"); 
+  iterator_type is_it20(iss);
+  tm time20;
+  errorstate = good;
+  tim_get.get_weekday(is_it20, end, iss, errorstate, &time20);
+  VERIFY( time20.tm_wday == time_bday.tm_wday );
+  VERIFY( errorstate == ios_base::eofbit );
+}
+
+void test03()
+{
+  using namespace std;
+  typedef time_base::dateorder dateorder;
+  typedef istreambuf_iterator<char> iterator_type;
+
+  bool test = true;
+
+  // basic construction and sanity checks.
+  locale loc_c = locale::classic();
+  locale loc_hk("en_HK");
+  locale loc_fr("fr_FR@euro");
+  locale loc_de("de_DE");
+  VERIFY( loc_hk != loc_c );
+  VERIFY( loc_hk != loc_fr );
+  VERIFY( loc_hk != loc_de );
+  VERIFY( loc_de != loc_fr );
+
+  // cache the __timepunct facets, for quicker gdb inspection
+  const __timepunct<char>& time_c = use_facet<__timepunct<char> >(loc_c); 
+  const __timepunct<char>& time_de = use_facet<__timepunct<char> >(loc_de); 
+  const __timepunct<char>& time_hk = use_facet<__timepunct<char> >(loc_hk); 
+  const __timepunct<char>& time_fr = use_facet<__timepunct<char> >(loc_fr); 
+
+  const string empty;
+
+  // create an ostream-derived object, cache the time_get facet
+  iterator_type end;
+
+  istringstream iss;
+  const time_get<char>& tim_get = use_facet<time_get<char> >(iss.getloc()); 
+
+  const ios_base::iostate good = ios_base::goodbit;
+  ios_base::iostate errorstate = good;
+
+  // create "C" time objects
+  const tm time_bday = { 0, 0, 12, 4, 3, 71 };
+  const char* all = "%a %A %b %B %c %d %H %I %j %m %M %p %s %U "
+                    "%w %W %x %X %y %Y %Z %%";
+  const char* date = "%A, the second of %B";
+  const char* date_ex = "%Ex";
+
+  // iter_type 
+  // get_monthname(iter_type, iter_type, ios_base&, 
+  //               ios_base::iostate&, tm*) const
+
+  // sanity checks for "C" locale
+  iss.str("April");
+  iterator_type is_it01(iss);
+  tm time01;
+  errorstate = good;
+  tim_get.get_monthname(is_it01, end, iss, errorstate, &time01);
+  VERIFY( time01.tm_wday == time_bday.tm_wday );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  iss.str("Apr");
+  iterator_type is_it02(iss);
+  tm time02;
+  errorstate = good;
+  tim_get.get_monthname(is_it02, end, iss, errorstate, &time02);
+  VERIFY( time02.tm_mon == time_bday.tm_mon );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  iss.str("Apr ");
+  iterator_type is_it03(iss);
+  tm time03;
+  errorstate = good;
+  tim_get.get_monthname(is_it03, end, iss, errorstate, &time03);
+  VERIFY( time03.tm_mon == time_bday.tm_mon );
+  VERIFY( errorstate == good );
+  VERIFY( *is_it03 == ' ');
+
+  iss.str("Aar");
+  iterator_type is_it04(iss);
+  tm time04;
+  time04.tm_mon = 5;
+  errorstate = good;
+  tim_get.get_monthname(is_it04, end, iss, errorstate, &time04);
+  VERIFY( time04.tm_mon == 5 );
+  VERIFY( *is_it04 == 'a');
+  VERIFY( errorstate == ios_base::failbit );
+
+  iss.str("December ");
+  iterator_type is_it05(iss);
+  tm time05;
+  errorstate = good;
+  tim_get.get_monthname(is_it05, end, iss, errorstate, &time05);
+  VERIFY( time05.tm_mon == 11 );
+  VERIFY( errorstate == good );
+  VERIFY( *is_it05 == ' ');
+
+  iss.str("Decelember "); 
+  iterator_type is_it06(iss);
+  tm time06;
+  time06.tm_mon = 4;
+  errorstate = good;
+  tim_get.get_monthname(is_it06, end, iss, errorstate, &time06);
+  VERIFY( time06.tm_mon == 4 );
+  VERIFY( errorstate == ios_base::failbit );
+  VERIFY( *is_it05 == 'l');
+
+  // inspection of named locales, de_DE
+  iss.imbue(loc_de);
+  iss.str("April");
+  iterator_type is_it10(iss);
+  tm time10;
+  errorstate = good;
+  tim_get.get_monthname(is_it10, end, iss, errorstate, &time10);
+  VERIFY( time10.tm_mon == time_bday.tm_mon );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  // inspection of named locales, en_HK
+  iss.imbue(loc_hk);
+  iss.str("April"); 
+  iterator_type is_it20(iss);
+  tm time20;
+  errorstate = good;
+  tim_get.get_monthname(is_it20, end, iss, errorstate, &time20);
+  VERIFY( time20.tm_mon == time_bday.tm_mon );
+  VERIFY( errorstate == ios_base::eofbit );
+}
+
+void test04()
+{
+  using namespace std;
+  typedef time_base::dateorder dateorder;
+  typedef istreambuf_iterator<char> iterator_type;
+
+  bool test = true;
+
+  // basic construction and sanity checks.
+  locale loc_c = locale::classic();
+  locale loc_hk("en_HK");
+  locale loc_fr("fr_FR@euro");
+  locale loc_de("de_DE");
+  VERIFY( loc_hk != loc_c );
+  VERIFY( loc_hk != loc_fr );
+  VERIFY( loc_hk != loc_de );
+  VERIFY( loc_de != loc_fr );
+
+  // cache the __timepunct facets, for quicker gdb inspection
+  const __timepunct<char>& time_c = use_facet<__timepunct<char> >(loc_c); 
+  const __timepunct<char>& time_de = use_facet<__timepunct<char> >(loc_de); 
+  const __timepunct<char>& time_hk = use_facet<__timepunct<char> >(loc_hk); 
+  const __timepunct<char>& time_fr = use_facet<__timepunct<char> >(loc_fr); 
+
+  const string empty;
+
+  // create an ostream-derived object, cache the time_get facet
+  iterator_type end;
+
+  istringstream iss;
+  const time_get<char>& tim_get = use_facet<time_get<char> >(iss.getloc()); 
+
+  const ios_base::iostate good = ios_base::goodbit;
+  ios_base::iostate errorstate = good;
+
+  // create "C" time objects
+  const tm time_bday = { 0, 0, 12, 4, 3, 71 };
+  const char* all = "%a %A %b %B %c %d %H %I %j %m %M %p %s %U "
+                    "%w %W %x %X %y %Y %Z %%";
+  const char* date = "%A, the second of %B";
+  const char* date_ex = "%Ex";
+
+  // iter_type 
+  // get_year(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*) const
+
+  // sanity checks for "C" locale
+  iss.str("1971");
+  iterator_type is_it01(iss);
+  tm time01;
+  errorstate = good;
+  tim_get.get_year(is_it01, end, iss, errorstate, &time01);
+  VERIFY( time01.tm_year == time_bday.tm_year );
+  VERIFY( errorstate == ios_base::eofbit );
+
+  iss.str("1971 ");
+  iterator_type is_it02(iss);
+  tm time02;
+  errorstate = good;
+  tim_get.get_year(is_it02, end, iss, errorstate, &time02);
+  VERIFY( time02.tm_year == time_bday.tm_year );
+  VERIFY( errorstate == good );
+  VERIFY( *is_it02 == ' ');
+
+  iss.str("197d1 ");
+  iterator_type is_it03(iss);
+  tm time03;
+  time03.tm_year = 3;
+  errorstate = good;
+  tim_get.get_year(is_it03, end, iss, errorstate, &time03);
+  VERIFY( time03.tm_year == 3 );
+  VERIFY( errorstate == ios_base::failbit );
+  VERIFY( *is_it03 == 'd');
+
+  iss.str("71d71");
+  iterator_type is_it04(iss);
+  tm time04;
+  errorstate = good;
+  tim_get.get_year(is_it04, end, iss, errorstate, &time04);
+  VERIFY( time04.tm_year == time_bday.tm_year );
+  VERIFY( errorstate == good );
+  VERIFY( *is_it03 == 'd');
+
+  iss.str("71");
+  iterator_type is_it05(iss);
+  tm time05;
+  errorstate = good;
+  tim_get.get_year(is_it05, end, iss, errorstate, &time05);
+  VERIFY( time05.tm_year == time_bday.tm_year );
+  VERIFY( errorstate == ios_base::eofbit );
+}
+
+int main()
+{
+  test01();
+  test02();
+  test03();
+  test04();
+  return 0;
+}
index 995e16857f9d36c039a83161a5cb5e6f82021540..c751cbd3984d85384721d9a5c900cef922d546ee 100644 (file)
@@ -24,7 +24,9 @@
 #include <sstream>
 #include <testsuite_hooks.h>
 
-// test string version
+// XXX This test is not working for non-glibc locale models.
+// { dg-do run { xfail *-*-* } }
+
 void test01()
 {
   using namespace std;
@@ -42,11 +44,11 @@ void test01()
   VERIFY( loc_hk != loc_de );
   VERIFY( loc_de != loc_fr );
 
-  // cache the moneypunct facets, for quicker gdb inspection
-  const time_put<char>& timp_c = use_facet<time_put<char> >(loc_c); 
-  const time_put<char>& timp_de = use_facet<time_put<char> >(loc_de); 
-  const time_put<char>& timp_hk = use_facet<time_put<char> >(loc_hk); 
-  const time_put<char>& timp_fr = use_facet<time_put<char> >(loc_fr); 
+  // cache the __timepunct facets, for quicker gdb inspection
+  const __timepunct<char>& time_c = use_facet<__timepunct<char> >(loc_c); 
+  const __timepunct<char>& time_de = use_facet<__timepunct<char> >(loc_de); 
+  const __timepunct<char>& time_hk = use_facet<__timepunct<char> >(loc_hk); 
+  const __timepunct<char>& time_fr = use_facet<__timepunct<char> >(loc_fr); 
 
   // create an ostream-derived object, cache the time_put facet
   const string empty;
@@ -70,24 +72,76 @@ void test01()
   string result1 = oss.str();
   VERIFY( result1 == "Sun" );
 
+  oss.str(empty);
+  iterator_type os_it21 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x');
+  string result21 = oss.str(); // "04/04/71"
+  oss.str(empty);
+  iterator_type os_it22 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X');
+  string result22 = oss.str(); // "12:00:00"
+  oss.str(empty);
+  iterator_type os_it31 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x', 'E');
+  string result31 = oss.str(); // "04/04/71"
+  oss.str(empty);
+  iterator_type os_it32 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X', 'E');
+  string result32 = oss.str(); // "12:00:00"
+
   oss.str(empty);
   oss.imbue(loc_de);
   iterator_type os_it02 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
   string result2 = oss.str();
   VERIFY( result2 == "Son" );
 
+  oss.str(empty); // "%d.%m.%Y"
+  iterator_type os_it23 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x');
+  string result23 = oss.str(); // "04.04.1971"
+  oss.str(empty); // "%T"
+  iterator_type os_it24 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X');
+  string result24 = oss.str(); // "12:00:00"
+  oss.str(empty);
+  iterator_type os_it33 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x', 'E');
+  string result33 = oss.str(); // "04.04.1971"
+  oss.str(empty);
+  iterator_type os_it34 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X', 'E');
+  string result34 = oss.str(); // "12:00:00"
+
   oss.str(empty);
   oss.imbue(loc_hk);
   iterator_type os_it03 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
   string result3 = oss.str();
   VERIFY( result3 == "Sun" );
 
+  oss.str(empty); // "%A, %B %d, %Y"
+  iterator_type os_it25 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x');
+  string result25 = oss.str(); // "Sunday, April 04, 1971"
+  oss.str(empty); // "%I:%M:%S %Z"
+  iterator_type os_it26 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X');
+  string result26 = oss.str(); // "12:00:00 PST"
+  oss.str(empty);
+  iterator_type os_it35 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x', 'E');
+  string result35 = oss.str(); // "Sunday, April 04, 1971"
+  oss.str(empty);
+  iterator_type os_it36 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X', 'E');
+  string result36 = oss.str(); // "12:00:00 PST"
+
   oss.str(empty);
   oss.imbue(loc_fr);
   iterator_type os_it04 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
   string result4 = oss.str();
   VERIFY( result4 == "dim" );
 
+  oss.str(empty); // "%d.%m.%Y"
+  iterator_type os_it27 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x');
+  string result27 = oss.str(); // "04.04.1971"
+  oss.str(empty); // "%T"
+  iterator_type os_it28 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X');
+  string result28 = oss.str(); // "12:00:00"
+  oss.str(empty);
+  iterator_type os_it37 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x', 'E');
+  string result37 = oss.str(); // "04.04.1971"
+  oss.str(empty);
+  iterator_type os_it38 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X', 'E');
+  string result38 = oss.str(); // "12:00:00"
+
   // 2
   oss.str(empty);
   oss.imbue(loc_c);