Hi Gregory,

On 3/2/2010 4:14 PM, Grégory Pakosz wrote:
  ./configure --host=i686-pc-linux-gnu \
               --prefix=/arch/x86-linux/gnu \
               CC="gcc -m32 -march=i586" \
               CXX="g++ -m32 -march=i586" \
               LDFLAGS="-m32"
I'm curious about why setting "--host=i686-pc-linux-gnu" is not enough
to achieve cross compiling and why in that case it's not up to
autoconf to add "-m32" to CC.

You don't need to specify -m32 if you have a tool set prefixed with the cross tag. The reason for using -m32 is because the user wants to use his 64-bit gcc to compile 32-bit code, so he has to tell the compiler to switch to 32-bit mode also. (Incidentally, if you're running on Linux, might also be a good idea to tell the compiler you're running in a 32-bit environment by executing gcc with linux32).

Another way to use your 64-bit gcc without special compiler flags is to create scripts, named with the cross prefix, in your bin directory that execute the compiler in 32-bit mode (and perhaps also executed by linux32). Then these tools will be preferred by Autoconf when you use --host=.

Regards,
John



Reply via email to