patches/gcc/4.2.3/203-uclibc-locale-no__x.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Feb 17 22:08:06 2008 +0000 (2008-02-17)
changeset 431 8bde4c6ea47a
parent 313 patches/gcc/4.2.1/203-uclibc-locale-no__x.patch@2f223aafc7cb
permissions -rw-r--r--
Robert P. J. DAY says:

apparently, the patchset for gcc 4.2.1 applies properly to the
source for gcc 4.2.2 and gcc 4.2.3. so, if you want, you can simply
add support for those last two just by augmenting menuconfig and
adding a couple symlinks for those two directories. seems like a
cheap way to add a couple new versions.
yann@313
     1
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.cc
yann@313
     2
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc	2007-08-03 20:30:21.000000000 +0200
yann@313
     3
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.cc	2007-08-03 20:30:53.000000000 +0200
yann@313
     4
@@ -39,20 +39,6 @@
yann@313
     5
 #include <langinfo.h>
yann@313
     6
 #include <bits/c++locale_internal.h>
yann@313
     7
 
yann@313
     8
-#ifndef __UCLIBC_HAS_XLOCALE__
yann@313
     9
-#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
yann@313
    10
-#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
yann@313
    11
-#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
yann@313
    12
-#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
yann@313
    13
-#define __strtof_l(S, E, L)         strtof((S), (E))
yann@313
    14
-#define __strtod_l(S, E, L)         strtod((S), (E))
yann@313
    15
-#define __strtold_l(S, E, L)        strtold((S), (E))
yann@313
    16
-#warning should dummy __newlocale check for C|POSIX ?
yann@313
    17
-#define __newlocale(a, b, c)        NULL
yann@313
    18
-#define __freelocale(a)             ((void)0)
yann@313
    19
-#define __duplocale(a)              __c_locale()
yann@313
    20
-#endif
yann@313
    21
-
yann@313
    22
 namespace std 
yann@313
    23
 {
yann@313
    24
   template<>
yann@313
    25
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.h
yann@313
    26
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.h	2007-08-03 20:30:21.000000000 +0200
yann@313
    27
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.h	2007-08-03 20:30:53.000000000 +0200
yann@313
    28
@@ -68,6 +68,7 @@
yann@313
    29
 {
yann@313
    30
   extern "C" __typeof(uselocale) __uselocale;
yann@313
    31
 }
yann@313
    32
+#define __uselocale uselocale
yann@313
    33
 #endif
yann@313
    34
 
yann@313
    35
 namespace std
yann@313
    36
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
yann@313
    37
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2007-08-03 20:30:21.000000000 +0200
yann@313
    38
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2007-08-03 20:30:53.000000000 +0200
yann@313
    39
@@ -60,4 +60,49 @@
yann@313
    40
 extern "C" __typeof(wctype_l) __wctype_l;
yann@313
    41
 #endif 
yann@313
    42
 
yann@313
    43
+# define __nl_langinfo_l nl_langinfo_l
yann@313
    44
+# define __strcoll_l strcoll_l
yann@313
    45
+# define __strftime_l strftime_l
yann@313
    46
+# define __strtod_l strtod_l
yann@313
    47
+# define __strtof_l strtof_l
yann@313
    48
+# define __strtold_l strtold_l
yann@313
    49
+# define __strxfrm_l strxfrm_l
yann@313
    50
+# define __newlocale newlocale
yann@313
    51
+# define __freelocale freelocale
yann@313
    52
+# define __duplocale duplocale
yann@313
    53
+# define __uselocale uselocale
yann@313
    54
+
yann@313
    55
+# ifdef _GLIBCXX_USE_WCHAR_T
yann@313
    56
+#  define __iswctype_l iswctype_l
yann@313
    57
+#  define __towlower_l towlower_l
yann@313
    58
+#  define __towupper_l towupper_l
yann@313
    59
+#  define __wcscoll_l wcscoll_l
yann@313
    60
+#  define __wcsftime_l wcsftime_l
yann@313
    61
+#  define __wcsxfrm_l wcsxfrm_l
yann@313
    62
+#  define __wctype_l wctype_l
yann@313
    63
+# endif
yann@313
    64
+
yann@313
    65
+#else
yann@313
    66
+# define __nl_langinfo_l(N, L)       nl_langinfo((N))
yann@313
    67
+# define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
yann@313
    68
+# define __strtod_l(S, E, L)         strtod((S), (E))
yann@313
    69
+# define __strtof_l(S, E, L)         strtof((S), (E))
yann@313
    70
+# define __strtold_l(S, E, L)        strtold((S), (E))
yann@313
    71
+# define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
yann@313
    72
+# warning should dummy __newlocale check for C|POSIX ?
yann@313
    73
+# define __newlocale(a, b, c)        NULL
yann@313
    74
+# define __freelocale(a)             ((void)0)
yann@313
    75
+# define __duplocale(a)              __c_locale()
yann@313
    76
+//# define __uselocale ?
yann@313
    77
+//
yann@313
    78
+# ifdef _GLIBCXX_USE_WCHAR_T
yann@313
    79
+#  define __iswctype_l(C, M, L)       iswctype((C), (M))
yann@313
    80
+#  define __towlower_l(C, L)          towlower((C))
yann@313
    81
+#  define __towupper_l(C, L)          towupper((C))
yann@313
    82
+#  define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
yann@313
    83
+//#  define __wcsftime_l(S, M, F, T, L)  wcsftime((S), (M), (F), (T)) 
yann@313
    84
+#  define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
yann@313
    85
+#  define __wctype_l(S, L)            wctype((S))
yann@313
    86
+# endif
yann@313
    87
+
yann@313
    88
 #endif // GLIBC 2.3 and later
yann@313
    89
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/collate_members.cc
yann@313
    90
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/collate_members.cc	2007-08-03 20:30:21.000000000 +0200
yann@313
    91
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/collate_members.cc	2007-08-03 20:30:53.000000000 +0200
yann@313
    92
@@ -36,13 +36,6 @@
yann@313
    93
 #include <locale>
yann@313
    94
 #include <bits/c++locale_internal.h>
yann@313
    95
 
yann@313
    96
-#ifndef __UCLIBC_HAS_XLOCALE__
yann@313
    97
-#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
yann@313
    98
-#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
yann@313
    99
-#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
yann@313
   100
-#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
yann@313
   101
-#endif
yann@313
   102
-
yann@313
   103
 namespace std
yann@313
   104
 {
yann@313
   105
   // These are basically extensions to char_traits, and perhaps should
yann@313
   106
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/ctype_members.cc
yann@313
   107
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2007-08-03 20:30:21.000000000 +0200
yann@313
   108
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2007-08-03 20:30:53.000000000 +0200
yann@313
   109
@@ -38,13 +38,6 @@
yann@313
   110
 #undef _LIBC
yann@313
   111
 #include <bits/c++locale_internal.h>
yann@313
   112
 
yann@313
   113
-#ifndef __UCLIBC_HAS_XLOCALE__
yann@313
   114
-#define __wctype_l(S, L)           wctype((S))
yann@313
   115
-#define __towupper_l(C, L)         towupper((C))
yann@313
   116
-#define __towlower_l(C, L)         towlower((C))
yann@313
   117
-#define __iswctype_l(C, M, L)      iswctype((C), (M))
yann@313
   118
-#endif
yann@313
   119
-
yann@313
   120
 namespace std
yann@313
   121
 {
yann@313
   122
   // NB: The other ctype<char> specializations are in src/locale.cc and
yann@313
   123
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.cc
yann@313
   124
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.cc	2007-08-03 20:30:21.000000000 +0200
yann@313
   125
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.cc	2007-08-03 20:30:53.000000000 +0200
yann@313
   126
@@ -39,13 +39,10 @@
yann@313
   127
 #ifdef __UCLIBC_MJN3_ONLY__
yann@313
   128
 #warning fix gettext stuff
yann@313
   129
 #endif
yann@313
   130
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
yann@313
   131
-extern "C" char *__dcgettext(const char *domainname,
yann@313
   132
-			     const char *msgid, int category);
yann@313
   133
 #undef gettext
yann@313
   134
-#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
yann@313
   135
+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
yann@313
   136
+#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
yann@313
   137
 #else
yann@313
   138
-#undef gettext
yann@313
   139
 #define gettext(msgid) (msgid)
yann@313
   140
 #endif
yann@313
   141
 
yann@313
   142
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h
yann@313
   143
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h	2007-08-03 20:30:21.000000000 +0200
yann@313
   144
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h	2007-08-03 20:30:53.000000000 +0200
yann@313
   145
@@ -36,15 +36,11 @@
yann@313
   146
 #ifdef __UCLIBC_MJN3_ONLY__
yann@313
   147
 #warning fix prototypes for *textdomain funcs
yann@313
   148
 #endif
yann@313
   149
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
yann@313
   150
-extern "C" char *__textdomain(const char *domainname);
yann@313
   151
-extern "C" char *__bindtextdomain(const char *domainname,
yann@313
   152
-				  const char *dirname);
yann@313
   153
-#else
yann@313
   154
-#undef __textdomain
yann@313
   155
-#undef __bindtextdomain
yann@313
   156
-#define __textdomain(D)           ((void)0)
yann@313
   157
-#define __bindtextdomain(D,P)     ((void)0)
yann@313
   158
+#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
yann@313
   159
+#undef textdomain
yann@313
   160
+#undef bindtextdomain
yann@313
   161
+#define textdomain(D)           ((void)0)
yann@313
   162
+#define bindtextdomain(D,P)     ((void)0)
yann@313
   163
 #endif
yann@313
   164
 
yann@313
   165
   // Non-virtual member functions.
yann@313
   166
@@ -70,7 +66,7 @@
yann@313
   167
     messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
yann@313
   168
 			   const char* __dir) const
yann@313
   169
     { 
yann@313
   170
-      __bindtextdomain(__s.c_str(), __dir);
yann@313
   171
+      bindtextdomain(__s.c_str(), __dir);
yann@313
   172
       return this->do_open(__s, __loc); 
yann@313
   173
     }
yann@313
   174
 
yann@313
   175
@@ -90,7 +86,7 @@
yann@313
   176
     { 
yann@313
   177
       // No error checking is done, assume the catalog exists and can
yann@313
   178
       // be used.
yann@313
   179
-      __textdomain(__s.c_str());
yann@313
   180
+      textdomain(__s.c_str());
yann@313
   181
       return 0;
yann@313
   182
     }
yann@313
   183
 
yann@313
   184
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc
yann@313
   185
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2007-08-03 20:30:21.000000000 +0200
yann@313
   186
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2007-08-03 20:30:53.000000000 +0200
yann@313
   187
@@ -43,10 +43,6 @@
yann@313
   188
 #warning tailor for stub locale support
yann@313
   189
 #endif
yann@313
   190
 
yann@313
   191
-#ifndef __UCLIBC_HAS_XLOCALE__
yann@313
   192
-#define __nl_langinfo_l(N, L)         nl_langinfo((N))
yann@313
   193
-#endif
yann@313
   194
-
yann@313
   195
 namespace std
yann@313
   196
 {
yann@313
   197
   // Construct and return valid pattern consisting of some combination of:
yann@313
   198
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc
yann@313
   199
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2007-08-03 20:30:21.000000000 +0200
yann@313
   200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2007-08-03 20:30:53.000000000 +0200
yann@313
   201
@@ -41,9 +41,6 @@
yann@313
   202
 #ifdef __UCLIBC_MJN3_ONLY__
yann@313
   203
 #warning tailor for stub locale support
yann@313
   204
 #endif
yann@313
   205
-#ifndef __UCLIBC_HAS_XLOCALE__
yann@313
   206
-#define __nl_langinfo_l(N, L)         nl_langinfo((N))
yann@313
   207
-#endif
yann@313
   208
 
yann@313
   209
 namespace std
yann@313
   210
 {
yann@313
   211
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.cc
yann@313
   212
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.cc	2007-08-03 20:30:21.000000000 +0200
yann@313
   213
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.cc	2007-08-03 20:30:53.000000000 +0200
yann@313
   214
@@ -40,9 +40,6 @@
yann@313
   215
 #ifdef __UCLIBC_MJN3_ONLY__
yann@313
   216
 #warning tailor for stub locale support
yann@313
   217
 #endif
yann@313
   218
-#ifndef __UCLIBC_HAS_XLOCALE__
yann@313
   219
-#define __nl_langinfo_l(N, L)         nl_langinfo((N))
yann@313
   220
-#endif
yann@313
   221
 
yann@313
   222
 namespace std
yann@313
   223
 {