[12] RFR(XS) 8208463: jdk.internal.vm.compiler's module-info.java.extra contains duplicated provides of the same service interface
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Aug 14 04:33:32 UTC 2018
Thank you, Mandy
Vladimir
On 8/13/18 8:00 PM, mandy chung wrote:
> 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 hotspot-compiler-dev
mailing list