1 diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.cc
2 --- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.cc 2003-02-28 00:09:52.000000000 -0600
3 +++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.cc 2003-08-31 10:55:17.000000000 -0500
10 +#if _GLIBCPP_NUM_CATEGORIES != 0
21 diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.h
22 --- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.h 2003-01-23 12:56:16.000000000 -0600
23 +++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.h 2003-08-31 10:55:17.000000000 -0500
25 #define _GLIBCPP_C_LOCALE_GNU 1
27 #define _GLIBCPP_NUM_CATEGORIES 6
29 +#undef _GLIBCPP_NUM_CATEGORIES
30 +#define _GLIBCPP_NUM_CATEGORIES 0
33 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
35 diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c++locale_internal.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h
36 --- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c++locale_internal.h 2002-09-05 02:46:16.000000000 -0500
37 +++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h 2003-08-31 10:55:17.000000000 -0500
39 extern "C" __typeof(towlower_l) __towlower_l;
40 extern "C" __typeof(towupper_l) __towupper_l;
41 extern "C" __typeof(wcscoll_l) __wcscoll_l;
43 extern "C" __typeof(wcsftime_l) __wcsftime_l;
45 extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
46 extern "C" __typeof(wctype_l) __wctype_l;
47 extern "C" __typeof(newlocale) __newlocale;
48 diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.cc
49 --- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.cc 2003-02-28 00:09:52.000000000 -0600
50 +++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.cc 2003-08-31 10:55:17.000000000 -0500
53 #include <bits/c++locale_internal.h>
56 +extern "C" char *__dcgettext(const char *domainname,
57 + const char *msgid, int category);
59 +#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
65 diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.h gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.h
66 --- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.h 2003-01-06 16:20:03.000000000 -0600
67 +++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.h 2003-08-31 10:55:17.000000000 -0500
70 // Written by Benjamin Kosnik <bkoz@redhat.com>
73 +extern "C" char *__textdomain(const char *domainname);
74 +extern "C" char *__bindtextdomain(const char *domainname,
75 + const char *dirname);
78 // Non-virtual member functions.
79 template<typename _CharT>
80 messages<_CharT>::messages(size_t __refs)
82 messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
83 const char* __dir) const
86 + __bindtextdomain(__s.c_str(), __dir);
88 bindtextdomain(__s.c_str(), __dir);
90 return this->do_open(__s, __loc);
95 // No error checking is done, assume the catalog exists and can
98 + __textdomain(__s.c_str());
100 textdomain(__s.c_str());
105 diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/numeric_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/numeric_members.cc
106 --- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/numeric_members.cc 2003-02-28 00:09:52.000000000 -0600
107 +++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/numeric_members.cc 2003-08-31 10:55:18.000000000 -0500
113 + _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->decimal_point_wc }).__w);
114 + _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->thousands_sep_wc }).__w);
116 _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
117 _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
119 if (_M_thousands_sep == L'\0')
122 diff -urN gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/time_members.cc gcc-3.3.1/libstdc++-v3/config/locale/gnu/time_members.cc
123 --- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/time_members.cc 2003-02-28 00:09:52.000000000 -0600
124 +++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/time_members.cc 2003-08-31 10:55:18.000000000 -0500
130 #ifdef _GLIBCPP_USE_WCHAR_T
139 diff -urN gcc-3.3.1-old/libstdc++-v3/config/os/gnu-linux/ctype_base.h gcc-3.3.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h
140 --- gcc-3.3.1-old/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2002-09-09 15:26:41.000000000 -0500
141 +++ gcc-3.3.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2003-08-31 10:55:18.000000000 -0500
145 // Non-standard typedefs.
147 + typedef const __ctype_touplow_t* __to_type;
148 + // NB: Offsets into ctype<char>::_M_table force a particular size
149 + // on the mask type. Because of this, we don't use an enum.
150 + typedef __ctype_mask_t mask;
152 typedef const int* __to_type;
154 // NB: Offsets into ctype<char>::_M_table force a particular size
155 // on the mask type. Because of this, we don't use an enum.
156 typedef unsigned short mask;
159 static const mask upper = _ISupper;
160 static const mask lower = _ISlower;
161 static const mask alpha = _ISalpha;
162 diff -urN gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cstdlib.h gcc-3.3.1/libstdc++-v3/include/c_std/std_cstdlib.h
163 --- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cstdlib.h 2003-04-18 05:08:05.000000000 -0500
164 +++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cstdlib.h 2003-08-31 10:55:18.000000000 -0500
169 +#if _GLIBCPP_USE_WCHAR_T
181 +#if _GLIBCPP_USE_WCHAR_T
187 abs(long __i) { return labs(__i); }
188 diff -urN gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.3.1/libstdc++-v3/include/c_std/std_cwchar.h
189 --- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cwchar.h 2003-04-18 05:08:05.000000000 -0500
190 +++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cwchar.h 2003-08-31 10:55:18.000000000 -0500
195 +#ifdef HAVE_WCSFTIME
201 diff -urN gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc
202 --- gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc 2003-10-07 03:40:58.000000000 -0500
203 +++ gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc 2003-11-10 14:21:45.000000000 -0600
206 #include <bits/c++locale_internal.h>
208 +#ifdef __UCLIBC_HAS_XLOCALE__
209 +struct __uclibc_locale_struct_header {
210 + const __ctype_mask_t *__ctype_b;
211 + const __ctype_touplow_t *__ctype_tolower;
212 + const __ctype_touplow_t *__ctype_toupper;
218 // NB: The other ctype<char> specializations are in src/locale.cc and
221 _S_destroy_c_locale(_M_c_locale_ctype);
222 _S_create_c_locale(_M_c_locale_ctype, __s);
223 - _M_toupper = _M_c_locale_ctype->__ctype_toupper;
224 - _M_tolower = _M_c_locale_ctype->__ctype_tolower;
225 - _M_table = _M_c_locale_ctype->__ctype_b;
226 + _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;
227 + _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;
228 + _M_table = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;
231 #ifdef _GLIBCPP_USE_WCHAR_T
232 diff -urN gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h
233 --- gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h 2002-10-08 18:32:22.000000000 -0500
234 +++ gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h 2003-11-10 14:20:37.000000000 -0600
236 // Information as gleaned from /usr/include/ctype.h
238 #if _GLIBCPP_C_LOCALE_GNU
239 +#ifdef __UCLIBC_HAS_XLOCALE__
240 +struct __uclibc_locale_struct_header {
241 + const __ctype_mask_t *__ctype_b;
242 + const __ctype_touplow_t *__ctype_tolower;
243 + const __ctype_touplow_t *__ctype_toupper;
248 +#if _GLIBCPP_C_LOCALE_GNU
249 const ctype_base::mask*
250 ctype<char>::classic_table() throw()
253 - return _S_c_locale->__ctype_b;
254 + return ((struct __uclibc_locale_struct_header *)_S_c_locale)->__ctype_b;
257 const ctype_base::mask*
259 : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
261 _M_c_locale_ctype = _S_clone_c_locale(__cloc);
262 - _M_toupper = _M_c_locale_ctype->__ctype_toupper;
263 - _M_tolower = _M_c_locale_ctype->__ctype_tolower;
264 - _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;
265 + _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;
266 + _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;
267 + _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;
270 ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
272 __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
274 _M_c_locale_ctype = _S_c_locale;
275 - _M_toupper = _M_c_locale_ctype->__ctype_toupper;
276 - _M_tolower = _M_c_locale_ctype->__ctype_tolower;
277 - _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;
278 + _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;
279 + _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;
280 + _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;
283 ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) :