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