yann@687: 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@687: --- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:30:53.000000000 +0200 yann@687: +++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:31:24.000000000 +0200 yann@687: @@ -401,7 +401,7 @@ yann@687: # ifdef __UCLIBC_HAS_XLOCALE__ yann@687: _M_data->_M_decimal_point = __cloc->decimal_point_wc; yann@687: _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; yann@687: -# else yann@687: +# elif defined __UCLIBC_HAS_LOCALE__ yann@687: _M_data->_M_decimal_point = __global_locale->decimal_point_wc; yann@687: _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; yann@687: # endif yann@687: @@ -556,7 +556,7 @@ yann@687: # ifdef __UCLIBC_HAS_XLOCALE__ yann@687: _M_data->_M_decimal_point = __cloc->decimal_point_wc; yann@687: _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; yann@687: -# else yann@687: +# elif defined __UCLIBC_HAS_LOCALE__ yann@687: _M_data->_M_decimal_point = __global_locale->decimal_point_wc; yann@687: _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; yann@687: # endif yann@687: 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@687: --- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:30:53.000000000 +0200 yann@687: +++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:31:24.000000000 +0200 yann@687: @@ -127,12 +127,25 @@ yann@687: { yann@687: // Named locale. yann@687: // NB: In the GNU model wchar_t is always 32 bit wide. yann@687: +#ifdef __UCLIBC_MJN3_ONLY__ yann@687: +#warning fix this... should be numeric yann@687: +#endif yann@687: +#ifdef __UCLIBC__ yann@687: +# ifdef __UCLIBC_HAS_XLOCALE__ yann@687: + _M_data->_M_decimal_point = __cloc->decimal_point_wc; yann@687: + _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; yann@687: +# elif defined __UCLIBC_HAS_LOCALE__ yann@687: + _M_data->_M_decimal_point = __global_locale->decimal_point_wc; yann@687: + _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; yann@687: +# endif yann@687: +#else yann@687: union { char *__s; wchar_t __w; } __u; yann@687: __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); yann@687: _M_data->_M_decimal_point = __u.__w; yann@687: yann@687: __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); yann@687: _M_data->_M_thousands_sep = __u.__w; yann@687: +#endif yann@687: yann@687: if (_M_data->_M_thousands_sep == L'\0') yann@687: _M_data->_M_grouping = "";