Introduce target-specific LDFLAGS, the same way we have CFLAGS for the target.
It seems to be helping gcc somewhat into telling the correct endianness to ld that sticks with little endian even when the target is big (eg armeb-unknown-linux-uclibcgnueabi).
There's still work to do, especially finish the gcc part that is not in this commit.
/trunk/scripts/functions | 9 7 2 0 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
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
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;
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;
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;
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;
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
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
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;
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;
45 __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
46 _M_data->_M_thousands_sep = __u.__w;
49 if (_M_data->_M_thousands_sep == L'\0')
50 _M_data->_M_grouping = "";