Building failed when using the options `--always-make` and `JOBS=4`

erik.joelsson at oracle.com erik.joelsson at oracle.com
Wed Jul 27 12:18:59 UTC 2022


Hello,

Building with --always-make seems like a bad idea and I would say not 
recommended with the OpenJDK build. We try very hard to keep the 
incremental build correct and reliable. While this particular problem 
could be fixed, I wouldn't be surprised if there is more build logic 
that relies on dependency evaluation to actually be correct in our 
build. Are you sure you can't configure the plugin to not add this 
parameter?

/Erik

On 7/27/22 1:30 AM, Guoxiong Li wrote:
> Hi all,
>
> When using the command `make images --always-make CONF_CHECK=ignore 
> JOBS=4` to build the JDK,
> it doesn't succeed and returns the error message (See below for detail).
> It seems that two or more processes concurrently process the target 
> `module-deps.gmk` which exists in the file `make/common/Modules.gmk`.
> All these processes print module dependence information into file 
> `build/linux-x86_64-server-slowdebug/make-support/module-deps.gmk`
> so that the file `module-deps.gmk` contains unqualified information. I 
> attach my local file `module-deps.gmk` for you to read.
>
> It is a bug which is related to both parallelism and the option 
> `--always-make`.
> So if you remove `JOBS=4` or `--always-make`, you can not reproduce 
> the bug.
> And we may never use the argument `--always-make` because it takes 
> more time to build the JDK.
> But unfortunately, when using vscode support according to the JDK 
> document [1] and using the vscode extension `ms-vscode.makefile-tools` 
> [2],
> this extension will use the argument `--always-make` and then will 
> report this error.
>
> [1] https://github.com/openjdk/jdk/blob/master/doc/ide.md
> [2] https://github.com/microsoft/vscode-makefile-tools/
>
>
> Here is the error message during building.
> ```
> Building target 'images' in configuration 'linux-x86_64-server-slowdebug'
> Compiling 1 files for BUILD_TOOLS_HOTSPOT
> Compiling 8 files for BUILD_TOOLS_LANGTOOLS
> /home/lgx/source/java/jdk-vscode/build/linux-x86_64-server-slowdebug/make-support/module-deps.gmk:8: 
> *** missing separator.  Stop.
> make/Main.gmk:157: recipe for target 'java.base-copy' failed
> make[2]: *** [java.base-copy] Error 2
> make[2]: *** Waiting for unfinished jobs....
> /home/lgx/source/java/jdk-vscode/build/linux-x86_64-server-slowdebug/make-support/module-deps.gmk:8: 
> *** missing separator.  Stop.
> make/Main.gmk:157: recipe for target 'java.desktop-copy' failed
> make[2]: *** [java.desktop-copy] Error 2
>
> ERROR: Build failed for target 'images' in configuration 
> 'linux-x86_64-server-slowdebug' (exit code 2)
>
> === Make failed targets repeated here ===
> make/Main.gmk:157: recipe for target 'java.base-copy' failed
> make/Main.gmk:157: recipe for target 'java.desktop-copy' failed
> === End of repeated output ===
>
> HELP: Try searching the build log for the name of the first failed target.
> HELP: Run 'make doctor' to diagnose build problems.
>
> /home/lgx/source/java/jdk-vscode/make/Init.gmk:310: recipe for target 
> 'main' failed
> make[1]: *** [main] Error 2
> /home/lgx/source/java/jdk-vscode/make/Init.gmk:186: recipe for target 
> 'images' failed
> make: *** [images] Error 2
> ```
>
> Best Regards,
> -- Guoxiong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/build-dev/attachments/20220727/a2264d6a/attachment-0001.htm>


More information about the build-dev mailing list