| From 6a3e8506a12c12728d8b29901defd738be43757f Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Fri, 29 Mar 2013 08:42:36 +0400 |
| Subject: [PATCH 05/35] uclibc-locale-no__x |
| |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| |
| Upstream-Status: Pending |
| --- |
| .../config/locale/uclibc/c++locale_internal.h | 45 ++++++++++++++++++++ |
| libstdc++-v3/config/locale/uclibc/c_locale.cc | 14 ------ |
| libstdc++-v3/config/locale/uclibc/c_locale.h | 1 + |
| .../config/locale/uclibc/collate_members.cc | 7 --- |
| libstdc++-v3/config/locale/uclibc/ctype_members.cc | 7 --- |
| .../config/locale/uclibc/messages_members.cc | 7 +-- |
| .../config/locale/uclibc/messages_members.h | 18 +++----- |
| .../config/locale/uclibc/monetary_members.cc | 4 -- |
| .../config/locale/uclibc/numeric_members.cc | 3 -- |
| libstdc++-v3/config/locale/uclibc/time_members.cc | 3 -- |
| 10 files changed, 55 insertions(+), 54 deletions(-) |
| |
| diff --git a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h |
| index 2ae3e4a..e74fddf 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h |
| +++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h |
| @@ -60,4 +60,49 @@ extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; |
| extern "C" __typeof(wctype_l) __wctype_l; |
| #endif |
| |
| +# define __nl_langinfo_l nl_langinfo_l |
| +# define __strcoll_l strcoll_l |
| +# define __strftime_l strftime_l |
| +# define __strtod_l strtod_l |
| +# define __strtof_l strtof_l |
| +# define __strtold_l strtold_l |
| +# define __strxfrm_l strxfrm_l |
| +# define __newlocale newlocale |
| +# define __freelocale freelocale |
| +# define __duplocale duplocale |
| +# define __uselocale uselocale |
| + |
| +# ifdef _GLIBCXX_USE_WCHAR_T |
| +# define __iswctype_l iswctype_l |
| +# define __towlower_l towlower_l |
| +# define __towupper_l towupper_l |
| +# define __wcscoll_l wcscoll_l |
| +# define __wcsftime_l wcsftime_l |
| +# define __wcsxfrm_l wcsxfrm_l |
| +# define __wctype_l wctype_l |
| +# endif |
| + |
| +#else |
| +# define __nl_langinfo_l(N, L) nl_langinfo((N)) |
| +# define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) |
| +# define __strtod_l(S, E, L) strtod((S), (E)) |
| +# define __strtof_l(S, E, L) strtof((S), (E)) |
| +# define __strtold_l(S, E, L) strtold((S), (E)) |
| +# define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) |
| +# warning should dummy __newlocale check for C|POSIX ? |
| +# define __newlocale(a, b, c) NULL |
| +# define __freelocale(a) ((void)0) |
| +# define __duplocale(a) __c_locale() |
| +//# define __uselocale ? |
| +// |
| +# ifdef _GLIBCXX_USE_WCHAR_T |
| +# define __iswctype_l(C, M, L) iswctype((C), (M)) |
| +# define __towlower_l(C, L) towlower((C)) |
| +# define __towupper_l(C, L) towupper((C)) |
| +# define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) |
| +//# define __wcsftime_l(S, M, F, T, L) wcsftime((S), (M), (F), (T)) |
| +# define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) |
| +# define __wctype_l(S, L) wctype((S)) |
| +# endif |
| + |
| #endif // GLIBC 2.3 and later |
| diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.cc b/libstdc++-v3/config/locale/uclibc/c_locale.cc |
| index 5081dc1..21430d0 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/c_locale.cc |
| +++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc |
| @@ -39,20 +39,6 @@ |
| #include <langinfo.h> |
| #include <bits/c++locale_internal.h> |
| |
| -#ifndef __UCLIBC_HAS_XLOCALE__ |
| -#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) |
| -#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) |
| -#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) |
| -#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) |
| -#define __strtof_l(S, E, L) strtof((S), (E)) |
| -#define __strtod_l(S, E, L) strtod((S), (E)) |
| -#define __strtold_l(S, E, L) strtold((S), (E)) |
| -#warning should dummy __newlocale check for C|POSIX ? |
| -#define __newlocale(a, b, c) NULL |
| -#define __freelocale(a) ((void)0) |
| -#define __duplocale(a) __c_locale() |
| -#endif |
| - |
| namespace std |
| { |
| template<> |
| diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.h b/libstdc++-v3/config/locale/uclibc/c_locale.h |
| index da07c1f..4bca5f1 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/c_locale.h |
| +++ b/libstdc++-v3/config/locale/uclibc/c_locale.h |
| @@ -68,6 +68,7 @@ namespace __gnu_cxx |
| { |
| extern "C" __typeof(uselocale) __uselocale; |
| } |
| +#define __uselocale uselocale |
| #endif |
| |
| namespace std |
| diff --git a/libstdc++-v3/config/locale/uclibc/collate_members.cc b/libstdc++-v3/config/locale/uclibc/collate_members.cc |
| index c2664a7..ec5c329 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/collate_members.cc |
| +++ b/libstdc++-v3/config/locale/uclibc/collate_members.cc |
| @@ -36,13 +36,6 @@ |
| #include <locale> |
| #include <bits/c++locale_internal.h> |
| |
| -#ifndef __UCLIBC_HAS_XLOCALE__ |
| -#define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) |
| -#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) |
| -#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) |
| -#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) |
| -#endif |
| - |
| namespace std |
| { |
| // These are basically extensions to char_traits, and perhaps should |
| diff --git a/libstdc++-v3/config/locale/uclibc/ctype_members.cc b/libstdc++-v3/config/locale/uclibc/ctype_members.cc |
| index 7294e3a..7b12861 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/ctype_members.cc |
| +++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc |
| @@ -38,13 +38,6 @@ |
| #undef _LIBC |
| #include <bits/c++locale_internal.h> |
| |
| -#ifndef __UCLIBC_HAS_XLOCALE__ |
| -#define __wctype_l(S, L) wctype((S)) |
| -#define __towupper_l(C, L) towupper((C)) |
| -#define __towlower_l(C, L) towlower((C)) |
| -#define __iswctype_l(C, M, L) iswctype((C), (M)) |
| -#endif |
| - |
| namespace std |
| { |
| // NB: The other ctype<char> specializations are in src/locale.cc and |
| diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.cc b/libstdc++-v3/config/locale/uclibc/messages_members.cc |
| index 13594d9..d7693b4 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/messages_members.cc |
| +++ b/libstdc++-v3/config/locale/uclibc/messages_members.cc |
| @@ -39,13 +39,10 @@ |
| #ifdef __UCLIBC_MJN3_ONLY__ |
| #warning fix gettext stuff |
| #endif |
| -#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ |
| -extern "C" char *__dcgettext(const char *domainname, |
| - const char *msgid, int category); |
| #undef gettext |
| -#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES) |
| +#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ |
| +#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES) |
| #else |
| -#undef gettext |
| #define gettext(msgid) (msgid) |
| #endif |
| |
| diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h |
| index 1424078..d89da33 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/messages_members.h |
| +++ b/libstdc++-v3/config/locale/uclibc/messages_members.h |
| @@ -36,15 +36,11 @@ |
| #ifdef __UCLIBC_MJN3_ONLY__ |
| #warning fix prototypes for *textdomain funcs |
| #endif |
| -#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ |
| -extern "C" char *__textdomain(const char *domainname); |
| -extern "C" char *__bindtextdomain(const char *domainname, |
| - const char *dirname); |
| -#else |
| -#undef __textdomain |
| -#undef __bindtextdomain |
| -#define __textdomain(D) ((void)0) |
| -#define __bindtextdomain(D,P) ((void)0) |
| +#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__ |
| +#undef textdomain |
| +#undef bindtextdomain |
| +#define textdomain(D) ((void)0) |
| +#define bindtextdomain(D,P) ((void)0) |
| #endif |
| |
| // Non-virtual member functions. |
| @@ -70,7 +66,7 @@ extern "C" char *__bindtextdomain(const char *domainname, |
| messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, |
| const char* __dir) const |
| { |
| - __bindtextdomain(__s.c_str(), __dir); |
| + bindtextdomain(__s.c_str(), __dir); |
| return this->do_open(__s, __loc); |
| } |
| |
| @@ -90,7 +86,7 @@ extern "C" char *__bindtextdomain(const char *domainname, |
| { |
| // No error checking is done, assume the catalog exists and can |
| // be used. |
| - __textdomain(__s.c_str()); |
| + textdomain(__s.c_str()); |
| return 0; |
| } |
| |
| diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc |
| index aa52731..2e6f80a 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc |
| +++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc |
| @@ -43,10 +43,6 @@ |
| #warning tailor for stub locale support |
| #endif |
| |
| -#ifndef __UCLIBC_HAS_XLOCALE__ |
| -#define __nl_langinfo_l(N, L) nl_langinfo((N)) |
| -#endif |
| - |
| namespace std |
| { |
| // Construct and return valid pattern consisting of some combination of: |
| diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc |
| index 883ec1a..2c70642 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc |
| +++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc |
| @@ -41,9 +41,6 @@ |
| #ifdef __UCLIBC_MJN3_ONLY__ |
| #warning tailor for stub locale support |
| #endif |
| -#ifndef __UCLIBC_HAS_XLOCALE__ |
| -#define __nl_langinfo_l(N, L) nl_langinfo((N)) |
| -#endif |
| |
| namespace std |
| { |
| diff --git a/libstdc++-v3/config/locale/uclibc/time_members.cc b/libstdc++-v3/config/locale/uclibc/time_members.cc |
| index e0707d7..d848ed5 100644 |
| --- a/libstdc++-v3/config/locale/uclibc/time_members.cc |
| +++ b/libstdc++-v3/config/locale/uclibc/time_members.cc |
| @@ -40,9 +40,6 @@ |
| #ifdef __UCLIBC_MJN3_ONLY__ |
| #warning tailor for stub locale support |
| #endif |
| -#ifndef __UCLIBC_HAS_XLOCALE__ |
| -#define __nl_langinfo_l(N, L) nl_langinfo((N)) |
| -#endif |
| |
| namespace std |
| { |
| -- |
| 1.7.10.4 |
| |