おねがい
この記事を参考にして実行に失敗した方は後学のためにコメントをいただけますと幸いです。
質問にもお答えできる限りお答えしますので是非コメントを残してください。
環境
OS : Ubuntu 22.04.3 LTS
前回のJTRegビルドの続きになります。
手順
1. Gtest資材ダウンロード
$ cd ~/work
$ git clone -b release-1.8.1 https://github.com/google/googletest
2. JDKのリビルド
$ cd ~/work/jdk17
$ bash configure --with-jtreg=$JT_HOME --with-gtest=/home/tabatad/work/googletest
$ make clean
$ make images
3. テスト実行
テストの起動に失敗した。
$ make run-test-tier1
~~~~~~~~~~略~~~~~~~~~~
/home/tabatad/work/jdk17/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c: In function 'set_signal_handler':
/home/tabatad/work/jdk17/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c:72:15: error: storage size of 'altstack' isn't constant
72 | static char altstack[SIGSTKSZ];
| ^~~~~~~~
gmake[3]: *** [test/JtregNativeHotspot.gmk:1525: /home/tabatad/work/jdk17/build/linux-x86_64-server-release/support/test/hotspot/jtreg/native/support/exeinvoke/exeinvoke.o] Error 1
gmake[3]: *** Waiting for unfinished jobs....
gmake[2]: *** [make/Main.gmk:612: build-test-hotspot-jtreg-native] Error 2
ERROR: Build failed for target 'run-test-tier1' in configuration 'linux-x86_64-server-release' (exit code 2)
~~~~~~~~~~略~~~~~~~~~~
4. バグ対応
今回の環境では上記のバグが発生しているようなのでFile changedを参考にソースを編集する。
編集対象のファイルはtest/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
。
5. JDKのリビルド(再)
$ cd ~/work/jdk17
$ bash configure --with-jtreg=$JT_HOME --with-gtest=/home/tabatad/work/googletest
$ make clean
$ make images
6. テスト実行(再)
$ make run-test-tier1
~~~~~~~~~~略~~~~~~~~~~
==============================
Test summary
==============================
TEST TOTAL PASS FAIL ERROR
jtreg:test/hotspot/jtreg:tier1 1757 1757 0 0
>> jtreg:test/jdk:tier1 2063 2062 1 0 <<
>> jtreg:test/langtools:tier1 4215 4204 6 5 <<
jtreg:test/jaxp:tier1 0 0 0 0
jtreg:test/lib-test:tier1 28 28 0 0
==============================
TEST FAILURE
参考
- OpenJDK jdk17 building.md