patches/gcc/4.2.2/140-uclibc-locale-wchar_fix.patch
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
parent 431 8bde4c6ea47a
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
     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 = "";