Hi Vladimir,

This looks good.  I verified with my patch that enforces non-duplicate
provides check and it builds successfully.  Thanks for fixing it.

thanks
Mandy

On 8/13/18 5:06 PM, Vladimir Kozlov wrote:
https://bugs.openjdk.java.net/browse/JDK-8208463

Before we did not care how module-info.java.extra is generated. The code in Gensrc-jdk.internal.vm.compiler.gmk  make file simple ordered 'providers' files (which are packages names) by name and then use their contents to generate 'provides' instructions. If following file in sorted list reference the same package it will be added to the same 'provides' as for previous file. But it did not guarantee that all referenced packages are listed in the same 'provides' command.

The fix is to sort files not by their name but by their content. It guarantee that files with the same content will be listed together.

Run tier1-3 testing. It included Graal JIT testing and AOT (which uses Graal) testing.

Thanks,
Vladimir

diff -r ae001a1deb74 make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk
--- a/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk
+++ b/make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk
@@ -124,7 +124,7 @@
      ($(CD) $(GENSRC_DIR)/META-INF/providers && \
          p=""; \
          impl=""; \
-        for i in $$($(LS) | $(SORT)); do \
+        for i in $$($(GREP) '^' * | $(SORT) -t ':' -k 2 | $(SED) 's/:.*//'); do \
            c=$$($(CAT) $$i | $(TR) -d '\n\r'); \
            if test x$$p != x$$c; then \
                  if test x$$p != x; then \

Reply via email to