|
|
@@ -0,0 +1,200 @@
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.cc 2003-02-28 00:09:52.000000000 -0600
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.cc 2003-08-31 10:55:17.000000000 -0500
|
|
|
+@@ -195,12 +195,15 @@
|
|
|
+ "LC_TIME",
|
|
|
+ "LC_COLLATE",
|
|
|
+ "LC_MONETARY",
|
|
|
+- "LC_MESSAGES",
|
|
|
++ "LC_MESSAGES"
|
|
|
++#if _GLIBCPP_NUM_CATEGORIES != 0
|
|
|
++ ,
|
|
|
+ "LC_PAPER",
|
|
|
+ "LC_NAME",
|
|
|
+ "LC_ADDRESS",
|
|
|
+ "LC_TELEPHONE",
|
|
|
+ "LC_MEASUREMENT",
|
|
|
+ "LC_IDENTIFICATION"
|
|
|
++#endif
|
|
|
+ };
|
|
|
+ } // namespace std
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c_locale.h 2003-01-23 12:56:16.000000000 -0600
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c_locale.h 2003-08-31 10:55:17.000000000 -0500
|
|
|
+@@ -46,6 +46,10 @@
|
|
|
+ #define _GLIBCPP_C_LOCALE_GNU 1
|
|
|
+
|
|
|
+ #define _GLIBCPP_NUM_CATEGORIES 6
|
|
|
++#ifdef __UCLIBC__
|
|
|
++#undef _GLIBCPP_NUM_CATEGORIES
|
|
|
++#define _GLIBCPP_NUM_CATEGORIES 0
|
|
|
++#endif
|
|
|
+
|
|
|
+ #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
|
|
+ namespace __gnu_cxx
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/c++locale_internal.h 2002-09-05 02:46:16.000000000 -0500
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h 2003-08-31 10:55:17.000000000 -0500
|
|
|
+@@ -48,7 +48,9 @@
|
|
|
+ extern "C" __typeof(towlower_l) __towlower_l;
|
|
|
+ extern "C" __typeof(towupper_l) __towupper_l;
|
|
|
+ extern "C" __typeof(wcscoll_l) __wcscoll_l;
|
|
|
++#ifdef HAVE_WCSFTIME
|
|
|
+ extern "C" __typeof(wcsftime_l) __wcsftime_l;
|
|
|
++#endif
|
|
|
+ extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
|
|
|
+ extern "C" __typeof(wctype_l) __wctype_l;
|
|
|
+ extern "C" __typeof(newlocale) __newlocale;
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.cc 2003-02-28 00:09:52.000000000 -0600
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.cc 2003-08-31 10:55:17.000000000 -0500
|
|
|
+@@ -36,6 +36,13 @@
|
|
|
+ #include <locale>
|
|
|
+ #include <bits/c++locale_internal.h>
|
|
|
+
|
|
|
++#ifdef __UCLIBC__
|
|
|
++extern "C" char *__dcgettext(const char *domainname,
|
|
|
++ const char *msgid, int category);
|
|
|
++#undef gettext
|
|
|
++#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
|
|
|
++#endif
|
|
|
++
|
|
|
+ namespace std
|
|
|
+ {
|
|
|
+ // Specializations.
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/messages_members.h 2003-01-06 16:20:03.000000000 -0600
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/messages_members.h 2003-08-31 10:55:17.000000000 -0500
|
|
|
+@@ -33,6 +33,12 @@
|
|
|
+
|
|
|
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
|
|
|
+
|
|
|
++#ifdef __UCLIBC__
|
|
|
++extern "C" char *__textdomain(const char *domainname);
|
|
|
++extern "C" char *__bindtextdomain(const char *domainname,
|
|
|
++ const char *dirname);
|
|
|
++#endif
|
|
|
++
|
|
|
+ // Non-virtual member functions.
|
|
|
+ template<typename _CharT>
|
|
|
+ messages<_CharT>::messages(size_t __refs)
|
|
|
+@@ -61,7 +67,11 @@
|
|
|
+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
|
|
|
+ const char* __dir) const
|
|
|
+ {
|
|
|
++#ifdef __UCLIBC__
|
|
|
++ __bindtextdomain(__s.c_str(), __dir);
|
|
|
++#else
|
|
|
+ bindtextdomain(__s.c_str(), __dir);
|
|
|
++#endif
|
|
|
+ return this->do_open(__s, __loc);
|
|
|
+ }
|
|
|
+
|
|
|
+@@ -83,7 +93,11 @@
|
|
|
+ {
|
|
|
+ // No error checking is done, assume the catalog exists and can
|
|
|
+ // be used.
|
|
|
++#ifdef __UCLIBC__
|
|
|
++ __textdomain(__s.c_str());
|
|
|
++#else
|
|
|
+ textdomain(__s.c_str());
|
|
|
++#endif
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/numeric_members.cc 2003-02-28 00:09:52.000000000 -0600
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/numeric_members.cc 2003-08-31 10:55:18.000000000 -0500
|
|
|
+@@ -86,8 +86,13 @@
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // Named locale.
|
|
|
++#ifdef __UCLIBC__
|
|
|
++ _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->decimal_point_wc }).__w);
|
|
|
++ _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __cloc->thousands_sep_wc }).__w);
|
|
|
++#else
|
|
|
+ _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);
|
|
|
+ _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);
|
|
|
++#endif
|
|
|
+ if (_M_thousands_sep == L'\0')
|
|
|
+ _M_grouping = "";
|
|
|
+ else
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/locale/gnu/time_members.cc 2003-02-28 00:09:52.000000000 -0600
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/locale/gnu/time_members.cc 2003-08-31 10:55:18.000000000 -0500
|
|
|
+@@ -183,6 +183,7 @@
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
++#ifndef __UCLIBC__
|
|
|
+ #ifdef _GLIBCPP_USE_WCHAR_T
|
|
|
+ template<>
|
|
|
+ void
|
|
|
+@@ -328,4 +329,5 @@
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endif
|
|
|
++#endif
|
|
|
+ }
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2002-09-09 15:26:41.000000000 -0500
|
|
|
++++ gcc-3.3.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2003-08-31 10:55:18.000000000 -0500
|
|
|
+@@ -36,11 +36,18 @@
|
|
|
+ struct ctype_base
|
|
|
+ {
|
|
|
+ // Non-standard typedefs.
|
|
|
++#ifdef __UCLIBC__
|
|
|
++ typedef const __ctype_touplow_t* __to_type;
|
|
|
++ // NB: Offsets into ctype<char>::_M_table force a particular size
|
|
|
++ // on the mask type. Because of this, we don't use an enum.
|
|
|
++ typedef __ctype_mask_t mask;
|
|
|
++#else
|
|
|
+ typedef const int* __to_type;
|
|
|
+-
|
|
|
+ // NB: Offsets into ctype<char>::_M_table force a particular size
|
|
|
+ // on the mask type. Because of this, we don't use an enum.
|
|
|
+ typedef unsigned short mask;
|
|
|
++#endif
|
|
|
++
|
|
|
+ static const mask upper = _ISupper;
|
|
|
+ static const mask lower = _ISlower;
|
|
|
+ static const mask alpha = _ISalpha;
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cstdlib.h 2003-04-18 05:08:05.000000000 -0500
|
|
|
++++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cstdlib.h 2003-08-31 10:55:18.000000000 -0500
|
|
|
+@@ -101,9 +101,11 @@
|
|
|
+ using ::labs;
|
|
|
+ using ::ldiv;
|
|
|
+ using ::malloc;
|
|
|
++#if _GLIBCPP_USE_WCHAR_T
|
|
|
+ using ::mblen;
|
|
|
+ using ::mbstowcs;
|
|
|
+ using ::mbtowc;
|
|
|
++#endif
|
|
|
+ using ::qsort;
|
|
|
+ using ::rand;
|
|
|
+ using ::realloc;
|
|
|
+@@ -112,8 +114,10 @@
|
|
|
+ using ::strtol;
|
|
|
+ using ::strtoul;
|
|
|
+ using ::system;
|
|
|
++#if _GLIBCPP_USE_WCHAR_T
|
|
|
+ using ::wcstombs;
|
|
|
+ using ::wctomb;
|
|
|
++#endif
|
|
|
+
|
|
|
+ inline long
|
|
|
+ abs(long __i) { return labs(__i); }
|
|
|
+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
|
|
|
+--- gcc-3.3.1-old/libstdc++-v3/include/c_std/std_cwchar.h 2003-04-18 05:08:05.000000000 -0500
|
|
|
++++ gcc-3.3.1/libstdc++-v3/include/c_std/std_cwchar.h 2003-08-31 10:55:18.000000000 -0500
|
|
|
+@@ -165,7 +165,9 @@
|
|
|
+ using ::wcscoll;
|
|
|
+ using ::wcscpy;
|
|
|
+ using ::wcscspn;
|
|
|
++#ifdef HAVE_WCSFTIME
|
|
|
+ using ::wcsftime;
|
|
|
++#endif
|
|
|
+ using ::wcslen;
|
|
|
+ using ::wcsncat;
|
|
|
+ using ::wcsncmp;
|