[9] RFR (xs) 8168317: [JVMCI] use reflection instead of jdk 9 Module API in Services.java
Christian Thalinger
cthalinger at twitter.com
Wed Oct 19 20:52:16 UTC 2016
> On Oct 19, 2016, at 10:43 AM, Christian Thalinger <cthalinger at twitter.com> wrote:
>
>
>> On Oct 19, 2016, at 10:38 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com <mailto:vladimir.kozlov at oracle.com>> wrote:
>>
>> > SETUP needs to be GENERATE_USINGJDKBYTECODE. That one is using NEW_JAVAC.
>>
>> Does not work:
>>
>> Compiling 911 files for BUILD_VM_COMPILER_MATCH_PROCESSOR
>> error: cannot find module: java.base
>
> It should work because that’s how we do the actual annotation processing:
>
> http://cr.openjdk.java.net/~kvn/aot/hs.webrev/make/gensrc/Gensrc-jdk.vm.compiler.gmk.html <http://cr.openjdk.java.net/~kvn/aot/hs.webrev/make/gensrc/Gensrc-jdk.vm.compiler.gmk.html>
> 106 $(JAVA_SMALL) $(NEW_JAVAC) \
> 107 -XDignore.symbol.file \
> 108 --upgrade-module-path $(JDK_OUTPUTDIR)/modules --system none \
> and GENERATE_USINGJDKBYTECODE does:
>
> $(eval $(call SetupJavaCompiler,GENERATE_USINGJDKBYTECODE, \
> JVM := $(JAVA_SMALL), \
> JAVAC := $(NEW_JAVAC), \
> FLAGS := --upgrade-module-path $(JDK_OUTPUTDIR)/modules --system none $(DISABLE_WARNINGS), \
>
> (I think that’s where I took the code from initially)
>
> Does java.base exist in $(JDK_OUTPUTDIR)/modules?
The dependencies seem to be correct:
http://cr.openjdk.java.net/~kvn/aot/top.webrev/make/Main.gmk.udiff.html <http://cr.openjdk.java.net/~kvn/aot/top.webrev/make/Main.gmk.udiff.html>
+ # The annotation processing for jdk.vm.compiler needs classes from the current JDK.
+ jdk.vm.compiler-gensrc-hotspot: java.base-java java.management-java \
+ jdk.management-java jdk.vm.ci-java jdk.unsupported-java
Maybe we also need changes here:
http://cr.openjdk.java.net/~kvn/aot/hs.webrev/make/Tools.gmk.html <http://cr.openjdk.java.net/~kvn/aot/hs.webrev/make/Tools.gmk.html>
I’m a bit confused what SetupJavaCompilationCompileTarget does.
>
>>
>> Vladimir
>>
>> On 10/19/16 1:27 PM, Christian Thalinger wrote:
>>>
>>>> On Oct 19, 2016, at 9:54 AM, Igor Veresov <igor.veresov at oracle.com <mailto:igor.veresov at oracle.com>
>>>> <mailto:igor.veresov at oracle.com <mailto:igor.veresov at oracle.com>>> wrote:
>>>>
>>>>>
>>>>> On Oct 19, 2016, at 12:47 PM, Christian Thalinger
>>>>> <cthalinger at twitter.com <mailto:cthalinger at twitter.com> <mailto:cthalinger at twitter.com <mailto:cthalinger at twitter.com>>> wrote:
>>>>>
>>>>>
>>>>>> On Oct 19, 2016, at 9:40 AM, Vladimir Kozlov
>>>>>> <vladimir.kozlov at oracle.com <mailto:vladimir.kozlov at oracle.com> <mailto:vladimir.kozlov at oracle.com <mailto:vladimir.kozlov at oracle.com>>> wrote:
>>>>>>
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8168317 <https://bugs.openjdk.java.net/browse/JDK-8168317>
>>>>>>
>>>>>> webrev:
>>>>>> http://cr.openjdk.java.net/~kvn/8168317/webrev/
>>>>>>
>>>>>> When Graal is built as part of JDK it requires first to build an
>>>>>> annotation processor using boot jdk 8.
>>>>>> After JDK-8167180 changes Services class is referenced by annotation
>>>>>> processor but the code is using jdk 9 Module API and it can't be
>>>>>> used with jdk 8.
>>>>>
>>>>> I left a comment in the bug: Permalink
>>>>> <https://bugs.openjdk.java.net/browse/JDK-8168317?focusedCommentId=14013733&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14013733 <https://bugs.openjdk.java.net/browse/JDK-8168317?focusedCommentId=14013733&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14013733>>
>>>>>
>>>>> Basically, it should be possible to use the newly built javac to
>>>>> compile the annotation processors. Erik?
>>>>
>>>> It’s not only about compilation it’s about running it on the bootstrap
>>>> JDK, which in currently 8.
>>>
>>> With the proper build dependencies it should be possible to run on the
>>> exploded JDK 9.
>>>
>>> http://cr.openjdk.java.net/~kvn/aot/hs.webrev/make/CompileTools.gmk.html <http://cr.openjdk.java.net/~kvn/aot/hs.webrev/make/CompileTools.gmk.html>
>>>
>>> 51 $(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_MATCH_PROCESSOR, \
>>> 52 SETUP := GENERATE_OLDBYTECODE, \
>>>
>>> SETUP needs to be GENERATE_USINGJDKBYTECODE. That one is using NEW_JAVAC.
>>>
>>>>
>>>> igor
>>>>
>>>>>
>>>>> Can you paste or upload the .gmk file?
>>>>>
>>>>>>
>>>>>> Use reflection instead of Module API and use code only for running
>>>>>> with jdk 9.
>>>>>>
>>>>>> Testing with JPRT and JDK build of Graal.
>>>>>>
>>>>>> Thanks,
>>>>>> Vladimir
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20161019/235f7849/attachment-0001.html>
More information about the hotspot-compiler-dev
mailing list