test/make/TestMake.gmk: 编译时没有这样的文件或目录 jdk 12

test/make/TestMake.gmk: No such file or directory when compile the jdk 12

我试图在我自己的 MacBook Pro 2019 中使用英特尔芯片 (macOS Monterey 12.3.1) 编译 JDK 12(wget -c https://hg.openjdk.java.net/jdk/jdk12/archive/tip.tar.gz)。第一步我 运行 配置命令:

bash configure --with-boot-jdk='/Users/dolphin/.sdkman/candidates/java/11.0.10.hs-adpt' --with-debug-level=slowdebug --with-target-bits=64 --disable-warnings-as-errors --enable-dtrace --with-jvm-variants=server

输出如下所示:

checking if build directory is on local disk... yes
checking JVM features for JVM variant 'server'... "cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services shenandoahgc vm-structs"
configure: creating /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/configure-support/config.status
config.status: creating /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/spec.gmk
config.status: creating /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/bootcycle-spec.gmk
config.status: creating /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/buildjdk-spec.gmk
config.status: creating /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/compare.sh
config.status: creating /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/Makefile

====================================================
The existing configuration has been successfully updated in
/Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug
using configure arguments '--with-boot-jdk=/Users/dolphin/.sdkman/candidates/java/11.0.10.hs-adpt --with-debug-level=slowdebug --with-target-bits=64 --disable-warnings-as-errors --enable-dtrace --with-jvm-variants=server'.

Configuration summary:
* Debug level:    slowdebug
* HS debug level: debug
* JVM variants:   server
* JVM features:   server: 'cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services shenandoahgc vm-structs'
* OpenJDK target: OS: macosx, CPU architecture: x86, address length: 64
* Version string: 12-internal+0-adhoc.dolphin.jdk12-06222165c35f (12-internal)

Tools summary:
* Boot JDK:       openjdk version "11.0.10" 2021-01-19 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.10+9) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.10+9, mixed mode)  (at /Users/dolphin/.sdkman/candidates/java/11.0.10.hs-adpt)
* Toolchain:      clang (clang/LLVM from Xcode 13.2.1)
* C Compiler:     Version 13.0.0 (at /usr/bin/clang)
* C++ Compiler:   Version 13.0.0 (at /usr/bin/clang++)

Build performance summary:
* Cores to use:   12
* Memory limit:   16384 MB

没有错误输出。当我使用此命令构建项目时:

make CONF=macosx-x86_64-server-slowdebug compile-commands

显示如下错误:

$ make CONF=macosx-x86_64-server-slowdebug compile-commands                                                                                                                                   ‹ruby-2.7.2›
make[1]: /Users/dolphin/source/third-party/jdk12-06222165c35f/test/make/TestMake.gmk: No such file or directory
make[1]: *** No rule to make target `/Users/dolphin/source/third-party/jdk12-06222165c35f/test/make/TestMake.gmk'.  Stop.
/usr/local/bin/bash: line 1: /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/make-support/main-targets.gmk: No such file or directory
make[1]: *** [create-main-targets-include] Error 1
make: *** No rule to make target `compile-commands'.  Stop.

我也试过:

$ make CONF=macosx-x86_64-server-slowdebug                                                                                                                                                    ‹ruby-2.7.2›
make[1]: /Users/dolphin/source/third-party/jdk12-06222165c35f/test/make/TestMake.gmk: No such file or directory
make[1]: *** No rule to make target `/Users/dolphin/source/third-party/jdk12-06222165c35f/test/make/TestMake.gmk'.  Stop.
/usr/local/bin/bash: line 1: /Users/dolphin/source/third-party/jdk12-06222165c35f/build/macosx-x86_64-server-slowdebug/make-support/main-targets.gmk: No such file or directory
make[1]: *** [create-main-targets-include] Error 1
make: Nothing to be done for `default'.

我应该怎么做才能解决这个问题?

错误看起来可能是由于缺少规则:

make: *** No rule to make target `compile-commands'.  Stop.
make: Nothing to be done for `default'.

您要创建 jdk 的命令是:

make images

输出将在build/<config>/images/jdk

你可以试试。


另一件要验证的事情是文件 test/make/TestMake.gmk 是否存在,我在 GitHub 上看到它:https://github.com/openjdk/jdk12u/tree/master/test/make 但也许 downloading/extracting 存档出了问题来自 hg.openjdk.java.net?