RFR: JDK-8217739: Cannot reuse java.base UnixConstants.java from target in BuildJDK when cross compiling
Erik Joelsson
erik.joelsson at oracle.com
Tue Jun 4 16:00:17 UTC 2019
Thanks!
During testing, I found an intermittent race issue. The command line
that runs the interim langtools version of javac still always points to
the buildtools/interim-langtools dir of the normal build. This variable
also needs to be rewritten in buildjdk-spec.gmk.in. New webrev, only
changed in buildjdk-spec.gmk.in:
http://cr.openjdk.java.net/~erikj/8217739/webrev.02/
/Erik
On 2019-06-04 07:53, Tim Bell wrote:
> Erik:
>
> Looks good.
>
> Tim
>
>> 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