[Buildroot] [buildroot 0000925]: __global_locale error from gcc (buildroot)
bugs at busybox.net
bugs at busybox.net
Mon Feb 12 13:45:13 UTC 2007
The following issue has been ASSIGNED.
======================================================================
http://busybox.net/bugs/view.php?id=925
======================================================================
Reported By: STV
Assigned To: buildroot
======================================================================
Project: buildroot
Issue ID: 925
Category: Architecture Specific
Reproducibility: always
Severity: block
Priority: normal
Status: assigned
======================================================================
Date Submitted: 06-26-2006 01:44 PDT
Last Modified: 02-12-2007 05:45 PST
======================================================================
Summary: __global_locale error from gcc (buildroot)
Description:
Hi, I've been having real trouble getting gcc to build from buildbox whilst
using the latest uClibc snapshots. I have tried all sorts of version
combinations with no luck. The problem I have been having is:
# GCC 4.1.1, uClibC daily snapshot, Build/install c++ compiler and
libstdc++, Build/install Objective-C compiler and runtime, no locale
support...
monetary_members.cc: In member function 'void std::moneypunct<_CharT,
_Intl>::_M_initialize_moneypunct(int*, const char*) [with _CharT =
wchar_t, bool _Intl = true]':
monetary_members.cc:409: error: '__global_locale' was not declared in this
scope
monetary_members.cc: In member function 'void std::moneypunct<_CharT,
_Intl>::_M_initialize_moneypunct(int*, const char*) [with _CharT =
wchar_t, bool _Intl = false]':
monetary_members.cc:564: error: '__global_locale' was not declared in this
scope
make[5]: *** [monetary_members.lo] Error 1
make[5]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.1-final/i686-linux-uclibc/libstdc++-v3/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.1-final/i686-linux-uclibc/libstdc++-v3'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.1-final/i686-linux-uclibc/libstdc++-v3'
make[2]: *** [all-target-libstdc++-v3] Error 2
make[2]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.1-final'
make[1]: *** [all] Error 2
make[1]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.1-final'
make: ***
[/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.1-final/.compiled]
Error 2
I thought I had found a fix when I found
http://www.busybox.net/lists/uclibc/2006-March/014899.html, which says:
> 2) I took your 20x- patches from gcc-4.2.0 and applied them to
> gcc-4.1.0 and tried to build a toolchain without locale support
> and it would not build the c++ support again. The error had to
> do with missing ctype functions. I also tried to build WITH
> locale support and got the same errors.
> you have to use gcc-4.1.0 patches and 204-* from gcc-4.2.0 only, that
> should fix the missing __global_locale and missing _LC_*. You can't use
> the complete 20x* patches from gcc-4.2.0, because you will miss
os/uclibc
> part of it (that was added upstream)
> The 204-* patch is based on similar "corrections" done by mjn3 in
> monetary_members.cc, it should allow to build gcc-4.1 w/ WCHAR enabled,
> but LOCALE disabled. I am not sure if my patch is correct, maybe we need
> some "replacement" for the case if __global_locale is not available,
> asked mjn3 about it, have gotten no answer yet.
> If you want to be able to build gcc-4.1 w/ XLOCALE enabled (not only
> LOCALE), you will also need 203-*.
> Note: the 203-* patch is needed for all gcc's, if you want them to build
> w/ XLOCALE enabled against current uClibc-svn.
so I tried and do exactly that...
GCC 4.1.0
uClibc latest snapshot
Build/install c++ compiler and libstdc++
Build/install java compiler and libgcj
Build/install Objective-C compiler and runtime
no locale support
and the following patches in the toolchain/gcc/4.1.0 directory:
-rw-r--r-- 1 tom users 17749 Jun 26 00:46 100-uclibc-conf.patch
-rw-r--r-- 1 tom users 1302 Jun 26 00:46 110-arm-eabi.patch
-rw-r--r-- 1 tom users 112159 Jun 26 08:36 200-uclibc-locale.patch
-rw-r--r-- 1 tom users 7665 Jun 26 01:39 203-uclibc-locale-no__x.patch
-rw-r--r-- 1 tom users 1988 Jun 26 08:35
204-uclibc-locale-wchar_fix.patch
-rw-r--r-- 1 tom users 1742 Jun 26 00:46 300-libstdc++-pic.patch
-rw-r--r-- 1 tom users 446 Jun 26 00:46 301-missing-execinfo_h.patch
-rw-r--r-- 1 tom users 333 Jun 26 00:46 302-c99-snprintf.patch
-rw-r--r-- 1 tom users 402 Jun 26 00:46
303-c99-complex-ugly-hack.patch
-rw-r--r-- 1 tom users 721 Jun 26 00:46 304-index_macro.patch
-rw-r--r-- 1 tom users 679 Jun 26 00:46 740-sh-pr24836.patch
-rw-r--r-- 1 tom users 2059 Jun 26 00:46 800-arm-bigendian.patch
it sucessfully applies the 200-*patch, the 203-* patch from 4.2, but then
fails to apply the 204-* patch from 4.2:
Applying 204-uclibc-locale-wchar_fix.patch using plaintext:
patching file libstdc++-v3/config/locale/uclibc/monetary_members.cc
patching file libstdc++-v3/config/locale/uclibc/numeric_members.cc
Hunk http://busybox.net/bugs/view.php?id=1 FAILED at 127.
1 out of 1 hunk FAILED -- saving rejects to file
libstdc++-v3/config/locale/uclibc/numeric_members.cc.rej
Patch failed! Please fix 204-uclibc-locale-wchar_fix.patch!
make: *** [/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0/.patched]
Error 1
what am I doing wrong? How can I use buildroot with the latest uClibc and
a recent version of gcc?
The only combination I can get to work is the following, although I'm not
happy to work with gcc 4.0.3:
# buildroot3 - GCC 4.0.3, uClibc daily snapshot, linux-2.6.12
here are the errors from some other combinations that I have tried and
failed with:
# GCC 4.2 (snapshot), uClibC daily snapshot, Build/install c++ compiler
and libstdc++, Build/install Objective-C compiler and runtime, no
locale...
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/rope:2522:32:
error: macro "index" requires 2 arguments, but only 1 given
In file included from
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/rope:2899,
from
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-20060408/libstdc++-v3/src/ext-inst.cc:34:
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1665:67:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1667:26:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1667:55:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1669:28:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1669:44:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1669:63:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1671:27:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1671:45:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/ropeimpl.h:1671:63:
error: macro "index" requires 2 arguments, but only 1 given
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/rope:1086:
error: expected ';' before 'const'
/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/include/ext/rope:1089:
error: expected `;' before '_Rope_iterator_base'
make[5]: *** [ext-inst.lo] Error 1
make[5]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/i686-linux-uclibc/libstdc++-v3'
make[2]: *** [all-target-libstdc++-v3] Error 2
make[2]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final'
make[1]: *** [all] Error 2
make[1]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final'
make: ***
[/data/stv/buildroot4/toolchain_build_i686/gcc-4.2-final/.compiled] Error
2
# buildroot4 - GCC 4.1.0, uClibC daily snapshot, +4.2/202,203,204 patches,
Build/install c++ compiler and libstdc++, Build/install Objective-C
compiler and runtime, no locale...
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:40:
error: request for member '__ctype_b' in '*
std::locale::facet::_S_get_c_locale()', which is of non-class type 'int'
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:
In constructor 'std::ctype<char>::ctype(int*, const short unsigned int*,
bool, size_t)':
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:64:
error: request for member '__ctype_toupper' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:65:
error: request for member '__ctype_tolower' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:66:
error: request for member '__ctype_b' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:
In constructor 'std::ctype<char>::ctype(const short unsigned int*, bool,
size_t)':
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:100:
error: request for member '__ctype_toupper' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:101:
error: request for member '__ctype_tolower' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:102:
error: request for member '__ctype_b' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
make[5]: *** [ctype.lo] Error 1
make[5]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3'
make[2]: *** [all-target-libstdc++-v3] Error 2
make[2]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final'
make[1]: *** [all] Error 2
make[1]: Leaving directory
`/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final'
make: ***
[/data/stv/buildroot4/toolchain_build_i686/gcc-4.1.0-final/.compiled]
Error 2
# buildroot5 - GCC 4.1.0, uClibC daily snapshot, +4.2/202,203 patches,
Build/install c++ compiler and libstdc++, Build/install Objective-C
compiler and runtime, no locale...
ections -c
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0/libstdc++-v3/src/ctype.cc
-fPIC -DPIC -o .libs/ctype.o
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:
In static member function 'static const short unsigned int*
std::ctype<char>::classic_table()':
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:40:
error: request for member '__ctype_b' in '*
std::locale::facet::_S_get_c_locale()', which is of non-class type 'int'
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:
In constructor 'std::ctype<char>::ctype(int*, const short unsigned int*,
bool, size_t)':
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:64:
error: request for member '__ctype_toupper' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:65:
error: request for member '__ctype_tolower' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:66:
error: request for member '__ctype_b' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:
In constructor 'std::ctype<char>::ctype(const short unsigned int*, bool,
size_t)':
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:100:
error: request for member '__ctype_toupper' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:101:
error: request for member '__ctype_tolower' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/include/i686-linux-uclibc/bits/ctype_noninline.h:102:
error: request for member '__ctype_b' in
'*((std::ctype<char>*)this)->std::ctype<char>::_M_c_locale_ctype', which
is of non-class type 'int'
make[5]: *** [ctype.lo] Error 1
make[5]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/i686-linux-uclibc/libstdc++-v3'
make[2]: *** [all-target-libstdc++-v3] Error 2
make[2]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final'
make[1]: *** [all] Error 2
make[1]: Leaving directory
`/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final'
make: ***
[/data/stv/buildroot5/toolchain_build_i686/gcc-4.1.0-final/.compiled]
Error 2
# buildroot-1.1.3 - GCC 3.4.2, uClibC, Build/install c++ compiler and
libstdc++, Build/install Objective-C compiler and runtime, no locale...
/data/stv/buildroot-1.1.3/build_i686/busybox/util-linux/fdisk.c: In
function `get_sectorsize':
/data/stv/buildroot-1.1.3/build_i686/busybox/util-linux/fdisk.c:3921:
error: `BLKSSZGET' undeclared (first use in this function)
/data/stv/buildroot-1.1.3/build_i686/busybox/util-linux/fdisk.c:3921:
error: (Each undeclared identifier is reported only once
/data/stv/buildroot-1.1.3/build_i686/busybox/util-linux/fdisk.c:3921:
error: for each function it appears in.)
make[2]: ***
[/data/stv/buildroot-1.1.3/build_i686/busybox/util-linux/fdisk.o] Error 1
make[1]: *** [_all] Error 2
make[1]: Leaving directory `/data/stv/buildroot-1.1.3/build_i686/busybox'
make: *** [/data/stv/buildroot-1.1.3/build_i686/busybox/busybox] Error 2
======================================================================
----------------------------------------------------------------------
vapier - 06-29-06 18:22
----------------------------------------------------------------------
fixed in svn
Issue History
Date Modified Username Field Change
======================================================================
06-26-06 01:44 STV New Issue
06-26-06 01:44 STV Status new => assigned
06-26-06 01:44 STV Assigned To => uClibc
06-29-06 18:22 vapier Note Added: 0001480
06-29-06 18:22 vapier Status assigned => closed
06-29-06 18:22 vapier Resolution open => fixed
02-12-07 05:45 vapier Status closed => assigned
02-12-07 05:45 vapier Assigned To uClibc => buildroot
======================================================================
More information about the buildroot
mailing list