Contents|Index|Previous|Next
Cross-Compiler
Problems
You may run into problems
with cross compilation on certain machines, for several reasons.
- Cross compilation can run
into trouble for certain machines because some assemblers on some target
machines require floating point numbers to be written as integer
constants in certain contexts.
- The compiler writes these
integer constants by examining the floating point value as an integer and
printing that integer, because this is simple to write and independent
of the details of the floating point representation. But this does not
work if the compiler is running on a different machine with an incompatible
floating point format, or even a different byte-ordering.
- In addition, correct constant
folding of floating point values requires representing them in the target
machine’s format. (The C standard does not quite require this, but in practice
it is the only way to win.)
- It is now possible to overcome
these problems by defining macros such as REAL_VALUE_TYPE.
But doing so is a substantial amount of work for each target machine. See
libgcc.a
and Cross Compilers and Actually
Building the Cross-Compilers for more on macros.
- At present, the program
‘mips-tfile’
which adds debug support to object files on MIPS systems does not work
in a cross compile environment.