[12] RFR(XS) 8208463: jdk.internal.vm.compiler's module-info.java.extra contains duplicated provides of the same service interface
mandy chung
mandy.chung at oracle.com
Tue Aug 14 03:00:30 UTC 2018
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 \
More information about the build-dev
mailing list