RFR: JDK-8189094: Change required boot jdk to JDK 9

mandy chung mandy.chung at oracle.com
Tue Oct 17 17:54:13 UTC 2017


On 10/17/17 10:44 AM, Jan Lahoda wrote:
> The problematic part is TransitiveDependencies, right?
>
> Might be easier to replace:
> JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
> with:
> JavaCompiler compiler = JavacTool.create();
>
> (import com.sun.tools.javac.api.JavacTool;)
>
> That should avoid the ServiceLoader lookup.
>

Worth trying this and  I think this needs --limit-modules to hide 
jdk.compiler and other interim modules.

Does this build tool just depend on javac?  Does it need all system 
modules to be observable?

Mandy

> Jan
>
> On 17.10.2017 19:04, mandy chung wrote:
>> It'd be simpler if we could avoid patching ToolProvider.   The ctsym
>> generator is a build tool.  Jan and Jon may have suggestion if the build
>> tool can find the compiler from the interim module instead and use
>> --limit-modules to java.base?
>>
>> Mandy
>>
>> On 10/17/17 8:55 AM, Erik Joelsson wrote:
>>>
>>> The ctsym generator in Gendata-jdk.compiler.gmk looks up the tool
>>> using the ToolProvider. That part of the change was just a reaction to
>>> ctsym generation failing.
>>>
>>> /Erik
>>>
>>>
>>> On 2017-10-17 17:47, mandy chung wrote:
>>>> Hi Erik,
>>>>
>>>> On 10/16/17 6:12 AM, Erik Joelsson wrote:
>>>>>
>>>>> To generate the new modules, I copy the module-info.java files to a
>>>>> new gensrc dir and sed replace the module names. I also generate a
>>>>> new ToolProvider.java so that the default tools are taken from the
>>>>> interim modules.
>>>>>
>>>>> :
>>>>>
>>>>> Webrev: http://cr.openjdk.java.net/~erikj/8189094/webrev.01
>>>>
>>>> 65 java.compiler_EXTRA_FILES :=
>>>> $(BUILDTOOLS_OUTPUTDIR)/gensrc/java.compiler.interim/javax/tools/ToolProvider.java 
>>>>
>>>>
>>>> 66 TARGETS += $(java.compiler_EXTRA_FILES)
>>>>
>>>>
>>>> What issue did you run into without patching ToolProvider? I have
>>>> assumed
>>>> the build always launches javac/javadoc main class and not using
>>>> ToolProvider.
>>>>
>>>> 580 JAVAC_MAIN_CLASS = -m 
>>>> jdk.compiler.interim/com.sun.tools.javac.Main
>>>> 581 JAVADOC_MAIN_CLASS = -m
>>>> jdk.javadoc.interim/jdk.javadoc.internal.tool.Main Mandy
>>>
>>




More information about the build-dev mailing list