Cross-compiler Problems
-----------------------
`g77' has been in alpha testing since September of 1992, and in
public beta testing since February of 1995. Alpha testing was done by
a small number of people worldwide on a fairly wide variety of
machines, involving self-compilation in most or all cases. Beta
testing has been done primarily via self-compilation, but in more and
more cases, cross-compilation (and "criss-cross compilation", where a
version of a compiler is built on one machine to run on a second and
generate code that runs on a third) has been tried and has succeeded,
to varying extents.
Generally, `g77' can be ported to any configuration to which `gcc',
`f2c', and `libf2c' can be ported and made to work together, aside from
the known problems described in this manual. If you want to port `g77'
to a particular configuration, you should first make sure `gcc' and
`libf2c' can be ported to that configuration before focusing on `g77',
because `g77' is so dependent on them.
Even for cases where `gcc' and `libf2c' work, you might run into
problems with cross-compilation on certain machines, for several
reasons.
* There is one known bug (a design bug to be fixed in 0.6) that
prevents configuration of `g77' as a cross-compiler in some cases,
though there are assumptions made during configuration that
probably make doing non-self-hosting builds a hassle, requiring
manual intervention.
* `gcc' might still have some trouble being configured for certain
combinations of machines. For example, it might not know how to
handle floating-point constants.
* Improvements to the way `libg2c' is built could make building
`g77' as a cross-compiler easier--for example, passing and using
`$(LD)' and `$(AR)' in the appropriate ways. (This is improved in
the `egcs' version of `g77', especially as of version 1.1.)
* There are still some challenges putting together the right
run-time libraries (needed by `libg2c') for a target system,
depending on the systems involved in the configuration. (This is
a general problem with cross-compilation, and with `gcc' in
particular.)