天天看點

編繹OpenJDK

因為對于java裡的vtable,itable,有個地方還沒搞明白,不得已去下個openjdk來研究下。

本來很不願意去編繹openjdk,因為很有可能做的隻是無用功,還有可能要去解決各種找不到連結庫的問題。

不過,沒想到雖然有些麻煩,但是出人意料的順利。

環境:ubuntu 13.10,已經安裝了oracle jdk7。

首先下載下傳:

再用unzip解壓。

在解壓後的檔案夾裡,可以發現有一個“readme-builds.html”的檔案,這個就是編繹的說明了。

或者在網上也有:

http://hg.openjdk.java.net/jdk7/build/raw-file/tip/readme-builds.html#ubuntu

裡面雖然關于ubuntu的最後是9.04版本,不過可以對照着畫葫蘆:

安裝依賴相關的包:

因為我已經安裝了oracle jdk,是以就沒有再安裝openjdk7了,事實證明,不用安裝openjdk7也可以。

據readme裡的說明,先用下面的指令來檢查下:

如果提示下面的錯誤:

則先執行:

如果提示java_home已經設定了:

則用unset取消:

還要設定下這個環境變量:

最後,可以用make all來編繹了。不過編繹一次太慢了。還有下面的這些編繹選項,在makefile裡可以看到:

可以考慮用make fastdebug_build來快速編繹。

最後生成的檔案當然在build檔案夾下了。

對于debug版,可以用下面的指令來檢視編繹出來的java示持哪些jvm的配置項:

如果是非debug,則可以使用下面的指令來輸出可用的jvm配置項: