svn commit: trunk/buildroot/toolchain/gcc/4.1.0
Peter S. Mazinger
ps.m at gmx.net
Mon Mar 20 07:36:46 UTC 2006
On Sat, 18 Mar 2006 andersen at uclibc.org wrote:
> Author: andersen
> Date: 2006-03-18 23:37:25 -0800 (Sat, 18 Mar 2006)
> New Revision: 14569
>
> Log:
> configuration for locale support (and lack thereof) was all screwed up
This change is wrong, _NL_MONETARY_*_WC and _NL_NUMERIC_*_WC can't be used
(undefined, see langinfo.h, they seem to be disabled on purpose, probably
by mjn3). See also the 204-* patch for gcc-4.2.0.
Peter
>
>
> Modified:
> trunk/buildroot/toolchain/gcc/4.1.0/200-uclibc-locale.patch
>
>
> Changeset:
> Modified: trunk/buildroot/toolchain/gcc/4.1.0/200-uclibc-locale.patch
> ===================================================================
> --- trunk/buildroot/toolchain/gcc/4.1.0/200-uclibc-locale.patch 2006-03-18 23:05:37 UTC (rev 14568)
> +++ trunk/buildroot/toolchain/gcc/4.1.0/200-uclibc-locale.patch 2006-03-19 07:37:25 UTC (rev 14569)
> @@ -1340,7 +1340,7 @@
> diff -urN gcc-4.1.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.1.0-patched/libstdc++-v3/config/locale/uclibc/monetary_members.cc
> --- gcc-4.1.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600
> +++ gcc-4.1.0-patched/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2005-04-30 19:36:16.927897479 -0500
> -@@ -0,0 +1,692 @@
> +@@ -0,0 +1,704 @@
> +// std::moneypunct implementation details, GNU version -*- C++ -*-
> +
> +// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
> @@ -1746,11 +1746,17 @@
> +#endif
> +#ifdef __UCLIBC__
> +# ifdef __UCLIBC_HAS_XLOCALE__
> -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
> -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
> ++ union { char *__s; wchar_t __w; } __u;
> ++ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
> ++ _M_data->_M_decimal_point = __u.__w;
> ++ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
> ++ _M_data->_M_thousands_sep = __u.__w;
> +# else
> -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
> -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
> ++ union { char *__s; wchar_t __w; } __u;
> ++ __u.__s = 0;
> ++ _M_data->_M_decimal_point = __u.__w;
> ++ __u.__s = 0;
> ++ _M_data->_M_thousands_sep = __u.__w;
> +# endif
> +#else
> + union { char *__s; wchar_t __w; } __u;
> @@ -1901,11 +1907,17 @@
> +#endif
> +#ifdef __UCLIBC__
> +# ifdef __UCLIBC_HAS_XLOCALE__
> -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
> -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
> ++ union { char *__s; wchar_t __w; } __u;
> ++ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
> ++ _M_data->_M_decimal_point = __u.__w;
> ++ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
> ++ _M_data->_M_thousands_sep = __u.__w;
> +# else
> -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
> -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
> ++ union { char *__s; wchar_t __w; } __u;
> ++ __u.__s = 0;
> ++ _M_data->_M_decimal_point = __u.__w;
> ++ __u.__s = 0;
> ++ _M_data->_M_thousands_sep = __u.__w;
> +# endif
> +#else
> + union { char *__s; wchar_t __w; } __u;
> @@ -2036,7 +2048,7 @@
> diff -urN gcc-4.1.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.1.0-patched/libstdc++-v3/config/locale/uclibc/numeric_members.cc
> --- gcc-4.1.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600
> +++ gcc-4.1.0-patched/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2005-04-30 19:36:38.467261324 -0500
> -@@ -0,0 +1,160 @@
> +@@ -0,0 +1,168 @@
> +// std::numpunct implementation details, GNU version -*- C++ -*-
> +
> +// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
> @@ -2170,10 +2182,18 @@
> + // Named locale.
> + // NB: In the GNU model wchar_t is always 32 bit wide.
> + union { char *__s; wchar_t __w; } __u;
> ++#ifdef __UCLIBC_HAS_XLOCALE__
> + __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
> ++#else
> ++ __u.__s = 0;
> ++#endif
> + _M_data->_M_decimal_point = __u.__w;
> +
> ++#ifdef __UCLIBC_HAS_XLOCALE__
> + __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
> ++#else
> ++ __u.__s = 0;
> ++#endif
> + _M_data->_M_thousands_sep = __u.__w;
> +
> + if (_M_data->_M_thousands_sep == L'\0')
>
> _______________________________________________
> uClibc-cvs mailing list
> uClibc-cvs at uclibc.org
> http://busybox.net/cgi-bin/mailman/listinfo/uclibc-cvs
>
>
--
Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2
More information about the uClibc
mailing list