Java Day Tokyo 2016に出たところ、hsdisをもうProject Kenaiからダウンロードしてはいけない、古いビルドだから新しいCPUに対応していないということを聞きました。 そのため、帰宅してすぐビルドしました。簡単でした。
まずhsdisディレクトリに移動します。
$ cd jdkd9-b81/hotspot/src/share/tools/hsdis
binutilsをダウンロードします。 http://ftp.gnu.org/gnu/binutils/で最新のバージョン番号を調べてからwgetします。
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.gz jdk1.8.0_65 ruby-2.0.0 --2016-05-25 15:26:52-- http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.gz Connecting to 10.5.81.33:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 34832117 (33M) [application/x-gzip] Saving to: 'binutils-2.26.tar.gz' binutils-2.26.tar.gz 100%[==========================================================================================================================================>] 33.22M 256KB/s in 2m 35s 2016-05-25 15:29:28 (219 KB/s) - 'binutils-2.26.tar.gz' saved [34832117/34832117]
binutilsを解凍します。
$ tar xzf binutils-2.26.tar.gz $ sed -ri 's/development=.*/development=false/' ./binutils-2.26/bfd/development.sh # set development to false
Ubuntuでは、以下のインストールが必要です。
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev g++-multilib mercurial texinfo
makeします。
$ make BINUTILS=binutils-2.26 ARCH=amd64 [ -d build/macosx-amd64 ] || mkdir -p build/macosx-amd64 ... hsdis.c:137:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ hsdis.c:207:11: warning: enumeration value 'dis_noninsn' not handled in switch [-Wswitch] switch (itype) { ^ 2 warnings generated.
2つ警告は出ましたが、makeできました。
$ ls -lat build/macosx-amd64/ total 4152 drwxr-xr-x 12 jyukutyo staff 408 5 25 15:34 . -rwxr-xr-x 1 jyukutyo staff 1676824 5 25 15:34 hsdis-amd64.dylib drwxr-xr-x 29 jyukutyo staff 986 5 25 15:34 opcodes drwxr-xr-x 107 jyukutyo staff 3638 5 25 15:34 bfd drwxr-xr-x 23 jyukutyo staff 782 5 25 15:34 zlib drwxr-xr-x 79 jyukutyo staff 2686 5 25 15:33 libiberty drwxr-xr-x 8 jyukutyo staff 272 5 25 15:33 intl -rw-r--r-- 1 jyukutyo staff 381609 5 25 15:33 Makefile -rw-r--r-- 1 jyukutyo staff 23885 5 25 15:33 config.log -rwxr-xr-x 1 jyukutyo staff 31257 5 25 15:32 config.status -rw-r--r-- 1 jyukutyo staff 13 5 25 15:32 serdep.tmp drwxr-xr-x 3 jyukutyo staff 102 5 25 15:32 ..
このhsdis-amd64.dylibをJava 8までなら$JAVA_HOME/jre/lib/amd64
に、Java 9以降なら$JAVA_HOME/lib
に配置します。