Is "host" the build or the target system?
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Thu May 24 05:47:57 PDT 2012
On 2012-05-24 14:24, David Holmes wrote:
> The configure "standard" goes against pre-existing terminology usage
> in this area. The system that executes the binary is the target.
>
> There should have been open discussion before this was reversed.
I agree on this. The policy of the build-infra branch was that it's free
to check in, and that we'll have peer review post-commit. I don't think
"free peer back-out" was part of the policy, though -- the idea was that
you should start a discussion if you were not satisfied with a fix.
On top of this, this commit was not a complete backout, and left the
build-infra in an unusable state. :-( I'm not sure what the correct
course of action is now, to back out the backout, or to keep it (and
build-infra unbuildable) until we have resolved this.
Anyway, we obviously need to discuss this more. I thought it was enough
that John Coomes thought "host" represented "build", and that you (as a
representative of the embedded team, who -- after all -- do most of the
cross-compilation in the real world) gave it a "+1000". :)
As I see it, there are two issues at stake:
1a) The tradition in OpenJDK is to mean "build system" with the name "host"
1b) The tradition in configure scripts is to mean "target system" with
the name "host"
2) Using "host" in the sense of "target" is confusing, even if you're
not entrenched in the OpenJDK tradition. (If you do a search on
"configure host target" you'll end up with tons of mail threads where
people fail to cross-compile since they have a hard time figuring out
that they should use "host" to specify their target platform.)
I'm not sure if Fredrik will agree on 2 but I expect that most of the
rest of you will.
As for 1, there are a real conflict of traditions. You can make a good
case for both positions. This is my view: Let's consider the group of
people that are well-versed in cross-compiling with configure scripts in
general, and want to cross-compile OpenJDK, and gets confused. I believe
this is a very small group. Let's consider the group of people
well-versed in working with OpenJDK and wanting to cross-compile. I
believe this is much larger, since we're moving to a world were it will
be easy for all developers to try to compile their changes for different
platforms on their own computer. So which one should we make life simple
for? I think you know what I think. :-)
Also, I believe my change made a good compromise: We'd use the
terminology "build" and "target" exclusively, which really can't be
misunderstood. However, it's still "backwards compatible" with the
configure standard, so if you are a die-hard configure expert, you can
still run "configure --host:yadaya" and it will work as you'd expect.
/Magnus
More information about the build-infra-dev
mailing list