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