RFR (XXL): JEP 243: Java-Level JVM Compiler Interface (original) (raw)

Christian Thalinger christian.thalinger at oracle.com
Thu Oct 8 02:42:20 UTC 2015


On Oct 5, 2015, at 2:47 AM, Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com> wrote:

On 2015-09-29 03:12, Christian Thalinger wrote:

On Sep 27, 2015, at 11:25 PM, Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com> wrote:

On 2015-09-25 22:00, Christian Thalinger wrote: Btw. we found a bug in creating the OptionDescriptors files; we get duplicate entries:

$ cat build/macosx-x8664-normal-server-release/jdk/modules/java.base/META-INF/services/jdk.internal.jvmci.options.OptionDescriptors jdk.internal.jvmci.compiler.CompilerOptionDescriptors jdk.internal.jvmci.hotspot.HotSpotConstantReflectionProviderOptionDescriptors jdk.internal.jvmci.hotspot.HotSpotResolvedJavaFieldImplOptionDescriptors jdk.internal.jvmci.hotspot.HotSpotResolvedJavaMethodImplOptionDescriptors jdk.internal.jvmci.compiler.CompilerOptionDescriptors jdk.internal.jvmci.hotspot.HotSpotConstantReflectionProviderOptionDescriptors jdk.internal.jvmci.hotspot.HotSpotResolvedJavaFieldImplOptionDescriptors jdk.internal.jvmci.hotspot.HotSpotResolvedJavaMethodImplOptionDescriptors Would this be the right fix? diff -r db1a815d2f6c make/gensrc/Gensrc-java.base.gmk --- a/make/gensrc/Gensrc-java.base.gmkThu Sep 24 15:35:49 2015 -1000 +++ b/make/gensrc/Gensrc-java.base.gmkFri Sep 25 18🔞35 2015 +0200 @@ -94,6 +94,7 @@ $(GENSRCDIR)/gensrcprocdone $(MKDIR) -p $(@D) _($(CD) $(GENSRCDIR)/META-INF/jvmci.options && _ _+ (RM)−f(RM) -f (RM)f@; _ _for i in (ls); do _ _echo {i}OptionDescriptors >> $@; _ done) That seems like a reasonable fix, yes. Thanks, but… (see below)

And I see the same behavior for HotSpotJVMCIBackendFactory: $ cat build/macosx-x8664-normal-server-release/jdk/modules/java.base/META-INF/services/jdk.internal.jvmci.hotspot.HotSpotJVMCIBackendFactory jdk.internal.jvmci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory jdk.internal.jvmci.hotspot.sparc.SPARCHotSpotJVMCIBackendFactory jdk.internal.jvmci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory jdk.internal.jvmci.hotspot.sparc.SPARCHotSpotJVMCIBackendFactory So I think a similar fix needs to be applied there. …I’ve look at the code that creates this file and it isn’t obvious to me how to fix it. Any good ideas? Try this: _($(CD) $(GENSRCDIR)/META-INF/jvmci.providers && _ _for i in ($(LS)); do _ _c=$$($(CAT) i | $(TR) -d '\n\r'); _ _+ (RM)(RM) (RM)(GENSRCDIR)/META-INF/services/$$c; _ _$(ECHO) i >> (GENSRCDIR)/META−INF/services/(GENSRCDIR)/META-INF/services/(GENSRCDIR)/METAINF/services/$c; _ done) $(TOUCH) $@ I have not tested it but it should work.

No, this won’t work. Both implementations of HotSpotJVMCIBackendFactory (AMD64HotSpotJVMCIBackendFactory and SPARCHotSpotJVMCIBackendFactory) contain the same service file name:

jdk.internal.jvmci.hotspot.HotSpotJVMCIBackendFactory

since we need to collect all available factories in one service.

/Magnus



More information about the hotspot-dev mailing list