add gcc 4.2.2
[openwrt.git] / toolchain / gcc / patches / 4.2.2 / 203-uclibc-locale-no__x.patch
1 --- gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h.uclibc200no__x~  2006-03-10 15:06:17 +0100
2 +++ gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h  2006-03-10 15:32:37 +0100
3 @@ -60,4 +60,49 @@
4  extern "C" __typeof(wctype_l) __wctype_l;
5  #endif 
6  
7 +# define __nl_langinfo_l nl_langinfo_l
8 +# define __strcoll_l strcoll_l
9 +# define __strftime_l strftime_l
10 +# define __strtod_l strtod_l
11 +# define __strtof_l strtof_l
12 +# define __strtold_l strtold_l
13 +# define __strxfrm_l strxfrm_l
14 +# define __newlocale newlocale
15 +# define __freelocale freelocale
16 +# define __duplocale duplocale
17 +# define __uselocale uselocale
18 +
19 +# ifdef _GLIBCXX_USE_WCHAR_T
20 +#  define __iswctype_l iswctype_l
21 +#  define __towlower_l towlower_l
22 +#  define __towupper_l towupper_l
23 +#  define __wcscoll_l wcscoll_l
24 +#  define __wcsftime_l wcsftime_l
25 +#  define __wcsxfrm_l wcsxfrm_l
26 +#  define __wctype_l wctype_l
27 +# endif
28 +
29 +#else
30 +# define __nl_langinfo_l(N, L)       nl_langinfo((N))
31 +# define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
32 +# define __strtod_l(S, E, L)         strtod((S), (E))
33 +# define __strtof_l(S, E, L)         strtof((S), (E))
34 +# define __strtold_l(S, E, L)        strtold((S), (E))
35 +# define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
36 +# warning should dummy __newlocale check for C|POSIX ?
37 +# define __newlocale(a, b, c)        NULL
38 +# define __freelocale(a)             ((void)0)
39 +# define __duplocale(a)              __c_locale()
40 +//# define __uselocale ?
41 +//
42 +# ifdef _GLIBCXX_USE_WCHAR_T
43 +#  define __iswctype_l(C, M, L)       iswctype((C), (M))
44 +#  define __towlower_l(C, L)          towlower((C))
45 +#  define __towupper_l(C, L)          towupper((C))
46 +#  define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
47 +//#  define __wcsftime_l(S, M, F, T, L)  wcsftime((S), (M), (F), (T)) 
48 +#  define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
49 +#  define __wctype_l(S, L)            wctype((S))
50 +# endif
51 +
52  #endif // GLIBC 2.3 and later
53 --- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200no__x~   2006-03-10 15:06:17 +0100
54 +++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc   2006-03-10 15:32:37 +0100
55 @@ -39,20 +39,6 @@
56  #include <langinfo.h>
57  #include <bits/c++locale_internal.h>
58  
59 -#ifndef __UCLIBC_HAS_XLOCALE__
60 -#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
61 -#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
62 -#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
63 -#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
64 -#define __strtof_l(S, E, L)         strtof((S), (E))
65 -#define __strtod_l(S, E, L)         strtod((S), (E))
66 -#define __strtold_l(S, E, L)        strtold((S), (E))
67 -#warning should dummy __newlocale check for C|POSIX ?
68 -#define __newlocale(a, b, c)        NULL
69 -#define __freelocale(a)             ((void)0)
70 -#define __duplocale(a)              __c_locale()
71 -#endif
72 -
73  namespace std 
74  {
75    template<>
76 --- gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc.uclibc200no__x~    2006-03-10 15:06:17 +0100
77 +++ gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc    2006-03-10 15:32:37 +0100
78 @@ -36,13 +36,6 @@
79  #include <locale>
80  #include <bits/c++locale_internal.h>
81  
82 -#ifndef __UCLIBC_HAS_XLOCALE__
83 -#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
84 -#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
85 -#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
86 -#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
87 -#endif
88 -
89  namespace std
90  {
91    // These are basically extensions to char_traits, and perhaps should
92 --- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200no__x~   2006-03-10 15:06:17 +0100
93 +++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc   2006-03-10 15:32:37 +0100
94 @@ -43,10 +43,6 @@
95  #warning tailor for stub locale support
96  #endif
97  
98 -#ifndef __UCLIBC_HAS_XLOCALE__
99 -#define __nl_langinfo_l(N, L)         nl_langinfo((N))
100 -#endif
101 -
102  namespace std
103  {
104    // Construct and return valid pattern consisting of some combination of:
105 --- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200no__x~    2006-03-10 15:06:17 +0100
106 +++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc    2006-03-10 15:32:37 +0100
107 @@ -41,9 +41,6 @@
108  #ifdef __UCLIBC_MJN3_ONLY__
109  #warning tailor for stub locale support
110  #endif
111 -#ifndef __UCLIBC_HAS_XLOCALE__
112 -#define __nl_langinfo_l(N, L)         nl_langinfo((N))
113 -#endif
114  
115  namespace std
116  {
117 --- gcc/libstdc++-v3/config/locale/uclibc/time_members.cc.uclibc200no__x~       2006-03-10 15:06:17 +0100
118 +++ gcc/libstdc++-v3/config/locale/uclibc/time_members.cc       2006-03-10 15:32:37 +0100
119 @@ -40,9 +40,6 @@
120  #ifdef __UCLIBC_MJN3_ONLY__
121  #warning tailor for stub locale support
122  #endif
123 -#ifndef __UCLIBC_HAS_XLOCALE__
124 -#define __nl_langinfo_l(N, L)         nl_langinfo((N))
125 -#endif
126  
127  namespace std
128  {
129 --- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200no__x~      2006-03-10 15:06:17 +0100
130 +++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc      2006-03-10 15:32:37 +0100
131 @@ -38,13 +38,6 @@
132  #undef _LIBC
133  #include <bits/c++locale_internal.h>
134  
135 -#ifndef __UCLIBC_HAS_XLOCALE__
136 -#define __wctype_l(S, L)           wctype((S))
137 -#define __towupper_l(C, L)         towupper((C))
138 -#define __towlower_l(C, L)         towlower((C))
139 -#define __iswctype_l(C, M, L)      iswctype((C), (M))
140 -#endif
141 -
142  namespace std
143  {
144    // NB: The other ctype<char> specializations are in src/locale.cc and
145 --- gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc.uclibc200no__x~   2006-03-10 15:06:17 +0100
146 +++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc   2006-03-10 15:32:37 +0100
147 @@ -39,13 +39,10 @@
148  #ifdef __UCLIBC_MJN3_ONLY__
149  #warning fix gettext stuff
150  #endif
151 -#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
152 -extern "C" char *__dcgettext(const char *domainname,
153 -                            const char *msgid, int category);
154  #undef gettext
155 -#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
156 +#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
157 +#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
158  #else
159 -#undef gettext
160  #define gettext(msgid) (msgid)
161  #endif
162  
163 --- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200no__x~    2006-03-10 15:06:17 +0100
164 +++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h    2006-03-10 15:32:37 +0100
165 @@ -36,15 +36,11 @@
166  #ifdef __UCLIBC_MJN3_ONLY__
167  #warning fix prototypes for *textdomain funcs
168  #endif
169 -#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
170 -extern "C" char *__textdomain(const char *domainname);
171 -extern "C" char *__bindtextdomain(const char *domainname,
172 -                                 const char *dirname);
173 -#else
174 -#undef __textdomain
175 -#undef __bindtextdomain
176 -#define __textdomain(D)           ((void)0)
177 -#define __bindtextdomain(D,P)     ((void)0)
178 +#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
179 +#undef textdomain
180 +#undef bindtextdomain
181 +#define textdomain(D)           ((void)0)
182 +#define bindtextdomain(D,P)     ((void)0)
183  #endif
184  
185    // Non-virtual member functions.
186 @@ -70,7 +66,7 @@
187      messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
188                            const char* __dir) const
189      { 
190 -      __bindtextdomain(__s.c_str(), __dir);
191 +      bindtextdomain(__s.c_str(), __dir);
192        return this->do_open(__s, __loc); 
193      }
194  
195 @@ -90,7 +86,7 @@
196      { 
197        // No error checking is done, assume the catalog exists and can
198        // be used.
199 -      __textdomain(__s.c_str());
200 +      textdomain(__s.c_str());
201        return 0;
202      }
203  
204 --- gcc/libstdc++-v3/config/locale/uclibc/c_locale.h.uclibc200no__x~    2006-03-10 15:06:17 +0100
205 +++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.h    2006-03-10 15:32:37 +0100
206 @@ -68,6 +68,7 @@
207  {
208    extern "C" __typeof(uselocale) __uselocale;
209  }
210 +#define __uselocale uselocale
211  #endif
212  
213  namespace std