<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hello,</p>
    <p>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?</p>
    <p>/Erik<br>
    </p>
    <div class="moz-cite-prefix">On 7/27/22 1:30 AM, Guoxiong Li wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CAPSsVqj41KrTY_b46VVvceasCzYSBoTQvV90i7CEny=5ic_M8A@mail.gmail.com">
      
      <div dir="ltr">
        <div id="gmail-:2jk" class="gmail-Ar gmail-Au gmail-Ao">
          <div id="gmail-:2jg" class="gmail-Am gmail-Al editable
            gmail-LW-avf gmail-tS-tW gmail-tS-tY" aria-label="Message
            Body" role="textbox" aria-multiline="true" tabindex="1" style="direction:ltr;min-height:335px">Hi all,
            <div><br>
            </div>
            <div>When using the command `make images --always-make
              CONF_CHECK=ignore JOBS=4` to build the JDK,</div>
            <div>it doesn't succeed and returns the error message (See
              below for detail).</div>
            <div>It seems that two or more processes concurrently
              process the target `module-deps.gmk` which exists in the
              file `make/common/Modules.gmk`. </div>
            <div>All these processes print module dependence information
              into file
              `build/linux-x86_64-server-slowdebug/make-support/module-deps.gmk` </div>
            <div>so that the file `module-deps.gmk` contains unqualified
              information. I attach my local file `module-deps.gmk` for
              you to read.</div>
            <div><br>
            </div>
            <div>It is a bug which is related to both parallelism and
              the option `--always-make`.</div>
            <div>So if you remove `JOBS=4` or `--always-make`, you can
              not reproduce the bug.</div>
            <div>And we may never use the argument `--always-make`
              because it takes more time to build the JDK.</div>
            <div>But unfortunately, when using vscode support according
              to the JDK document [1] and using the vscode extension
              `ms-vscode.makefile-tools` [2],</div>
            <div>this extension will use the argument `--always-make`
              and then will report this error.</div>
            <div><br>
            </div>
            <div>[1] <a href="https://github.com/openjdk/jdk/blob/master/doc/ide.md" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/openjdk/jdk/blob/master/doc/ide.md</a></div>
            <div>[2] <a href="https://github.com/microsoft/vscode-makefile-tools/" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/microsoft/vscode-makefile-tools/</a></div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div>Here is the error message during building.</div>
            <div>```</div>
            <div>Building target 'images' in configuration
              'linux-x86_64-server-slowdebug'<br>
              Compiling 1 files for BUILD_TOOLS_HOTSPOT<br>
              Compiling 8 files for BUILD_TOOLS_LANGTOOLS<br>
/home/lgx/source/java/jdk-vscode/build/linux-x86_64-server-slowdebug/make-support/module-deps.gmk:8:
              *** missing separator.  Stop.<br>
              make/Main.gmk:157: recipe for target 'java.base-copy'
              failed<br>
              make[2]: *** [java.base-copy] Error 2<br>
              make[2]: *** Waiting for unfinished jobs....<br>
/home/lgx/source/java/jdk-vscode/build/linux-x86_64-server-slowdebug/make-support/module-deps.gmk:8:
              *** missing separator.  Stop.<br>
              make/Main.gmk:157: recipe for target 'java.desktop-copy'
              failed<br>
              make[2]: *** [java.desktop-copy] Error 2<br>
              <br>
              ERROR: Build failed for target 'images' in configuration
              'linux-x86_64-server-slowdebug' (exit code 2)<br>
              <br>
              === Make failed targets repeated here ===<br>
              make/Main.gmk:157: recipe for target 'java.base-copy'
              failed<br>
              make/Main.gmk:157: recipe for target 'java.desktop-copy'
              failed<br>
              === End of repeated output ===<br>
              <br>
              HELP: Try searching the build log for the name of the
              first failed target.<br>
              HELP: Run 'make doctor' to diagnose build problems.<br>
              <br>
              /home/lgx/source/java/jdk-vscode/make/Init.gmk:310: recipe
              for target 'main' failed<br>
              make[1]: *** [main] Error 2<br>
              /home/lgx/source/java/jdk-vscode/make/Init.gmk:186: recipe
              for target 'images' failed<br>
              make: *** [images] Error 2<br>
            </div>
            <div>```</div>
            <div><br>
            </div>
            <div>Best Regards,</div>
            <div>-- Guoxiong</div>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>