From c01c14e8e9be382ecd4121ee70f5003b4cb0f904 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 29 Mar 2013 08:42:36 +0400 Subject: [PATCH 05/46] uclibc-locale-no__x Signed-off-by: Khem Raj 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 #include -#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 #include -#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 -#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 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& __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 { -- 2.8.2