RFR: 8293116: Incremental JDK build could be sped up [v2]
Jan Lahoda
jlahoda at openjdk.org
Thu Sep 1 12:49:11 UTC 2022
On Wed, 31 Aug 2022 20:02:46 GMT, Erik Joelsson <erikj at openjdk.org> wrote:
>> Jan Lahoda has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Reflecting review feedback.
>
> make/common/JavaCompilation.gmk line 451:
>
>> 449: # $$($1_VARDEPS_FILE) is used as dependency to track changes in set of
>> 450: # list of files.
>> 451: $$($1_COMPILE_TARGET): $$($1_SRCS) $$($1_DEPENDS) \
>
> What's the reason for inlining this recipe into the main compilation recipe? I would think generating the modfiles file in the FILELIST rule would help reduce the noise from non source files in the prerequisites list (as the old FILELIST rule had a lot less prerequisites listed). Keeping this recipe separate also limits regeneration of the FILELIST.
I've tried to fix this in:
https://github.com/openjdk/jdk/pull/10104/commits/f1e19e8b636ddf08500a6401ce1488265f7b9446
> make/common/JavaCompilation.gmk line 456:
>
>> 454: $$(call LogWarn, Compiling up to $$(words $$($1_SRCS)) files for $1)
>> 455: $$(eval $$(call ListPathsSafely, $1_SRCS, $$($1_FILELIST)))
>> 456: $$(call WriteFile, "-XDmodifiedInputs=$$? ", $$@.modfiles)
>
> I'm not sure WriteFile is safe to use here. `$?` could potentially contain all files in `$1_SRCS`, which is why we use ListPathsSafely in the first place. This is only a problem if using make <4.0, but as long as that's not prohibited, we need to keep it working without the file function.
Is there some recommendation on how to generate what is needed? Which is:
"-XDmodifiedFiles=<list-of-files> "
I was looking at the `WriteFile` rule, and it is not clear to be what is the problem there, but I'm not very knowledgeable of the build system.
I was trying to use `ListPathsSafely`, but wasn't able to find a way that would be working.
Thanks!
-------------
PR: https://git.openjdk.org/jdk/pull/10104
More information about the compiler-dev
mailing list