RFR: JDK-8244036 Refresh SetupJavaCompilation, and remove support for sjavac

Erik Joelsson erik.joelsson at oracle.com
Tue Apr 28 22:35:52 UTC 2020


Hello Magnus,

Nice job! Looks good.

Is the disabling of the warning "options" actually needed in that many 
places or did you just add it everywhere where GENERATE_OLDBYTECODE was 
used?

Minor notes:

JavaCompilation.gmk
39: spelling
206: do -> does

/Erik

On 2020-04-28 13:37, Magnus Ihse Bursie wrote:
> The code for setting up Java compilation has long been quite hard to 
> understand, and has a tricky API. Part of this is due to the support 
> for the sjavac ("smart javac") system. We do not use sjavac anymore, 
> and it has not been tested for long. Part of the sjavac effort was 
> extracted into the "depend" javac plugin, and another part ended up as 
> the java server, both of which we still use.
>
> This patch removes the "traditional" sjavac support, keeping just the 
> depend plugin and javac server.
>
> It also redesigns the SetupJavaCompilation API on how to define which 
> compiler to use (from the boot jdk or the interim compiler built as 
> part of the buildtools), and what JDK to target. This captures more 
> precisely what was expressed by the cryptic "Setups" in 
> SetupJavaCompilers.gmk.
>
> The generated Java code that goes into the product should be 
> byte-by-byte identical with this patch. However, I've not applied the 
> same level of strictness for our build tools, where I have accepted 
> changes in bytecode to make the new API calls simpler. This does not 
> affect the output from the build tools.
>
> I imagine a second pass will be needed after this, to clear up some 
> remaining stuff. For instance, it is not clear that all instances of 
> SetupJavaCompilation really ask for the correct thing.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8244036
> WebRev: 
> http://cr.openjdk.java.net/~ihse/JDK-8244036-remove-sjavac/webrev.01
>
> /Magnus



More information about the build-dev mailing list