Ubuntu kylin 14.04編譯OpenJDK

        中秋節前後的一段時間,我草草的研究了一下hotspot的源碼,對JVM有了一點點了解。當時也翻了翻《HotSpot實戰》,不過可惜的是一直沒有動手編譯調試過HotSpot,實在是汗顏。前幾天虛擬機上裝了個Ubuntu kylin,又覺得應該再嘗試編譯一下OpenJDK。然後就開始了蛋疼的過程,昨天晚上終於編譯成功了,這裏記錄一下自己遇到的坑。

        網上有人說32位的不好裝,但是機器是32的也沒有什麼辦法。首先可能是編譯環境的問題了,我的源碼是openjdk-7u40-fcs-src-b43-26_aug_2013.zip。JDK版本是1.6.0_45,這裏必須強調一下我開始用的JDK1.7的最後一個版本,編譯失敗了。然後改了JDK1.6編譯就成功了。ant的版本是apache-ant-1.9.4。

        編譯腳本我是參照網上弄得,基本都差不多。然後編譯時發現,編譯失敗的問題總是出現在HotSpot上,根據java.net上一個人的blog上說的,這個問題主要是gcc的毛病。OpenJDK的開發者使用的是gcc-3.*.*,而我這上邊已經是gcc-4.8.2了。問題的解決辦法就是把*/hotspot/make/makefiles/gcc.make中有“werror”的一行註釋掉。因爲我前面已經成功的編譯出了JDK的其他構件,這次重新編譯我就單獨編譯了HotSpot。

#!/bin/bash
export LANG=C 
ALT_BOOTDIR=/usr/lib/jvm/java-6-oracle 

export USE_PRECOMPILED_HEADER=ture

export HOTSPOT_BUILD_JOBS=5

export ALT_JDK_IMPORT_PATH=../../build/hotspot_debug 

unset CLASSPATH
unset JAVA_HOME
#make sanity
make jvmg jvmg1 2>&1 | tee ../../build/hotspot_debug.log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章