RFR: JDK-8217739: Cannot reuse java.base UnixConstants.java from target in BuildJDK when cross compiling
Erik Joelsson
erik.joelsson at oracle.com
Mon Jun 3 22:55:43 UTC 2019
This is a fix for a problem brought up on this list [1]. The main issue
is that when cross compiling, and creating a buildjdk during the build,
the UnixConstants.java cannot necessarily be reused between the target
JDK and the buildjdk. While investigating this, I came to the conclusion
that we really should stop trying to reuse anything between the buildjdk
and target JDK. It's just becoming too complex to maintain (due to the
intricate interactions with the interim-image, generate-link-opt-data
and exploded-image-optimize targets, causing circular dependencies and
endless incremental rebuilds).
So this fix simply removes all the reuse of buildtools, gensrc and java
compilation when creating a buildjdk. Hopefully this is making Main.gmk
a bit less convoluted.
While working on this, I came up with the idea of adding a log prefix
functionality, to more easily discern which log lines were printed by
the buildjdk build and which were part of the normal build. I liked this
a lot so including that in the same fix, and applied it to the bootcycle
build as well.
Bug: https://bugs.openjdk.java.net/browse/JDK-8217739
Webrev: http://cr.openjdk.java.net/~erikj/8217739/webrev.01/index.html
/Erik
[1]
http://mail.openjdk.java.net/pipermail/build-dev/2019-January/024729.html
More information about the build-dev
mailing list