Hi, The cegcc project offers a cross-compiler, the target is your average ARM based pocketpc/smartphone (Windows CE based). A new development is for x86 based targets. This new stuff is based on gcc-4.4.0 . My question is that a trivial C++ program #include <iostream> using namespace std; int main(int argc, char *argv[]) { cout << "Hello\n" ; } works on ARM, but fails on x86. The build produces a different set of warnings though, see below. Debugging the malfunctioning program on x86 (which is hard, cross-debugging a target which I'm learning to work with) appears to reveal that the crash occurs in one of the symbols mentioned : std::ios_base::Init::Init() Note that this is the message that comes up for the i386 build but not for the ARM build. Can anyone point me to potential causes ? Remember, this same application will run well on ARM. Thanks, Danny > When I compile the same program with arm-mingw32ce-g++ or with > i386-mingw32ce-g++ , the results are different. > > pavilion: {124} i386-mingw32ce-g++ -g -D_WIN32_IE=0x0400 > -D_WIN32_WCE=0x0400 -o hello.exe hello.C > Info: resolving std::cout by linking to __imp___ZSt4cout > (auto-import) > Info: resolving std::basic_ostream<char, std::char_traits<char> >& > std::operator<< <std::char_traits<char> >(std::basic_ostream<char, > std::char_traits<char> >&, char const*) by linking to > __imp___ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc > (auto-import) > Info: resolving std::ios_base::Init::Init() by linking to > __imp___ZNSt8ios_base4InitC1Ev (auto-import) > Info: resolving std::ios_base::Init::~Init() by linking to > __imp___ZNSt8ios_base4InitD1Ev (auto-import) > /opt/x86mingw32ce/lib/gcc/i386-mingw32ce/4.4.0/../../../../i386-mingw32ce/bin/ld: warning: auto-importing has been activated without --enable-auto-import specified on the command line. > This should work unless it involves constant data structures > referencing > symbols from auto-imported DLLs. > pavilion: {125} arm-mingw32ce-g++ -g -D_WIN32_IE=0x0400 > -D_WIN32_WCE=0x0400 -o hello.exe hello.C > Info: resolving std::cout by linking to __imp__ZSt4cout (auto-import) > /opt/mingw32ce/lib/gcc/arm-mingw32ce/4.4.0/../../../../arm-mingw32ce/bin/ld: warning: auto-importing has been activated without --enable-auto-import specified on the command line. > This should work unless it involves constant data structures > referencing > symbols from auto-imported DLLs. > pavilion: {126} > > The std::ios_base::Init::Init() is the constructor that crashes the > application (but only on i386). > > What could explain the difference between ARM and i386 ? > > Danny -- Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info