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