I have built GCC 4.7 on my x86 32-bit linux system. When I try to cross-compile with the -m64 flag I get the following:
sorry, unimplemented: 64-bit mode not compiled in
while the compiler provided by default by my Linux distribution can cross-compile with -m64.
What do I have to pass to ./configure to enable the 64bit mode in GCC? These are the options I used to build GCC 4.7:
$ /usr/local/bin/g++ -v Using built-in specs.
COLLECT_GCC=/usr/local/bin/g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ./configure --enable-multiarch --with-cloog=/usr/local/ --with-mpfr=/usr/local/ --with-ppl=/usr/local/ --verbose --enable-languages=c,c++
Thread model: posix gcc version 4.7.0 20120113 (experimental) (GCC)
EDIT:
--enable-multilib and --enable-targets=i686-pc-linux-gnu,x86_64-pc-linux-gnu
do not change the situation. The compiler still complains about 64 bit mode not compiled in:
$ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ./configure --enable-multiarch --with-cloog=/usr/local/ --with-mpfr=/usr/local/ --with-ppl=/usr/local/ --verbose --enable-languages=c,c++ --enable-multilib --enable-targets=i686-pc-linux-gnu,x86_64-pc-linux-gnu Thread model: posix gcc version 4.7.0 20120113 (experimental) (GCC)
$ g++ -m64 c.cpp c.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in
--enable-multiarch
suggests Debian (or derivative), and as I remember, FSF's GCC doesn't really work all that well with Debian's multiarch systems. You may need to apply Debian's patches to the FSF GCC snapshots. – user743382