patches/gcc/4.2.4/140-uclibc-locale-wchar_fix.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 31 23:24:40 2010 +0200 (2010-08-31)
branch1.8
changeset 2108 68d038933dc4
parent 687 b2b6b1d46aa1
permissions -rw-r--r--
binutils/binutils: remove faulty patch

The added code should be conditinal to the target system
being !MIPS, but is based on the host system being !MIPS.

This is plain wrong, and had not been noticed until now
as I never used those binutils versions on MIPS.

See:
http://sourceware.org/ml/crossgcc/2010-08/msg00192.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
(transplanted from f5ab0a80e46616adb3619cc7c5d78d0ccd7ea697)
     1 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
     2 --- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2007-08-03 20:30:53.000000000 +0200
     3 +++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2007-08-03 20:31:24.000000000 +0200
     4 @@ -401,7 +401,7 @@
     5  # ifdef __UCLIBC_HAS_XLOCALE__
     6  	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
     7  	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
     8 -# else
     9 +# elif defined __UCLIBC_HAS_LOCALE__
    10  	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
    11  	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
    12  # endif
    13 @@ -556,7 +556,7 @@
    14  # ifdef __UCLIBC_HAS_XLOCALE__
    15  	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
    16  	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
    17 -# else
    18 +# elif defined __UCLIBC_HAS_LOCALE__
    19  	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
    20  	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
    21  # endif
    22 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
    23 --- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2007-08-03 20:30:53.000000000 +0200
    24 +++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2007-08-03 20:31:24.000000000 +0200
    25 @@ -127,12 +127,25 @@
    26  	{
    27  	  // Named locale.
    28  	  // NB: In the GNU model wchar_t is always 32 bit wide.
    29 +#ifdef __UCLIBC_MJN3_ONLY__
    30 +#warning fix this... should be numeric
    31 +#endif
    32 +#ifdef __UCLIBC__
    33 +# ifdef __UCLIBC_HAS_XLOCALE__
    34 +	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
    35 +	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
    36 +# elif defined __UCLIBC_HAS_LOCALE__
    37 +	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
    38 +	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
    39 +# endif
    40 +#else
    41  	  union { char *__s; wchar_t __w; } __u;
    42  	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
    43  	  _M_data->_M_decimal_point = __u.__w;
    44  
    45  	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
    46  	  _M_data->_M_thousands_sep = __u.__w;
    47 +#endif
    48  
    49  	  if (_M_data->_M_thousands_sep == L'\0')
    50  	    _M_data->_M_grouping = "";