On Tue, 4 Oct 2022 16:56:52 GMT, Erik Joelsson <er...@openjdk.org> wrote:

>> This patch fixes incremental builds on Windows.
>> 
>> There are 2 parts to this:
>> 1. the build system needs to run the paths in the modified file list through 
>> fixpath. I've added a `convert` mode to `fixpath.sh` for that. There's an 
>> extra target for generating the file with fixed paths. On non-windows 
>> platforms this is just a simple `cp` of the file.
>> 2. the dependency plugin of `javac` was using string-based path comparison. 
>> But, the paths fed by the build system and the paths used internally by 
>> javac could be in slightly different formats, meaning that files were not 
>> detected properly as changed. I switched to `Path`-based comparison instead 
>> and that fixes the issue.
>> 
>> Testing:
>> tested this manually by doing the following:
>> 1. `make clean`
>> 2. `make images`
>> 3. put garbage in one of the files in `java.base`
>> 4. `make images` (incremental)
>> 5. verify that the build reported an error
>> 6. verify the contents of 
>> `<build>\jdk\modules\java.base_the.java.base_batch.modfiles.fixed`
>> 7. revert the changes of 3, and do the same for another file
>> 8. `make images` (incremental)
>> 9. verify that the build reported an error
>> 10. verify the contents of 
>> `<build>\jdk\modules\java.base_the.java.base_batch.modfiles.fixed`
>> 11. remove garbage from file modified by 9 again
>> 12. `make images` (incremental)
>> 13. verify that build succeeds as in 2
>> 
>> I've tested the build on Windows and Linux (WSL) using the above steps.
>
> make/scripts/fixpath.sh line 361:
> 
>> 359:   outfile="$2"
>> 360:   if [[ -e $outfile ]] ; then
>> 361:         rm $outfile
> 
> Please try to match indent length with the rest of the file.

Looks like some tabs snuck in. Fixed now

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

PR: https://git.openjdk.org/jdk/pull/10560

Reply via email to