summaryrefslogtreecommitdiffstats
path: root/meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2009-09-14 20:22:34 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2009-09-14 20:22:34 +0100
commit2e7e072f58f4dd47edc4e54d96b79bd9ff92ee7e (patch)
tree63225a230143108a02d1b972931e20c9d92d9886 /meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch
parent8f96edfb16e593264a49b04eade98d4e2094d1b1 (diff)
downloadpoky-2e7e072f58f4dd47edc4e54d96b79bd9ff92ee7e.tar.gz
gcc-4.3.3: Sync patchset with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch')
-rw-r--r--meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch423
1 files changed, 233 insertions, 190 deletions
diff --git a/meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch b/meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch
index ea21388b75..70ba98eed7 100644
--- a/meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch
+++ b/meta/packages/gcc/gcc-4.3.3/200-uclibc-locale.patch
@@ -1,6 +1,8 @@
1--- gcc/libstdc++-v3/acinclude.m4 1Index: gcc-4.3.2/libstdc++-v3/acinclude.m4
2+++ gcc/libstdc++-v3/acinclude.m4 2===================================================================
3@@ -1369,7 +1369,7 @@ 3--- gcc-4.3.2.orig/libstdc++-v3/acinclude.m4 2008-04-25 09:52:57.000000000 -0700
4+++ gcc-4.3.2/libstdc++-v3/acinclude.m4 2008-08-28 17:55:56.000000000 -0700
5@@ -1349,7 +1349,7 @@
4 AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [ 6 AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
5 GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@], 7 GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
6 [use MODEL for target locale package], 8 [use MODEL for target locale package],
@@ -9,7 +11,7 @@
9 11
10 # Deal with gettext issues. Default to not using it (=no) until we detect 12 # Deal with gettext issues. Default to not using it (=no) until we detect
11 # support for it later. Let the user turn it off via --e/d, but let that 13 # support for it later. Let the user turn it off via --e/d, but let that
12@@ -1385,6 +1385,9 @@ 14@@ -1370,6 +1370,9 @@
13 # Default to "generic". 15 # Default to "generic".
14 if test $enable_clocale_flag = auto; then 16 if test $enable_clocale_flag = auto; then
15 case ${target_os} in 17 case ${target_os} in
@@ -17,9 +19,9 @@
17+ enable_clocale_flag=uclibc 19+ enable_clocale_flag=uclibc
18+ ;; 20+ ;;
19 linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) 21 linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
20 AC_EGREP_CPP([_GLIBCXX_ok], [ 22 enable_clocale_flag=gnu
21 #include <features.h> 23 ;;
22@@ -1528,6 +1531,40 @@ 24@@ -1541,6 +1544,40 @@
23 CTIME_CC=config/locale/generic/time_members.cc 25 CTIME_CC=config/locale/generic/time_members.cc
24 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h 26 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
25 ;; 27 ;;
@@ -60,8 +62,10 @@
60 esac 62 esac
61 63
62 # This is where the testsuite looks for locale catalogs, using the 64 # This is where the testsuite looks for locale catalogs, using the
63--- gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 65Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
64+++ gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 66===================================================================
67--- /dev/null 1970-01-01 00:00:00.000000000 +0000
68+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2008-08-28 17:55:56.000000000 -0700
65@@ -0,0 +1,63 @@ 69@@ -0,0 +1,63 @@
66+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- 70+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
67+ 71+
@@ -102,7 +106,7 @@
102+#endif 106+#endif
103+ 107+
104+#ifdef __UCLIBC_HAS_XLOCALE__ 108+#ifdef __UCLIBC_HAS_XLOCALE__
105+ 109+
106+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; 110+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
107+extern "C" __typeof(strcoll_l) __strcoll_l; 111+extern "C" __typeof(strcoll_l) __strcoll_l;
108+extern "C" __typeof(strftime_l) __strftime_l; 112+extern "C" __typeof(strftime_l) __strftime_l;
@@ -123,11 +127,13 @@
123+extern "C" __typeof(wcsftime_l) __wcsftime_l; 127+extern "C" __typeof(wcsftime_l) __wcsftime_l;
124+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; 128+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
125+extern "C" __typeof(wctype_l) __wctype_l; 129+extern "C" __typeof(wctype_l) __wctype_l;
126+#endif 130+#endif
127+ 131+
128+#endif // GLIBC 2.3 and later 132+#endif // GLIBC 2.3 and later
129--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc 133Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc
130+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc 134===================================================================
135--- /dev/null 1970-01-01 00:00:00.000000000 +0000
136+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc 2008-08-28 17:55:56.000000000 -0700
131@@ -0,0 +1,160 @@ 137@@ -0,0 +1,160 @@
132+// Wrapper for underlying C-language localization -*- C++ -*- 138+// Wrapper for underlying C-language localization -*- C++ -*-
133+ 139+
@@ -184,11 +190,11 @@
184+#define __duplocale(a) __c_locale() 190+#define __duplocale(a) __c_locale()
185+#endif 191+#endif
186+ 192+
187+namespace std 193+namespace std
188+{ 194+{
189+ template<> 195+ template<>
190+ void 196+ void
191+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, 197+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
192+ const __c_locale& __cloc) 198+ const __c_locale& __cloc)
193+ { 199+ {
194+ if (!(__err & ios_base::failbit)) 200+ if (!(__err & ios_base::failbit))
@@ -205,7 +211,7 @@
205+ 211+
206+ template<> 212+ template<>
207+ void 213+ void
208+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, 214+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
209+ const __c_locale& __cloc) 215+ const __c_locale& __cloc)
210+ { 216+ {
211+ if (!(__err & ios_base::failbit)) 217+ if (!(__err & ios_base::failbit))
@@ -238,7 +244,7 @@
238+ } 244+ }
239+ 245+
240+ void 246+ void
241+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, 247+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
242+ __c_locale __old) 248+ __c_locale __old)
243+ { 249+ {
244+ __cloc = __newlocale(1 << LC_ALL, __s, __old); 250+ __cloc = __newlocale(1 << LC_ALL, __s, __old);
@@ -251,12 +257,12 @@
251+ } 257+ }
252+#endif 258+#endif
253+ } 259+ }
254+ 260+
255+ void 261+ void
256+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) 262+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
257+ { 263+ {
258+ if (_S_get_c_locale() != __cloc) 264+ if (_S_get_c_locale() != __cloc)
259+ __freelocale(__cloc); 265+ __freelocale(__cloc);
260+ } 266+ }
261+ 267+
262+ __c_locale 268+ __c_locale
@@ -268,19 +274,19 @@
268+{ 274+{
269+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = 275+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
270+ { 276+ {
271+ "LC_CTYPE", 277+ "LC_CTYPE",
272+ "LC_NUMERIC", 278+ "LC_NUMERIC",
273+ "LC_TIME", 279+ "LC_TIME",
274+ "LC_COLLATE", 280+ "LC_COLLATE",
275+ "LC_MONETARY", 281+ "LC_MONETARY",
276+ "LC_MESSAGES", 282+ "LC_MESSAGES",
277+#if _GLIBCXX_NUM_CATEGORIES != 0 283+#if _GLIBCXX_NUM_CATEGORIES != 0
278+ "LC_PAPER", 284+ "LC_PAPER",
279+ "LC_NAME", 285+ "LC_NAME",
280+ "LC_ADDRESS", 286+ "LC_ADDRESS",
281+ "LC_TELEPHONE", 287+ "LC_TELEPHONE",
282+ "LC_MEASUREMENT", 288+ "LC_MEASUREMENT",
283+ "LC_IDENTIFICATION" 289+ "LC_IDENTIFICATION"
284+#endif 290+#endif
285+ }; 291+ };
286+} 292+}
@@ -289,8 +295,10 @@
289+{ 295+{
290+ const char* const* const locale::_S_categories = __gnu_cxx::category_names; 296+ const char* const* const locale::_S_categories = __gnu_cxx::category_names;
291+} // namespace std 297+} // namespace std
292--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.h 298Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h
293+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.h 299===================================================================
300--- /dev/null 1970-01-01 00:00:00.000000000 +0000
301+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h 2008-08-28 17:55:56.000000000 -0700
294@@ -0,0 +1,117 @@ 302@@ -0,0 +1,117 @@
295+// Wrapper for underlying C-language localization -*- C++ -*- 303+// Wrapper for underlying C-language localization -*- C++ -*-
296+ 304+
@@ -356,7 +364,7 @@
356+#endif 364+#endif
357+// #define _GLIBCXX_NUM_CATEGORIES 6 365+// #define _GLIBCXX_NUM_CATEGORIES 6
358+#define _GLIBCXX_NUM_CATEGORIES 0 366+#define _GLIBCXX_NUM_CATEGORIES 0
359+ 367+
360+#ifdef __UCLIBC_HAS_XLOCALE__ 368+#ifdef __UCLIBC_HAS_XLOCALE__
361+namespace __gnu_cxx 369+namespace __gnu_cxx
362+{ 370+{
@@ -378,7 +386,7 @@
378+ // be avoided. 386+ // be avoided.
379+ template<typename _Tv> 387+ template<typename _Tv>
380+ int 388+ int
381+ __convert_from_v(char* __out, 389+ __convert_from_v(char* __out,
382+ const int __size __attribute__ ((__unused__)), 390+ const int __size __attribute__ ((__unused__)),
383+ const char* __fmt, 391+ const char* __fmt,
384+#ifdef __UCLIBC_HAS_XCLOCALE__ 392+#ifdef __UCLIBC_HAS_XCLOCALE__
@@ -409,9 +417,11 @@
409+} 417+}
410+ 418+
411+#endif 419+#endif
412--- gcc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 420Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
413+++ gcc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 421===================================================================
414@@ -0,0 +1,306 @@ 422--- /dev/null 1970-01-01 00:00:00.000000000 +0000
423+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2008-08-28 17:55:56.000000000 -0700
424@@ -0,0 +1,308 @@
415+// std::codecvt implementation details, GNU version -*- C++ -*- 425+// std::codecvt implementation details, GNU version -*- C++ -*-
416+ 426+
417+// Copyright (C) 2002, 2003 Free Software Foundation, Inc. 427+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
@@ -448,6 +458,8 @@
448+// Written by Benjamin Kosnik <bkoz@redhat.com> 458+// Written by Benjamin Kosnik <bkoz@redhat.com>
449+ 459+
450+#include <locale> 460+#include <locale>
461+#include <cstdlib> // For MB_CUR_MAX
462+#include <climits> // For MB_LEN_MAX
451+#include <bits/c++locale_internal.h> 463+#include <bits/c++locale_internal.h>
452+ 464+
453+namespace std 465+namespace std
@@ -456,7 +468,7 @@
456+#ifdef _GLIBCXX_USE_WCHAR_T 468+#ifdef _GLIBCXX_USE_WCHAR_T
457+ codecvt_base::result 469+ codecvt_base::result
458+ codecvt<wchar_t, char, mbstate_t>:: 470+ codecvt<wchar_t, char, mbstate_t>::
459+ do_out(state_type& __state, const intern_type* __from, 471+ do_out(state_type& __state, const intern_type* __from,
460+ const intern_type* __from_end, const intern_type*& __from_next, 472+ const intern_type* __from_end, const intern_type*& __from_next,
461+ extern_type* __to, extern_type* __to_end, 473+ extern_type* __to, extern_type* __to_end,
462+ extern_type*& __to_next) const 474+ extern_type*& __to_next) const
@@ -526,12 +538,12 @@
526+ __uselocale(__old); 538+ __uselocale(__old);
527+#endif 539+#endif
528+ 540+
529+ return __ret; 541+ return __ret;
530+ } 542+ }
531+ 543+
532+ codecvt_base::result 544+ codecvt_base::result
533+ codecvt<wchar_t, char, mbstate_t>:: 545+ codecvt<wchar_t, char, mbstate_t>::
534+ do_in(state_type& __state, const extern_type* __from, 546+ do_in(state_type& __state, const extern_type* __from,
535+ const extern_type* __from_end, const extern_type*& __from_next, 547+ const extern_type* __from_end, const extern_type*& __from_next,
536+ intern_type* __to, intern_type* __to_end, 548+ intern_type* __to, intern_type* __to_end,
537+ intern_type*& __to_next) const 549+ intern_type*& __to_next) const
@@ -575,12 +587,12 @@
575+ break; 587+ break;
576+ } 588+ }
577+ __from_next = __from; 589+ __from_next = __from;
578+ __state = __tmp_state; 590+ __state = __tmp_state;
579+ __ret = error; 591+ __ret = error;
580+ } 592+ }
581+ else if (__from_next && __from_next < __from_chunk_end) 593+ else if (__from_next && __from_next < __from_chunk_end)
582+ { 594+ {
583+ // It is unclear what to return in this case (see DR 382). 595+ // It is unclear what to return in this case (see DR 382).
584+ __to_next += __conv; 596+ __to_next += __conv;
585+ __ret = partial; 597+ __ret = partial;
586+ } 598+ }
@@ -595,7 +607,7 @@
595+ if (__to_next < __to_end) 607+ if (__to_next < __to_end)
596+ { 608+ {
597+ // XXX Probably wrong for stateful encodings 609+ // XXX Probably wrong for stateful encodings
598+ __tmp_state = __state; 610+ __tmp_state = __state;
599+ ++__from_next; 611+ ++__from_next;
600+ *__to_next++ = L'\0'; 612+ *__to_next++ = L'\0';
601+ } 613+ }
@@ -608,10 +620,10 @@
608+ __uselocale(__old); 620+ __uselocale(__old);
609+#endif 621+#endif
610+ 622+
611+ return __ret; 623+ return __ret;
612+ } 624+ }
613+ 625+
614+ int 626+ int
615+ codecvt<wchar_t, char, mbstate_t>:: 627+ codecvt<wchar_t, char, mbstate_t>::
616+ do_encoding() const throw() 628+ do_encoding() const throw()
617+ { 629+ {
@@ -627,9 +639,9 @@
627+ __uselocale(__old); 639+ __uselocale(__old);
628+#endif 640+#endif
629+ return __ret; 641+ return __ret;
630+ } 642+ }
631+ 643+
632+ int 644+ int
633+ codecvt<wchar_t, char, mbstate_t>:: 645+ codecvt<wchar_t, char, mbstate_t>::
634+ do_max_length() const throw() 646+ do_max_length() const throw()
635+ { 647+ {
@@ -643,8 +655,8 @@
643+#endif 655+#endif
644+ return __ret; 656+ return __ret;
645+ } 657+ }
646+ 658+
647+ int 659+ int
648+ codecvt<wchar_t, char, mbstate_t>:: 660+ codecvt<wchar_t, char, mbstate_t>::
649+ do_length(state_type& __state, const extern_type* __from, 661+ do_length(state_type& __state, const extern_type* __from,
650+ const extern_type* __end, size_t __max) const 662+ const extern_type* __end, size_t __max) const
@@ -659,10 +671,10 @@
659+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: 671+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
660+ // in case we advance past it and then continue, in a loop. 672+ // in case we advance past it and then continue, in a loop.
661+ // NB: mbsnrtowcs is a GNU extension 673+ // NB: mbsnrtowcs is a GNU extension
662+ 674+
663+ // A dummy internal buffer is needed in order for mbsnrtocws to consider 675+ // A dummy internal buffer is needed in order for mbsnrtocws to consider
664+ // its fourth parameter (it wouldn't with NULL as first parameter). 676+ // its fourth parameter (it wouldn't with NULL as first parameter).
665+ wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) 677+ wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t)
666+ * __max)); 678+ * __max));
667+ while (__from < __end && __max) 679+ while (__from < __end && __max)
668+ { 680+ {
@@ -696,7 +708,7 @@
696+ } 708+ }
697+ if (!__from) 709+ if (!__from)
698+ __from = __from_chunk_end; 710+ __from = __from_chunk_end;
699+ 711+
700+ __ret += __from - __tmp_from; 712+ __ret += __from - __tmp_from;
701+ __max -= __conv; 713+ __max -= __conv;
702+ 714+
@@ -714,12 +726,14 @@
714+ __uselocale(__old); 726+ __uselocale(__old);
715+#endif 727+#endif
716+ 728+
717+ return __ret; 729+ return __ret;
718+ } 730+ }
719+#endif 731+#endif
720+} 732+}
721--- gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc 733Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc
722+++ gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc 734===================================================================
735--- /dev/null 1970-01-01 00:00:00.000000000 +0000
736+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc 2008-08-28 17:55:56.000000000 -0700
723@@ -0,0 +1,80 @@ 737@@ -0,0 +1,80 @@
724+// std::collate implementation details, GNU version -*- C++ -*- 738+// std::collate implementation details, GNU version -*- C++ -*-
725+ 739+
@@ -771,29 +785,29 @@
771+ // These are basically extensions to char_traits, and perhaps should 785+ // These are basically extensions to char_traits, and perhaps should
772+ // be put there instead of here. 786+ // be put there instead of here.
773+ template<> 787+ template<>
774+ int 788+ int
775+ collate<char>::_M_compare(const char* __one, const char* __two) const 789+ collate<char>::_M_compare(const char* __one, const char* __two) const
776+ { 790+ {
777+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate); 791+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
778+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); 792+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
779+ } 793+ }
780+ 794+
781+ template<> 795+ template<>
782+ size_t 796+ size_t
783+ collate<char>::_M_transform(char* __to, const char* __from, 797+ collate<char>::_M_transform(char* __to, const char* __from,
784+ size_t __n) const 798+ size_t __n) const
785+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); } 799+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
786+ 800+
787+#ifdef _GLIBCXX_USE_WCHAR_T 801+#ifdef _GLIBCXX_USE_WCHAR_T
788+ template<> 802+ template<>
789+ int 803+ int
790+ collate<wchar_t>::_M_compare(const wchar_t* __one, 804+ collate<wchar_t>::_M_compare(const wchar_t* __one,
791+ const wchar_t* __two) const 805+ const wchar_t* __two) const
792+ { 806+ {
793+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate); 807+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
794+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); 808+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
795+ } 809+ }
796+ 810+
797+ template<> 811+ template<>
798+ size_t 812+ size_t
799+ collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from, 813+ collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
@@ -801,8 +815,10 @@
801+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); } 815+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
802+#endif 816+#endif
803+} 817+}
804--- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 818Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc
805+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 819===================================================================
820--- /dev/null 1970-01-01 00:00:00.000000000 +0000
821+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2008-08-28 17:55:56.000000000 -0700
806@@ -0,0 +1,300 @@ 822@@ -0,0 +1,300 @@
807+// std::ctype implementation details, GNU version -*- C++ -*- 823+// std::ctype implementation details, GNU version -*- C++ -*-
808+ 824+
@@ -857,12 +873,12 @@
857+ // various /config/os/* files. 873+ // various /config/os/* files.
858+ template<> 874+ template<>
859+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) 875+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
860+ : ctype<char>(0, false, __refs) 876+ : ctype<char>(0, false, __refs)
861+ { 877+ {
862+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) 878+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
863+ { 879+ {
864+ this->_S_destroy_c_locale(this->_M_c_locale_ctype); 880+ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
865+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s); 881+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
866+#ifdef __UCLIBC_HAS_XLOCALE__ 882+#ifdef __UCLIBC_HAS_XLOCALE__
867+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper; 883+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
868+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower; 884+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
@@ -871,7 +887,7 @@
871+ } 887+ }
872+ } 888+ }
873+ 889+
874+#ifdef _GLIBCXX_USE_WCHAR_T 890+#ifdef _GLIBCXX_USE_WCHAR_T
875+ ctype<wchar_t>::__wmask_type 891+ ctype<wchar_t>::__wmask_type
876+ ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const 892+ ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
877+ { 893+ {
@@ -916,7 +932,7 @@
916+ } 932+ }
917+ return __ret; 933+ return __ret;
918+ } 934+ }
919+ 935+
920+ wchar_t 936+ wchar_t
921+ ctype<wchar_t>::do_toupper(wchar_t __c) const 937+ ctype<wchar_t>::do_toupper(wchar_t __c) const
922+ { return __towupper_l(__c, _M_c_locale_ctype); } 938+ { return __towupper_l(__c, _M_c_locale_ctype); }
@@ -931,11 +947,11 @@
931+ } 947+ }
932+ return __hi; 948+ return __hi;
933+ } 949+ }
934+ 950+
935+ wchar_t 951+ wchar_t
936+ ctype<wchar_t>::do_tolower(wchar_t __c) const 952+ ctype<wchar_t>::do_tolower(wchar_t __c) const
937+ { return __towlower_l(__c, _M_c_locale_ctype); } 953+ { return __towlower_l(__c, _M_c_locale_ctype); }
938+ 954+
939+ const wchar_t* 955+ const wchar_t*
940+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const 956+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
941+ { 957+ {
@@ -950,11 +966,11 @@
950+ bool 966+ bool
951+ ctype<wchar_t>:: 967+ ctype<wchar_t>::
952+ do_is(mask __m, wchar_t __c) const 968+ do_is(mask __m, wchar_t __c) const
953+ { 969+ {
954+ // Highest bitmask in ctype_base == 10, but extra in "C" 970+ // Highest bitmask in ctype_base == 10, but extra in "C"
955+ // library for blank. 971+ // library for blank.
956+ bool __ret = false; 972+ bool __ret = false;
957+ const size_t __bitmasksize = 11; 973+ const size_t __bitmasksize = 11;
958+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) 974+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
959+ if (__m & _M_bit[__bitcur] 975+ if (__m & _M_bit[__bitcur]
960+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) 976+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
@@ -962,10 +978,10 @@
962+ __ret = true; 978+ __ret = true;
963+ break; 979+ break;
964+ } 980+ }
965+ return __ret; 981+ return __ret;
966+ } 982+ }
967+ 983+
968+ const wchar_t* 984+ const wchar_t*
969+ ctype<wchar_t>:: 985+ ctype<wchar_t>::
970+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const 986+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
971+ { 987+ {
@@ -973,7 +989,7 @@
973+ { 989+ {
974+ // Highest bitmask in ctype_base == 10, but extra in "C" 990+ // Highest bitmask in ctype_base == 10, but extra in "C"
975+ // library for blank. 991+ // library for blank.
976+ const size_t __bitmasksize = 11; 992+ const size_t __bitmasksize = 11;
977+ mask __m = 0; 993+ mask __m = 0;
978+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) 994+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
979+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype)) 995+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
@@ -982,8 +998,8 @@
982+ } 998+ }
983+ return __hi; 999+ return __hi;
984+ } 1000+ }
985+ 1001+
986+ const wchar_t* 1002+ const wchar_t*
987+ ctype<wchar_t>:: 1003+ ctype<wchar_t>::
988+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const 1004+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
989+ { 1005+ {
@@ -1006,7 +1022,7 @@
1006+ do_widen(char __c) const 1022+ do_widen(char __c) const
1007+ { return _M_widen[static_cast<unsigned char>(__c)]; } 1023+ { return _M_widen[static_cast<unsigned char>(__c)]; }
1008+ 1024+
1009+ const char* 1025+ const char*
1010+ ctype<wchar_t>:: 1026+ ctype<wchar_t>::
1011+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const 1027+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
1012+ { 1028+ {
@@ -1032,12 +1048,12 @@
1032+#ifdef __UCLIBC_HAS_XLOCALE__ 1048+#ifdef __UCLIBC_HAS_XLOCALE__
1033+ __uselocale(__old); 1049+ __uselocale(__old);
1034+#endif 1050+#endif
1035+ return (__c == EOF ? __dfault : static_cast<char>(__c)); 1051+ return (__c == EOF ? __dfault : static_cast<char>(__c));
1036+ } 1052+ }
1037+ 1053+
1038+ const wchar_t* 1054+ const wchar_t*
1039+ ctype<wchar_t>:: 1055+ ctype<wchar_t>::
1040+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, 1056+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
1041+ char* __dest) const 1057+ char* __dest) const
1042+ { 1058+ {
1043+#ifdef __UCLIBC_HAS_XLOCALE__ 1059+#ifdef __UCLIBC_HAS_XLOCALE__
@@ -1094,7 +1110,7 @@
1094+ _M_widen[__j] = btowc(__j); 1110+ _M_widen[__j] = btowc(__j);
1095+ 1111+
1096+ for (size_t __k = 0; __k <= 11; ++__k) 1112+ for (size_t __k = 0; __k <= 11; ++__k)
1097+ { 1113+ {
1098+ _M_bit[__k] = static_cast<mask>(_ISbit(__k)); 1114+ _M_bit[__k] = static_cast<mask>(_ISbit(__k));
1099+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]); 1115+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
1100+ } 1116+ }
@@ -1104,8 +1120,10 @@
1104+ } 1120+ }
1105+#endif // _GLIBCXX_USE_WCHAR_T 1121+#endif // _GLIBCXX_USE_WCHAR_T
1106+} 1122+}
1107--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc 1123Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc
1108+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc 1124===================================================================
1125--- /dev/null 1970-01-01 00:00:00.000000000 +0000
1126+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc 2008-08-28 17:55:56.000000000 -0700
1109@@ -0,0 +1,100 @@ 1127@@ -0,0 +1,100 @@
1110+// std::messages implementation details, GNU version -*- C++ -*- 1128+// std::messages implementation details, GNU version -*- C++ -*-
1111+ 1129+
@@ -1207,8 +1225,10 @@
1207+ } 1225+ }
1208+#endif 1226+#endif
1209+} 1227+}
1210--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h 1228Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h
1211+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h 1229===================================================================
1230--- /dev/null 1970-01-01 00:00:00.000000000 +0000
1231+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h 2008-08-28 17:55:56.000000000 -0700
1212@@ -0,0 +1,118 @@ 1232@@ -0,0 +1,118 @@
1213+// std::messages implementation details, GNU version -*- C++ -*- 1233+// std::messages implementation details, GNU version -*- C++ -*-
1214+ 1234+
@@ -1262,13 +1282,13 @@
1262+ // Non-virtual member functions. 1282+ // Non-virtual member functions.
1263+ template<typename _CharT> 1283+ template<typename _CharT>
1264+ messages<_CharT>::messages(size_t __refs) 1284+ messages<_CharT>::messages(size_t __refs)
1265+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 1285+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
1266+ _M_name_messages(_S_get_c_name()) 1286+ _M_name_messages(_S_get_c_name())
1267+ { } 1287+ { }
1268+ 1288+
1269+ template<typename _CharT> 1289+ template<typename _CharT>
1270+ messages<_CharT>::messages(__c_locale __cloc, const char* __s, 1290+ messages<_CharT>::messages(__c_locale __cloc, const char* __s,
1271+ size_t __refs) 1291+ size_t __refs)
1272+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)), 1292+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
1273+ _M_name_messages(__s) 1293+ _M_name_messages(__s)
1274+ { 1294+ {
@@ -1278,28 +1298,28 @@
1278+ } 1298+ }
1279+ 1299+
1280+ template<typename _CharT> 1300+ template<typename _CharT>
1281+ typename messages<_CharT>::catalog 1301+ typename messages<_CharT>::catalog
1282+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 1302+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
1283+ const char* __dir) const 1303+ const char* __dir) const
1284+ { 1304+ {
1285+ __bindtextdomain(__s.c_str(), __dir); 1305+ __bindtextdomain(__s.c_str(), __dir);
1286+ return this->do_open(__s, __loc); 1306+ return this->do_open(__s, __loc);
1287+ } 1307+ }
1288+ 1308+
1289+ // Virtual member functions. 1309+ // Virtual member functions.
1290+ template<typename _CharT> 1310+ template<typename _CharT>
1291+ messages<_CharT>::~messages() 1311+ messages<_CharT>::~messages()
1292+ { 1312+ {
1293+ if (_M_name_messages != _S_get_c_name()) 1313+ if (_M_name_messages != _S_get_c_name())
1294+ delete [] _M_name_messages; 1314+ delete [] _M_name_messages;
1295+ _S_destroy_c_locale(_M_c_locale_messages); 1315+ _S_destroy_c_locale(_M_c_locale_messages);
1296+ } 1316+ }
1297+ 1317+
1298+ template<typename _CharT> 1318+ template<typename _CharT>
1299+ typename messages<_CharT>::catalog 1319+ typename messages<_CharT>::catalog
1300+ messages<_CharT>::do_open(const basic_string<char>& __s, 1320+ messages<_CharT>::do_open(const basic_string<char>& __s,
1301+ const locale&) const 1321+ const locale&) const
1302+ { 1322+ {
1303+ // No error checking is done, assume the catalog exists and can 1323+ // No error checking is done, assume the catalog exists and can
1304+ // be used. 1324+ // be used.
1305+ __textdomain(__s.c_str()); 1325+ __textdomain(__s.c_str());
@@ -1307,15 +1327,15 @@
1307+ } 1327+ }
1308+ 1328+
1309+ template<typename _CharT> 1329+ template<typename _CharT>
1310+ void 1330+ void
1311+ messages<_CharT>::do_close(catalog) const 1331+ messages<_CharT>::do_close(catalog) const
1312+ { } 1332+ { }
1313+ 1333+
1314+ // messages_byname 1334+ // messages_byname
1315+ template<typename _CharT> 1335+ template<typename _CharT>
1316+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) 1336+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
1317+ : messages<_CharT>(__refs) 1337+ : messages<_CharT>(__refs)
1318+ { 1338+ {
1319+ if (this->_M_name_messages != locale::facet::_S_get_c_name()) 1339+ if (this->_M_name_messages != locale::facet::_S_get_c_name())
1320+ delete [] this->_M_name_messages; 1340+ delete [] this->_M_name_messages;
1321+ char* __tmp = new char[std::strlen(__s) + 1]; 1341+ char* __tmp = new char[std::strlen(__s) + 1];
@@ -1325,11 +1345,13 @@
1325+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) 1345+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
1326+ { 1346+ {
1327+ this->_S_destroy_c_locale(this->_M_c_locale_messages); 1347+ this->_S_destroy_c_locale(this->_M_c_locale_messages);
1328+ this->_S_create_c_locale(this->_M_c_locale_messages, __s); 1348+ this->_S_create_c_locale(this->_M_c_locale_messages, __s);
1329+ } 1349+ }
1330+ } 1350+ }
1331--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1351Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc
1332+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1352===================================================================
1353--- /dev/null 1970-01-01 00:00:00.000000000 +0000
1354+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2008-08-28 17:55:56.000000000 -0700
1333@@ -0,0 +1,692 @@ 1355@@ -0,0 +1,692 @@
1334+// std::moneypunct implementation details, GNU version -*- C++ -*- 1356+// std::moneypunct implementation details, GNU version -*- C++ -*-
1335+ 1357+
@@ -1386,7 +1408,7 @@
1386+ // space none symbol sign value 1408+ // space none symbol sign value
1387+ money_base::pattern 1409+ money_base::pattern
1388+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn) 1410+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
1389+ { 1411+ {
1390+ pattern __ret; 1412+ pattern __ret;
1391+ 1413+
1392+ // This insanely complicated routine attempts to construct a valid 1414+ // This insanely complicated routine attempts to construct a valid
@@ -1394,7 +1416,7 @@
1394+ 1416+
1395+ // if (__precedes) symbol -> value 1417+ // if (__precedes) symbol -> value
1396+ // else value -> symbol 1418+ // else value -> symbol
1397+ 1419+
1398+ // if (__space) space 1420+ // if (__space) space
1399+ // else none 1421+ // else none
1400+ 1422+
@@ -1479,7 +1501,7 @@
1479+ if (__precedes) 1501+ if (__precedes)
1480+ { 1502+ {
1481+ __ret.field[0] = sign; 1503+ __ret.field[0] = sign;
1482+ __ret.field[1] = symbol; 1504+ __ret.field[1] = symbol;
1483+ if (__space) 1505+ if (__space)
1484+ { 1506+ {
1485+ __ret.field[2] = space; 1507+ __ret.field[2] = space;
@@ -1487,7 +1509,7 @@
1487+ } 1509+ }
1488+ else 1510+ else
1489+ { 1511+ {
1490+ __ret.field[2] = value; 1512+ __ret.field[2] = value;
1491+ __ret.field[3] = none; 1513+ __ret.field[3] = none;
1492+ } 1514+ }
1493+ } 1515+ }
@@ -1548,9 +1570,9 @@
1548+ return __ret; 1570+ return __ret;
1549+ } 1571+ }
1550+ 1572+
1551+ template<> 1573+ template<>
1552+ void 1574+ void
1553+ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, 1575+ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
1554+ const char*) 1576+ const char*)
1555+ { 1577+ {
1556+ if (!_M_data) 1578+ if (!_M_data)
@@ -1579,9 +1601,9 @@
1579+ else 1601+ else
1580+ { 1602+ {
1581+ // Named locale. 1603+ // Named locale.
1582+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 1604+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
1583+ __cloc)); 1605+ __cloc));
1584+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 1606+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
1585+ __cloc)); 1607+ __cloc));
1586+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); 1608+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
1587+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); 1609+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
@@ -1592,30 +1614,30 @@
1592+ if (!__nposn) 1614+ if (!__nposn)
1593+ _M_data->_M_negative_sign = "()"; 1615+ _M_data->_M_negative_sign = "()";
1594+ else 1616+ else
1595+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, 1617+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
1596+ __cloc); 1618+ __cloc);
1597+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); 1619+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
1598+ 1620+
1599+ // _Intl == true 1621+ // _Intl == true
1600+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); 1622+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
1601+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); 1623+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
1602+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 1624+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
1603+ __cloc)); 1625+ __cloc));
1604+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); 1626+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
1605+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); 1627+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
1606+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); 1628+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
1607+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 1629+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
1608+ __pposn); 1630+ __pposn);
1609+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); 1631+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
1610+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); 1632+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
1611+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 1633+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
1612+ __nposn); 1634+ __nposn);
1613+ } 1635+ }
1614+ } 1636+ }
1615+ 1637+
1616+ template<> 1638+ template<>
1617+ void 1639+ void
1618+ moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, 1640+ moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
1619+ const char*) 1641+ const char*)
1620+ { 1642+ {
1621+ if (!_M_data) 1643+ if (!_M_data)
@@ -1644,9 +1666,9 @@
1644+ else 1666+ else
1645+ { 1667+ {
1646+ // Named locale. 1668+ // Named locale.
1647+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 1669+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
1648+ __cloc)); 1670+ __cloc));
1649+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 1671+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
1650+ __cloc)); 1672+ __cloc));
1651+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); 1673+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
1652+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); 1674+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
@@ -1668,27 +1690,27 @@
1668+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); 1690+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
1669+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); 1691+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
1670+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); 1692+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
1671+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 1693+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
1672+ __pposn); 1694+ __pposn);
1673+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); 1695+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
1674+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); 1696+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
1675+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 1697+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
1676+ __nposn); 1698+ __nposn);
1677+ } 1699+ }
1678+ } 1700+ }
1679+ 1701+
1680+ template<> 1702+ template<>
1681+ moneypunct<char, true>::~moneypunct() 1703+ moneypunct<char, true>::~moneypunct()
1682+ { delete _M_data; } 1704+ { delete _M_data; }
1683+ 1705+
1684+ template<> 1706+ template<>
1685+ moneypunct<char, false>::~moneypunct() 1707+ moneypunct<char, false>::~moneypunct()
1686+ { delete _M_data; } 1708+ { delete _M_data; }
1687+ 1709+
1688+#ifdef _GLIBCXX_USE_WCHAR_T 1710+#ifdef _GLIBCXX_USE_WCHAR_T
1689+ template<> 1711+ template<>
1690+ void 1712+ void
1691+ moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, 1713+ moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
1692+#ifdef __UCLIBC_HAS_XLOCALE__ 1714+#ifdef __UCLIBC_HAS_XLOCALE__
1693+ const char*) 1715+ const char*)
1694+#else 1716+#else
@@ -1775,12 +1797,12 @@
1775+ else 1797+ else
1776+ _M_data->_M_positive_sign = L""; 1798+ _M_data->_M_positive_sign = L"";
1777+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); 1799+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
1778+ 1800+
1779+ __len = strlen(__cnegsign); 1801+ __len = strlen(__cnegsign);
1780+ if (!__nposn) 1802+ if (!__nposn)
1781+ _M_data->_M_negative_sign = L"()"; 1803+ _M_data->_M_negative_sign = L"()";
1782+ else if (__len) 1804+ else if (__len)
1783+ { 1805+ {
1784+ ++__len; 1806+ ++__len;
1785+ memset(&__state, 0, sizeof(mbstate_t)); 1807+ memset(&__state, 0, sizeof(mbstate_t));
1786+ __wcs_ns = new wchar_t[__len]; 1808+ __wcs_ns = new wchar_t[__len];
@@ -1790,7 +1812,7 @@
1790+ else 1812+ else
1791+ _M_data->_M_negative_sign = L""; 1813+ _M_data->_M_negative_sign = L"";
1792+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); 1814+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
1793+ 1815+
1794+ // _Intl == true. 1816+ // _Intl == true.
1795+ __len = strlen(__ccurr); 1817+ __len = strlen(__ccurr);
1796+ if (__len) 1818+ if (__len)
@@ -1810,7 +1832,7 @@
1810+ delete _M_data; 1832+ delete _M_data;
1811+ _M_data = 0; 1833+ _M_data = 0;
1812+ delete __wcs_ps; 1834+ delete __wcs_ps;
1813+ delete __wcs_ns; 1835+ delete __wcs_ns;
1814+#ifdef __UCLIBC_HAS_XLOCALE__ 1836+#ifdef __UCLIBC_HAS_XLOCALE__
1815+ __uselocale(__old); 1837+ __uselocale(__old);
1816+#else 1838+#else
@@ -1818,18 +1840,18 @@
1818+ free(__old); 1840+ free(__old);
1819+#endif 1841+#endif
1820+ __throw_exception_again; 1842+ __throw_exception_again;
1821+ } 1843+ }
1822+ 1844+
1823+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 1845+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
1824+ __cloc)); 1846+ __cloc));
1825+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); 1847+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
1826+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); 1848+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
1827+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); 1849+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
1828+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 1850+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
1829+ __pposn); 1851+ __pposn);
1830+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); 1852+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
1831+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); 1853+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
1832+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 1854+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
1833+ __nposn); 1855+ __nposn);
1834+ 1856+
1835+#ifdef __UCLIBC_HAS_XLOCALE__ 1857+#ifdef __UCLIBC_HAS_XLOCALE__
@@ -1841,7 +1863,7 @@
1841+ } 1863+ }
1842+ } 1864+ }
1843+ 1865+
1844+ template<> 1866+ template<>
1845+ void 1867+ void
1846+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc, 1868+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
1847+#ifdef __UCLIBC_HAS_XLOCALE__ 1869+#ifdef __UCLIBC_HAS_XLOCALE__
@@ -1931,12 +1953,12 @@
1931+ else 1953+ else
1932+ _M_data->_M_positive_sign = L""; 1954+ _M_data->_M_positive_sign = L"";
1933+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); 1955+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
1934+ 1956+
1935+ __len = strlen(__cnegsign); 1957+ __len = strlen(__cnegsign);
1936+ if (!__nposn) 1958+ if (!__nposn)
1937+ _M_data->_M_negative_sign = L"()"; 1959+ _M_data->_M_negative_sign = L"()";
1938+ else if (__len) 1960+ else if (__len)
1939+ { 1961+ {
1940+ ++__len; 1962+ ++__len;
1941+ memset(&__state, 0, sizeof(mbstate_t)); 1963+ memset(&__state, 0, sizeof(mbstate_t));
1942+ __wcs_ns = new wchar_t[__len]; 1964+ __wcs_ns = new wchar_t[__len];
@@ -1966,7 +1988,7 @@
1966+ delete _M_data; 1988+ delete _M_data;
1967+ _M_data = 0; 1989+ _M_data = 0;
1968+ delete __wcs_ps; 1990+ delete __wcs_ps;
1969+ delete __wcs_ns; 1991+ delete __wcs_ns;
1970+#ifdef __UCLIBC_HAS_XLOCALE__ 1992+#ifdef __UCLIBC_HAS_XLOCALE__
1971+ __uselocale(__old); 1993+ __uselocale(__old);
1972+#else 1994+#else
@@ -1980,11 +2002,11 @@
1980+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); 2002+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
1981+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); 2003+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
1982+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); 2004+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
1983+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 2005+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
1984+ __pposn); 2006+ __pposn);
1985+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); 2007+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
1986+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); 2008+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
1987+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 2009+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
1988+ __nposn); 2010+ __nposn);
1989+ 2011+
1990+#ifdef __UCLIBC_HAS_XLOCALE__ 2012+#ifdef __UCLIBC_HAS_XLOCALE__
@@ -1996,7 +2018,7 @@
1996+ } 2018+ }
1997+ } 2019+ }
1998+ 2020+
1999+ template<> 2021+ template<>
2000+ moneypunct<wchar_t, true>::~moneypunct() 2022+ moneypunct<wchar_t, true>::~moneypunct()
2001+ { 2023+ {
2002+ if (_M_data->_M_positive_sign_size) 2024+ if (_M_data->_M_positive_sign_size)
@@ -2009,7 +2031,7 @@
2009+ delete _M_data; 2031+ delete _M_data;
2010+ } 2032+ }
2011+ 2033+
2012+ template<> 2034+ template<>
2013+ moneypunct<wchar_t, false>::~moneypunct() 2035+ moneypunct<wchar_t, false>::~moneypunct()
2014+ { 2036+ {
2015+ if (_M_data->_M_positive_sign_size) 2037+ if (_M_data->_M_positive_sign_size)
@@ -2023,8 +2045,10 @@
2023+ } 2045+ }
2024+#endif 2046+#endif
2025+} 2047+}
2026--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2048Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc
2027+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2049===================================================================
2050--- /dev/null 1970-01-01 00:00:00.000000000 +0000
2051+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2008-08-28 17:55:56.000000000 -0700
2028@@ -0,0 +1,160 @@ 2052@@ -0,0 +1,160 @@
2029+// std::numpunct implementation details, GNU version -*- C++ -*- 2053+// std::numpunct implementation details, GNU version -*- C++ -*-
2030+ 2054+
@@ -2075,7 +2099,7 @@
2075+ 2099+
2076+namespace std 2100+namespace std
2077+{ 2101+{
2078+ template<> 2102+ template<>
2079+ void 2103+ void
2080+ numpunct<char>::_M_initialize_numpunct(__c_locale __cloc) 2104+ numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
2081+ { 2105+ {
@@ -2101,9 +2125,9 @@
2101+ else 2125+ else
2102+ { 2126+ {
2103+ // Named locale. 2127+ // Named locale.
2104+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, 2128+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT,
2105+ __cloc)); 2129+ __cloc));
2106+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, 2130+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP,
2107+ __cloc)); 2131+ __cloc));
2108+ 2132+
2109+ // Check for NULL, which implies no grouping. 2133+ // Check for NULL, which implies no grouping.
@@ -2122,13 +2146,13 @@
2122+ _M_data->_M_falsename = "false"; 2146+ _M_data->_M_falsename = "false";
2123+ _M_data->_M_falsename_size = 5; 2147+ _M_data->_M_falsename_size = 5;
2124+ } 2148+ }
2125+ 2149+
2126+ template<> 2150+ template<>
2127+ numpunct<char>::~numpunct() 2151+ numpunct<char>::~numpunct()
2128+ { delete _M_data; } 2152+ { delete _M_data; }
2129+ 2153+
2130+#ifdef _GLIBCXX_USE_WCHAR_T 2154+#ifdef _GLIBCXX_USE_WCHAR_T
2131+ template<> 2155+ template<>
2132+ void 2156+ void
2133+ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc) 2157+ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
2134+ { 2158+ {
@@ -2181,13 +2205,15 @@
2181+ _M_data->_M_falsename_size = 5; 2205+ _M_data->_M_falsename_size = 5;
2182+ } 2206+ }
2183+ 2207+
2184+ template<> 2208+ template<>
2185+ numpunct<wchar_t>::~numpunct() 2209+ numpunct<wchar_t>::~numpunct()
2186+ { delete _M_data; } 2210+ { delete _M_data; }
2187+ #endif 2211+ #endif
2188+} 2212+}
2189--- gcc/libstdc++-v3/config/locale/uclibc/time_members.cc 2213Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc
2190+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.cc 2214===================================================================
2215--- /dev/null 1970-01-01 00:00:00.000000000 +0000
2216+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc 2008-08-28 17:55:56.000000000 -0700
2191@@ -0,0 +1,406 @@ 2217@@ -0,0 +1,406 @@
2192+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- 2218+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
2193+ 2219+
@@ -2240,7 +2266,7 @@
2240+ template<> 2266+ template<>
2241+ void 2267+ void
2242+ __timepunct<char>:: 2268+ __timepunct<char>::
2243+ _M_put(char* __s, size_t __maxlen, const char* __format, 2269+ _M_put(char* __s, size_t __maxlen, const char* __format,
2244+ const tm* __tm) const 2270+ const tm* __tm) const
2245+ { 2271+ {
2246+#ifdef __UCLIBC_HAS_XLOCALE__ 2272+#ifdef __UCLIBC_HAS_XLOCALE__
@@ -2258,7 +2284,7 @@
2258+ __s[0] = '\0'; 2284+ __s[0] = '\0';
2259+ } 2285+ }
2260+ 2286+
2261+ template<> 2287+ template<>
2262+ void 2288+ void
2263+ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc) 2289+ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
2264+ { 2290+ {
@@ -2328,7 +2354,7 @@
2328+ } 2354+ }
2329+ else 2355+ else
2330+ { 2356+ {
2331+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 2357+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
2332+ 2358+
2333+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc); 2359+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
2334+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc); 2360+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
@@ -2393,7 +2419,7 @@
2393+ template<> 2419+ template<>
2394+ void 2420+ void
2395+ __timepunct<wchar_t>:: 2421+ __timepunct<wchar_t>::
2396+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, 2422+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
2397+ const tm* __tm) const 2423+ const tm* __tm) const
2398+ { 2424+ {
2399+#ifdef __UCLIBC_HAS_XLOCALE__ 2425+#ifdef __UCLIBC_HAS_XLOCALE__
@@ -2412,7 +2438,7 @@
2412+ __s[0] = L'\0'; 2438+ __s[0] = L'\0';
2413+ } 2439+ }
2414+ 2440+
2415+ template<> 2441+ template<>
2416+ void 2442+ void
2417+ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc) 2443+ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
2418+ { 2444+ {
@@ -2484,7 +2510,7 @@
2484+#if 0 2510+#if 0
2485+ else 2511+ else
2486+ { 2512+ {
2487+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 2513+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
2488+ 2514+
2489+ union { char *__s; wchar_t *__w; } __u; 2515+ union { char *__s; wchar_t *__w; } __u;
2490+ 2516+
@@ -2595,8 +2621,10 @@
2595+ } 2621+ }
2596+#endif 2622+#endif
2597+} 2623+}
2598--- gcc/libstdc++-v3/config/locale/uclibc/time_members.h 2624Index: gcc-4.3.2/libstdc++-v3/config/locale/uclibc/time_members.h
2599+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.h 2625===================================================================
2626--- /dev/null 1970-01-01 00:00:00.000000000 +0000
2627+++ gcc-4.3.2/libstdc++-v3/config/locale/uclibc/time_members.h 2008-08-28 17:55:56.000000000 -0700
2600@@ -0,0 +1,68 @@ 2628@@ -0,0 +1,68 @@
2601+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- 2629+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
2602+ 2630+
@@ -2635,40 +2663,42 @@
2635+// Written by Benjamin Kosnik <bkoz@redhat.com> 2663+// Written by Benjamin Kosnik <bkoz@redhat.com>
2636+ 2664+
2637+ template<typename _CharT> 2665+ template<typename _CharT>
2638+ __timepunct<_CharT>::__timepunct(size_t __refs) 2666+ __timepunct<_CharT>::__timepunct(size_t __refs)
2639+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 2667+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
2640+ _M_name_timepunct(_S_get_c_name()) 2668+ _M_name_timepunct(_S_get_c_name())
2641+ { _M_initialize_timepunct(); } 2669+ { _M_initialize_timepunct(); }
2642+ 2670+
2643+ template<typename _CharT> 2671+ template<typename _CharT>
2644+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 2672+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
2645+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), 2673+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
2646+ _M_name_timepunct(_S_get_c_name()) 2674+ _M_name_timepunct(_S_get_c_name())
2647+ { _M_initialize_timepunct(); } 2675+ { _M_initialize_timepunct(); }
2648+ 2676+
2649+ template<typename _CharT> 2677+ template<typename _CharT>
2650+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, 2678+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
2651+ size_t __refs) 2679+ size_t __refs)
2652+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 2680+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
2653+ _M_name_timepunct(__s) 2681+ _M_name_timepunct(__s)
2654+ { 2682+ {
2655+ char* __tmp = new char[std::strlen(__s) + 1]; 2683+ char* __tmp = new char[std::strlen(__s) + 1];
2656+ std::strcpy(__tmp, __s); 2684+ std::strcpy(__tmp, __s);
2657+ _M_name_timepunct = __tmp; 2685+ _M_name_timepunct = __tmp;
2658+ _M_initialize_timepunct(__cloc); 2686+ _M_initialize_timepunct(__cloc);
2659+ } 2687+ }
2660+ 2688+
2661+ template<typename _CharT> 2689+ template<typename _CharT>
2662+ __timepunct<_CharT>::~__timepunct() 2690+ __timepunct<_CharT>::~__timepunct()
2663+ { 2691+ {
2664+ if (_M_name_timepunct != _S_get_c_name()) 2692+ if (_M_name_timepunct != _S_get_c_name())
2665+ delete [] _M_name_timepunct; 2693+ delete [] _M_name_timepunct;
2666+ delete _M_data; 2694+ delete _M_data;
2667+ _S_destroy_c_locale(_M_c_locale_timepunct); 2695+ _S_destroy_c_locale(_M_c_locale_timepunct);
2668+ } 2696+ }
2669--- gcc/libstdc++-v3/configure 2697Index: gcc-4.3.2/libstdc++-v3/configure
2670+++ gcc/libstdc++-v3/configure 2698===================================================================
2671@@ -5764,7 +5764,7 @@ 2699--- gcc-4.3.2.orig/libstdc++-v3/configure 2008-07-07 12:49:54.000000000 -0700
2700+++ gcc-4.3.2/libstdc++-v3/configure 2008-08-28 18:02:13.000000000 -0700
2701@@ -14003,7 +14003,7 @@
2672 enableval="$enable_clocale" 2702 enableval="$enable_clocale"
2673 2703
2674 case "$enableval" in 2704 case "$enableval" in
@@ -2677,17 +2707,17 @@
2677 *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5 2707 *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
2678 echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;} 2708 echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
2679 { (exit 1); exit 1; }; } ;; 2709 { (exit 1); exit 1; }; } ;;
2680@@ -5789,6 +5789,9 @@ 2710@@ -14036,6 +14036,9 @@
2681 # Default to "generic". 2711 # Default to "generic".
2682 if test $enable_clocale_flag = auto; then 2712 if test $enable_clocale_flag = auto; then
2683 case ${target_os} in 2713 case ${target_os} in
2684+ linux-uclibc*) 2714+ *-uclibc*)
2685+ enable_clocale_flag=uclibc 2715+ enable_clocale_flag=uclibc
2686+ ;; 2716+ ;;
2687 linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) 2717 linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
2688 cat >conftest.$ac_ext <<_ACEOF 2718 enable_clocale_flag=gnu
2689 /* confdefs.h. */ 2719 ;;
2690@@ -6019,6 +6022,76 @@ 2720@@ -14424,6 +14427,76 @@
2691 CTIME_CC=config/locale/generic/time_members.cc 2721 CTIME_CC=config/locale/generic/time_members.cc
2692 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h 2722 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
2693 ;; 2723 ;;
@@ -2764,9 +2794,20 @@
2764 esac 2794 esac
2765 2795
2766 # This is where the testsuite looks for locale catalogs, using the 2796 # This is where the testsuite looks for locale catalogs, using the
2767--- gcc/libstdc++-v3/include/c_compatibility/wchar.h 2797@@ -17016,7 +17089,7 @@
2768+++ gcc/libstdc++-v3/include/c_compatibility/wchar.h 2798
2769@@ -101,7 +101,9 @@ 2799 # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
2800 cat > conftest.$ac_ext << EOF
2801-#line 17019 "configure"
2802+#line 17092 "configure"
2803 int main()
2804 {
2805 // NB: _Atomic_word not necessarily int.
2806Index: gcc-4.3.2/libstdc++-v3/include/c_compatibility/wchar.h
2807===================================================================
2808--- gcc-4.3.2.orig/libstdc++-v3/include/c_compatibility/wchar.h 2007-03-04 14:59:49.000000000 -0800
2809+++ gcc-4.3.2/libstdc++-v3/include/c_compatibility/wchar.h 2008-08-28 17:55:56.000000000 -0700
2810@@ -106,7 +106,9 @@
2770 using std::wmemcpy; 2811 using std::wmemcpy;
2771 using std::wmemmove; 2812 using std::wmemmove;
2772 using std::wmemset; 2813 using std::wmemset;
@@ -2776,8 +2817,10 @@
2776 2817
2777 #if _GLIBCXX_USE_C99 2818 #if _GLIBCXX_USE_C99
2778 using std::wcstold; 2819 using std::wcstold;
2779--- gcc/libstdc++-v3/include/c_std/std_cwchar.h 2820Index: gcc-4.3.2/libstdc++-v3/include/c_std/cwchar
2780+++ gcc/libstdc++-v3/include/c_std/std_cwchar.h 2821===================================================================
2822--- gcc-4.3.2.orig/libstdc++-v3/include/c_std/cwchar 2007-05-27 07:50:21.000000000 -0700
2823+++ gcc-4.3.2/libstdc++-v3/include/c_std/cwchar 2008-08-28 17:55:56.000000000 -0700
2781@@ -182,7 +182,9 @@ 2824@@ -182,7 +182,9 @@
2782 using ::wcscoll; 2825 using ::wcscoll;
2783 using ::wcscpy; 2826 using ::wcscpy;