RFR (XXL): JEP 243: Java-Level JVM Compiler Interface
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Mon Oct 5 12:47:05 UTC 2015
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-x86_64-normal-server-release/jdk/modules/java.base/META-INF/services/jdk.internal.jvmci.options.OptionDescriptors
>>> jdk.internal.jvmci.compiler.Compiler_OptionDescriptors
>>> jdk.internal.jvmci.hotspot.HotSpotConstantReflectionProvider_OptionDescriptors
>>> jdk.internal.jvmci.hotspot.HotSpotResolvedJavaFieldImpl_OptionDescriptors
>>> jdk.internal.jvmci.hotspot.HotSpotResolvedJavaMethodImpl_OptionDescriptors
>>> jdk.internal.jvmci.compiler.Compiler_OptionDescriptors
>>> jdk.internal.jvmci.hotspot.HotSpotConstantReflectionProvider_OptionDescriptors
>>> jdk.internal.jvmci.hotspot.HotSpotResolvedJavaFieldImpl_OptionDescriptors
>>> jdk.internal.jvmci.hotspot.HotSpotResolvedJavaMethodImpl_OptionDescriptors
>>> …
>>>
>>> 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:18:35 2015 +0200
>>> @@ -94,6 +94,7 @@
>>> $(GENSRC_DIR)/_gensrc_proc_done
>>> $(MKDIR) -p $(@D)
>>> ($(CD) $(GENSRC_DIR)/META-INF/jvmci.options && \
>>> + $(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-x86_64-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) $(GENSRC_DIR)/META-INF/jvmci.providers && \
for i in $$($(LS)); do \
c=$$($(CAT) $$i | $(TR) -d '\n\r'); \
+ $(RM) $(GENSRC_DIR)/META-INF/services/$$c; \
$(ECHO) $$i >> $(GENSRC_DIR)/META-INF/services/$$c; \
done)
$(TOUCH) $@
I have not tested it but it should work.
/Magnus
More information about the hotspot-dev
mailing list