On Thu, 21 Mar 2024 14:54:15 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:

>> Severin Gehwolf has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Move CreateLinkableRuntimePlugin to build folder
>>   
>>   Keep runtime link supporting classes in package
>>   jdk.tools.jlink.internal.runtimelink
>
> make/Images.gmk line 124:
> 
>> 122: 
>> 123: ifeq ($(JLINK_PRODUCE_RUNTIME_LINK_JDK), true)
>> 124: 
> 
> Please avoid newlines after if statements.
> 
> Suggestion:

OK.

> make/Images.gmk line 131:
> 
>> 129:   # in FixPath call in order to avoid needing to use strip.
>> 130:   RL_JIMAGE_PATH_ARG := $(call 
>> FixPath,$(JDK_LINK_OUTPUT_DIR)/lib/modules)
>> 131:   RL_MOD_PATH_ARG := $(call FixPath,$(IMAGES_OUTPUTDIR)/jmods)
> 
> I'd much rather prefer to use strip and have proper space after commas. This 
> is the approach taken elsewhere in the build system.
> 
> Suggestion:
> 
>   RL_JIMAGE_PATH_ARG := $(strip $(call FixPath, 
> $(JDK_LINK_OUTPUT_DIR)/lib/modules))
>   RL_MOD_PATH_ARG := $(strip $(call FixPath, $(IMAGES_OUTPUTDIR)/jmods))

Thanks! This will also likely change. I'm thinking of just generating the diff 
file and putting it into `lib/` of the JDK image. That avoids needing to call 
this build-time only jlink plugin and this `FixPath` magic.

> make/Images.gmk line 145:
> 
>> 143:   $(eval $(call SetupJavaCompilation, BUILD_JDK_RUNLINK_CLASSES, \
>> 144:       COMPILER := buildjdk, \
>> 145:       DISABLED_WARNINGS := try, \
> 
> Why do we get warnings in the java code?

That's not needed anymore. There are some `try` warnings in the `JmodsReader` 
and `JimageDiffGenerator` classes which used to get compiled with this. It'll 
probably change again...

> make/Images.gmk line 171:
> 
>> 169: 
>> 170:   JLINK_JDK_TARGETS += $(jlink_runtime_jdk)
>> 171: 
> 
> Please avoid newlines before endif statements.
> 
> Suggestion:

OK. Will fix.

> First question, do this class really need to be in a separate module? (I'm 
> afraid the answer is "yes" but I need to ask it anyway).

Yes, because it uses the `Plugin` ServiceLoader extension using the boot 
ModuleLayer. But it's going to be a moot point because this'll get reworked due 
to concerns raised by @mlchung (having the plugin pipeline running when 
producing a linkable runtime jimage).

> src/jdk.jlink/share/classes/jdk/tools/jlink/internal/runtimelink/JimageDiffGenerator.java
>  line 36:
> 
>> 34: 
>> 35: /**
>> 36:  * Used by the build-only jlink plugin CreateLinkableRuntimePlugin.
> 
> Why does this file not live next to the jlink plugin then? Does it have to be 
> part of the jdk.jlink module?

The idea was to have the "supporting" classes inside jdk.jlink to keep 
code-bases in sync. But the actual invocation of them should be in the build 
code. This will likely change again.

> src/jdk.jlink/share/classes/jdk/tools/jlink/internal/runtimelink/JimageDiffGenerator.java
>  line 40:
> 
>> 38: public class JimageDiffGenerator {
>> 39: 
>> 40:     private static final boolean DEBUG = false;
> 
> This seems like left-over debug code. If this should go into product code I 
> suggest you either remove it, or alternatively make it possible to change at 
> runtime, if the debug functionality will be needed.

OK.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1534137541
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1534141577
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1534148956
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1534137294
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1534136264
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1534154082
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1534151066

Reply via email to