Contents|Index|Previous|Next

Actually Building the Cross-Compiler

Now you can proceed just as for compiling a single-machine compiler through the step of building stage 1. If you have not provided some sort of ‘libgcc1.a’, then compilation will give up at the point where it needs that file, printing a suitable error message. If you do provide ‘libgcc1.a’, then building the compiler will automatically compile and link a test program called ‘libgcc1-test’; if you get errors in the linking, it means that not all of the necessary routines in ‘libgcc1.a’ are available.

You must provide the header file float.h’. One way to do this is to compile enquire and run it on your target machine. The job of enquire is to run on the target machine and figure out by experiment the nature of its floating point representation. enquire records its findings in the header file ‘float.h’. If you can’t produce this file by running enquire on the target machine, then you will need to come up with a suitable ‘float.h’ in some other way (or else, avoid using it in your programs).

Do not try to build stage 2 for a cross-compiler. It doesn’t work to rebuild GNU CC as a cross-compiler using the cross-compiler, because that would produce a program that runs on the target machine, not on the host. For example, if you compile a 386-to-68030 cross-compiler with itself, the result will not be right either for the 386 (because it was compiled into 68030 code) or for the 68030 (because it was configured for a 386 as the host). If you want to compile GNU CC into 68030 code, whether you compile it on a 68030 or with a cross-compiler on a 386, you must specify a 68030 as the host when you configure it. To install the cross-compiler, use ‘make install’, as usual.