No, since to build on Solaris x86, (on any other unsupported platform), one
already needs to have SAGE_PORT set to something non-empty. Since I was building
on Solaris x86, I'd already needed to set SAGE_PORT. But on a fast x86 box, the
warning about an old gcc will not be seen.
I did consider insisting SAGE_PORT was set to something specific, like
"SAGE_PORT=permit_old_gcc", but the fact SAGE_PORT is then non-empty, would mean
a ton of other checks would not be performed, or would at least need complicated
re-writes.
I know its not a good idea to add endless environment variables, but in this
case, we do not even need to bother documenting SAGE_LET_ME_USE_OLD_GCC, as the
configure script would essentially be self-documenting. I'd suggest something like:
configure: WARNING: GCC 3.4.3 is too old and can not build Sage.
configure: WARNING: Please use a gcc of at least 4.0.1
configure: WARNING: if you just want Sage to build without problems.
configure: WARNING:
configure: WARNING: If you insist on using a gcc which is known to
configure: WARNING: fail to build Sage, then set the
configure: WARNING: environment variable PERMIT_OLD_GCC to "yes".
configure: WARNING:
configure: WARNING: The only reason to do this, would be if you want to
configure: WARNING: make changes to Sage which allow it to build
configure: WARNING: with older versions of gcc.
configure: WARNING:
configure: ERROR: Exiting, as gcc is too old.
(I think 'PERMIT_OLD_GCC' or 'SAGE_PERMIT_OLD_GCC', is better than
'SAGE_LET_ME_USE_OLD_GCC').
From a practical point of view, is anyone actually going to try to get Sage
working with gcc 3.4.x? If not, simply exiting with no option to override it
might be acceptable, though I would personally prefer to give someone the option
of overriding if they want to try.
I thought at one point it would be advantageous to get Sage building with 3.4.3
on Solaris, as it would allow Sage to be built with the Sun supplied compiler.
But then I realised that the compiler supplied by Sun does not support Fortran,
so it will never build Sage anyway.
So even on Solaris, one *must* install gcc 4.0.1 or later with Fortran support.
Whatever we do, I do not believe the current situation is satisfactory. With
computers getting faster and faster, warnings like this will have even less
chance of being seen. On Solaris, it has a fairly high probability of being
generated too, as the only compiler supplied is too old.
On a related point, on Solaris one *must* install a GCC with Fortran support, as
the sage_fortran binary in Sage has no compiler for Solaris. In which case,
perhaps we should consider exiting on Solaris, AIX, HP-UX, IRIX and Tru64 unless
there is a Fortran compiler. (i.e. if gcc is used, we check it supports
Fortran). I'm not sure what binaries that does contain (Linux and OS X perhaps??).
Dave