RFR: JDK-8139657: Incremental build of jdk.vm.ci-gensrc creates repeated entries in services file (original) (raw)

Erik Joelsson erik.joelsson at oracle.com
Fri Oct 16 07:32:58 UTC 2015


I will push it to hs-comp. Thanks for the review!

/Erik

On 2015-10-16 00:35, Christian Thalinger wrote:

Looks good.

Since you are a JDK 9 Reviewer, will you push this fix?

On Oct 15, 2015, at 2:39 AM, Erik Joelsson <erik.joelsson at oracle.com> wrote:

Hello, Sorry for not noticing this earlier. Here is a fix for the problem with repeating lines in the services file. Bug: https://bugs.openjdk.java.net/browse/JDK-8139657 Patch: diff -r 9ab5571ccea8 make/gensrc/Gensrc-jdk.vm.ci.gmk --- a/make/gensrc/Gensrc-jdk.vm.ci.gmk +++ b/make/gensrc/Gensrc-jdk.vm.ci.gmk @@ -108,7 +108,11 @@ _($(CD) $(GENSRCDIR)/META-INF/jvmci.providers && _ _for i in ($(LS)); do _ _c=$$($(CAT) i | $(TR) -d '\n\r'); _ _- (ECHO)(ECHO) (ECHO)$i >> (GENSRCDIR)/META−INF/services/(GENSRCDIR)/META-INF/services/(GENSRCDIR)/METAINF/services/$c; _ _+ (ECHO)(ECHO) (ECHO)$i >> (GENSRCDIR)/META−INF/services/(GENSRCDIR)/META-INF/services/(GENSRCDIR)/METAINF/services/$c.tmp; _ + done) _+ ($(CD) $(GENSRCDIR)/META-INF/services && _ _+ for i in ($(LS) *.tmp); do _ _+ (MV)(MV) (MV)$i {i%.tmp}; _ done) $(TOUCH) $@ /Erik On 2015-10-08 04:42, Christian Thalinger wrote: 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