⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc-810-libstd++-locale.patch

📁 IPcop软路由防火墙 FREE 开源源代码
💻 PATCH
字号:
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 stddiff -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_cxxdiff -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 = ""; 	  elsediff -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;diff -urN gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc--- gcc-3.3.2-old/libstdc++-v3/config/locale/gnu/ctype_members.cc	2003-10-07 03:40:58.000000000 -0500+++ gcc-3.3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc	2003-11-10 14:21:45.000000000 -0600@@ -36,6 +36,14 @@ #include <locale> #include <bits/c++locale_internal.h> +#ifdef __UCLIBC_HAS_XLOCALE__+struct __uclibc_locale_struct_header {+        const __ctype_mask_t *__ctype_b;+        const __ctype_touplow_t *__ctype_tolower;+        const __ctype_touplow_t *__ctype_toupper;+};+#endif+ namespace std {   // NB: The other ctype<char> specializations are in src/locale.cc and@@ -46,9 +54,9 @@     { 	       _S_destroy_c_locale(_M_c_locale_ctype);       _S_create_c_locale(_M_c_locale_ctype, __s); -      _M_toupper = _M_c_locale_ctype->__ctype_toupper;-      _M_tolower = _M_c_locale_ctype->__ctype_tolower;-      _M_table = _M_c_locale_ctype->__ctype_b;+      _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;+      _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;+      _M_table = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;     }  #ifdef _GLIBCPP_USE_WCHAR_T  diff -urN gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h--- gcc-3.3.2-old/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h	2002-10-08 18:32:22.000000000 -0500+++ gcc-3.3.2/libstdc++-v3/config/os/gnu-linux/ctype_noninline.h	2003-11-10 14:20:37.000000000 -0600@@ -35,11 +35,21 @@ // Information as gleaned from /usr/include/ctype.h  #if _GLIBCPP_C_LOCALE_GNU+#ifdef __UCLIBC_HAS_XLOCALE__+struct __uclibc_locale_struct_header {+	const __ctype_mask_t *__ctype_b;+	const __ctype_touplow_t *__ctype_tolower;+	const __ctype_touplow_t *__ctype_toupper;+};+#endif+#endif++#if _GLIBCPP_C_LOCALE_GNU   const ctype_base::mask*   ctype<char>::classic_table() throw()   {     locale::classic();-    return _S_c_locale->__ctype_b;+    return ((struct __uclibc_locale_struct_header *)_S_c_locale)->__ctype_b;   } #else   const ctype_base::mask*@@ -65,9 +75,9 @@   : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)   {     _M_c_locale_ctype = _S_clone_c_locale(__cloc);-    _M_toupper = _M_c_locale_ctype->__ctype_toupper;-    _M_tolower = _M_c_locale_ctype->__ctype_tolower;-    _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;+    _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;+    _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;+    _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;   } #else   ctype<char>::ctype(__c_locale, const mask* __table, bool __del, @@ -96,9 +106,9 @@   __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)   {     _M_c_locale_ctype = _S_c_locale; -    _M_toupper = _M_c_locale_ctype->__ctype_toupper;-    _M_tolower = _M_c_locale_ctype->__ctype_tolower;-    _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;+    _M_toupper = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_toupper;+    _M_tolower = ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_tolower;+    _M_table = __table ? __table : ((struct __uclibc_locale_struct_header *)_M_c_locale_ctype)->__ctype_b;   } #else   ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) : 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -