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

Attachment: module-deps.gmk
Description: Binary data

Reply via email to