------- Comment #6 from rob1weld at aol dot com 2009-01-13 07:16 ------- (In reply to comment #5) > # Even if the default multilib is not a cross compilation, > # it may be that some of the other multilibs are. > if test $cross_compiling = no && test $multilib = yes \ > && test "x${with_multisubdir}" != x ; then > cross_compiling=maybe > fi > Yes, it's a little screwy.
If 64 bit code can not be executed on a 32 bit platform then you MUST be 'cross compiling'. I think the term it is looking for is 'building multilib'. Other circumstances include "co-processing". You want to compile for your favorite hardware, Xbox or PSP, and you execute a portion of gcc's build on the device, both for speed and accuracy of the values determined by the configure scripts. The 'hardware' can also be "fake" like Qemu. There is also the situation where you have the hardware you are compiling for and could execute the program and libraries on the device. This helps to get the real values for fixing scripts used to cross compile. The gdb program can help run "make -i check" on your hardware remotely. Maybe the Docs need this explanation: What if you have a 486 and want to build 32/64 bit execs/libs for a 686. That is cross compiling and multilib, regardless of boot mode. Up in family or "cross" family is cross compiling. What if you have a 686 and want to build 32/64 bit execs/libs for a 686. That is building multilib, regardless of boot mode. Same family, no cross. What if you have a 686 and want to build 32/64 bit execs/libs for a 486. That is building multilib, regardless of boot mode. Down in family is not cross compiling. Building any of the above combinations with either only 32 bit _or_ only 64 bit execs/libs means you are not building multilib. Building for a higher number in the family or "cross" to a different (and non-compatible) family is cross compiling. A quick mention for completeness that cross platform (or ABI) compiling is not "cross compiling" in the usual sense though the same techniques can be used to get gcc to run under Cygwin (a Linux Simulation for Windows (and others)) or Wine (a Windows Simulation for Linux (and others)) by using bootstrapping and cross compiling. I don't know why this 32/64 bit issue comes up so often. We've had 64 bit OSes for a few years now. It must be the VM that is new and confusing ;(o Also, the dozen occurrences of the 'ac_link' variable is redundant. Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38804