Root/toolchain/gcc/patches/llvm/203-uclibc-locale-no__x.patch

1--- a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
2+++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
3@@ -60,4 +60,49 @@ extern "C" __typeof(wcsxfrm_l) __wcsxfrm
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--- a/libstdc++-v3/config/locale/uclibc/c_locale.cc
54+++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc
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--- a/libstdc++-v3/config/locale/uclibc/collate_members.cc
77+++ b/libstdc++-v3/config/locale/uclibc/collate_members.cc
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--- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc
93+++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
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--- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc
106+++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
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--- a/libstdc++-v3/config/locale/uclibc/time_members.cc
118+++ b/libstdc++-v3/config/locale/uclibc/time_members.cc
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--- a/libstdc++-v3/config/locale/uclibc/ctype_members.cc
130+++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
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--- a/libstdc++-v3/config/locale/uclibc/messages_members.cc
146+++ b/libstdc++-v3/config/locale/uclibc/messages_members.cc
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--- a/libstdc++-v3/config/locale/uclibc/messages_members.h
164+++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
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 @@ extern "C" char *__bindtextdomain(const
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 @@ extern "C" char *__bindtextdomain(const
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--- a/libstdc++-v3/config/locale/uclibc/c_locale.h
205+++ b/libstdc++-v3/config/locale/uclibc/c_locale.h
206@@ -68,6 +68,7 @@ namespace __gnu_cxx
207 {
208   extern "C" __typeof(uselocale) __uselocale;
209 }
210+#define __uselocale uselocale
211 #endif
212 
213 namespace std
214

Archive Download this file



interactive