I haven't closely read everything in this thread. I just want to note
a historical point.
A long time ago, we decided that if --host were specified, $build
would default to $host.
This is because before config.guess was invented, people were used to
typing `configure HOST' as in `configure sun4'. It was always
understood that this specified the host system. For a couple of
months we tried having config.guess specify the build system if
--build were not used. We would then compare $host and $build to see
if we were doing a Canadian Cross.
This turned out to fail badly when people typed `configure sun4' as
they were accustomed to doing, because it is impossible in general to
compare two configuration triplet and know whether they refer to the
same system (I wrote some notes about this in my documentation at
http://www.airs.com/ian/configure/). The effect was that people were
winding up in a Canadian Cross situation when all they wanted was the
normal case.
That was a few years ago (1993 or so), and people are now used to
typing configure with no arguments. It might now be possible to make
a non- backward-compatible change at this point. However, it should
be clearly understood that it will not be backward compatible.
If you do make a change, I think the proper change is to reject a host
name mentioned with no option. That is, `configure sun4' should
simply fail. That will catch any old scripts which are still lying
around, and prevent them from silently doing the wrong thing. Then,
$build should default to the output of config.guess, $host should
default to $build, and $target should default to $host (in that
order). (Note that defaulting both $host and $build to the output of
config.guess, as suggested by at least one of the patches which flew
by, would be wrong).
It would then no longer be necessary to specify both --host and
--build in order to build a Canadian Cross.
Ian