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