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

Reply via email to