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.

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


Reply via email to