Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

M1 Mac (Apple Silicon) 版OpenJDKがビルドできるようになりました

タイトルがすべてという感じもしますが、プルリクエストがマージされ、M1 Mac (Apple Silicon) 向けのOpenJDKをビルドできるようになりました。

github.com

M1 Mac版OpenJDKは、aarch64-portというメインラインと別のリポジトリで途中まで進行していました。AArch64はARM64のことであり、M1 Macに搭載されているARMベースのApple Siliconもその1つです(なんかこんがらがる)。

この投稿での話題は「M1 MacにOpenJDKをインストールして使う」ことではなく、「OpenJDKをM1 Mac向けにビルドして使う」ということです。

JDKをM1 Macにインストールして使うだけであれば、ビルドせずともたとえばAzul社がOpenJDKベースのZulu CommunityのM1 Mac向けバイナリを公開していますのでそういったものを使用するほうがよいでしょう。

https://jp.azul.com/downloads/zulu-community/?os=macos&architecture=arm-64-bit&package=jdk

私もM1のMac miniを購入しています。新しいMacだからほしかったというよりも、新しいプラットフォームなのでOpenJDKへのパッチを書く機会を増やせるかなという思いからでした。

ビルド自体はすんなりできました。ブートJDKは手元にあったZuluを使いました。

$ bash configure --with-boot-jdk=~/zulu15.28.1013-ca-jdk15.0.1-macosx_aarch64/zulu-15.jdk/Contents/Home/ --enable-debug --disable-warnings-as-errors
$ make images
$ build/macosx-aarch64-server-fastdebug/jdk/bin/java -version                                           
openjdk version "17-internal" 2021-09-14                                                                                                   
OpenJDK Runtime Environment (fastdebug build 17-internal+0-adhoc.jyukutyo.jdk)                                                             
OpenJDK 64-Bit Server VM (fastdebug build 17-internal+0-adhoc.jyukutyo.jdk, mixed mode) 

$ jdk/build/macosx-aarch64-server-fastdebug/jdk/bin/javac Hello.java
$ jdk/build/macosx-aarch64-server-fastdebug/jdk/bin/java Hello                                                     
Hello, World!

ただし、まだJavaNativeFoundation framework(JNF)への依存が残っています。後続のプルリクエストでこの依存を取り除く対応が進む見込みです。