1

仕事用に古いバージョンの JDK をビルドしようとしていますが、実行中に障害が発生しましたmake dev-sanity。さて、いくつかの障害がありましたが、これを除いてすべて回避できました。具体的には、次のソース JAR から JDK 1.6u17 の 64 ビット バージョンをビルドしようとしています。

TL;DR : ソースから JDK6u17 をビルドしていますが、dev-sanityターゲットでエラーが発生していmakeます。ビルドの readme にすべてのソフトウェアとそのバージョンが記載されているので、環境変数の問題だと思います。

ソフトウェア バージョン情報

  • Windows 7、amd64 プロセッサ
  • cl.exeバージョンは14.00.50727.762
  • link.exeバージョンは8.00.50727.762
  • Java ブートストラップは JDK 1.7u15 です
  • msvcrt.dllバージョンは7.0.7601.17744
  • Cygwin が現在のバージョンです
  • make3.80-1DOS パスをサポートするGNU make バージョン の Cygwin ビルドです。また、公式リポジトリからバージョン 3.81 と 3.82 を試しましたが、これらは DOS パスをサポートしていないため機能しません。また、DOS パスをサポートする 3.81 と 3.82 バージョンにパッチを適用しましたが、どちらも同じ誤った出力を出しました。 3.80として。

環境変数

  • PATH- コンパイラ ツール、ブートストラップ JDK、Cygwin の UNIX ツール、そして既にパス上にあるその他すべてをこの順序で含めます。
  • LIBSetEnv.cmd /X64- Microsoft SDK のBinフォルダーを使用してユーザー環境変数として設定し、値を取得します
  • INCLUDESetEnv.cmd /X64- Microsoft SDK のBinフォルダーを使用してユーザー環境変数として設定し、値を取得します
  • ALT_COMPILER_PATH- に設定C:\PROGRA~1\MICROS~2\Windows\v6.0\VC\Bin\x64\(スペースの問題を回避するためにショートパスを使用)
  • ALT_BOOTDIR- C:\PROGRA~1\Java\JDK17~1.0_1\(JDK 7 パス)
  • ALT_MSVCRT_DLL_PATH- C:\Windows\System32\(msvcrt.dll ファイルは System32 フォルダーにあります)
  • ALT_DXSDK_PATH- のショートパスに設定するだけDXSDK_DIR

Cygwin を開いて、次を使用して make プロセスを開始できます。

make dev-sanity ARCH_DATA_MODEL=64 ARCH=amd64

しかし、次の出力でエラーになります。

$ cd [jdk-src-root]/control/make
$ make dev-sanity ARCH_DATA_MODEL=64 ARCH=amd64
cd  ../../control/make
make sanity DEV_ONLY=true
make[1]: Entering directory `/cygdrive/c/Users/bsaltz/jdk6u17src/control/make'
make[2]: Entering directory `/cygdrive/c/Users/bsaltz/jdk6u17src/deploy/make'
../make/common/Defs.gmk:52: /make/common/Defs.gmk: No such file or directory
make[2]: -p: Command not found
make[2]: -p: Command not found
../make/common/Defs-windows.gmk:9: /make/common/Defs-windows.gmk: No such file or directory
../../j2se/make/common/Defs-windows.gmk:16: /Defs.gmk: No such file or directory
/bin/sh: - : invalid option
Usage:  /bin/sh [GNU long option] [option] ...
        /bin/sh [GNU long option] [option] script-file ...
        [ ... More /bin/sh usage output ]
/bin/sh: - : invalid option
Usage:  /bin/sh [GNU long option] [option] ...
        /bin/sh [GNU long option] [option] script-file ...
        [ ... More /bin/sh usage output ]
/bin/sh: #define: command not found
/bin/sh: {print $3}: command not found
/bin/sh: -n: command not found
/bin/sh: - : invalid option
/bin/sh: - : invalid option
/bin/sh: -n: command not found
../../j2se/make/common/shared/Sanity.gmk:97: /Sanity-Settings.gmk: No such file or directory
make[2]: -p: Command not found
make[2]: *** No rule to make target `/Sanity-Settings.gmk'.  Stop.
make[2]: Leaving directory `/cygdrive/c/Users/bsaltz/jdk6u17src/deploy/make'
make[1]: *** [deploy-sanity] Error 2
make[1]: Leaving directory `/cygdrive/c/Users/bsaltz/jdk6u17src/control/make'
make: *** [dev-sanity] Error 2

私が理解できることから、コマンドが適切に実行されていないように見えるため、環境変数がどこかに不良または欠落しているように見えます。おそらくいくつかの変数が解決されていません。

ローカル変数でデバッグ jar を取得するためにこれを行っていることに注意してください。6u17 では fastdebug jar は使用できなくなったようです。誰かが 6u17 fastdebug リンクを持っていれば、何もコンパイルする必要がないという意味であれば、私もそれを受け取ります。

出力が必要な場合-dはお知らせください。ペーストビンなどに貼り付けます。

4

0 に答える 0