【javac添加python 列表特性1】Ubuntu12.04下編譯OpenJDK7的一些問...

剛開始選擇在windows的Cygwin下編譯,結果問題連連,兩天都搞不定。。只有換到Ubuntu下面。。記錄一下 html

不過12.04的Ubuntu使用的是3.2的內核,而openJDK的hotspot的Makefile裏面支持的內核沒這麼高,因此會遇到一些問題。因此我的建議仍是用9或者10的ubuntu版本。。 java

編譯的過程不復雜:下載源代碼。 按照README-builds.html裏面ubuntu或者linux的步驟作就能夠了。README-builds.html雖然不少,可是必定要看 了後,纔可能成功編譯。。 linux

如今只列一下遇到的問題: ubuntu

1.剛開始會有不少的庫沒有,make sanity都過不了,按提示下載便可 windows

2.缺乏drops文件(need access to drops.)。 ui

應該設置ALT_DROPS_DIR指向drops目錄。所謂的drops目錄就是包含了JAXP和JAX-WS源代碼的目錄。默認不包含在openJDK源代碼中。能夠手動去http://download.java.net/openjdk/jdk7/下載。 spa

另外,這個問題也能夠不設置drops目錄,而在編譯是,使用: .net

             make ALLOW_DOWNLOADS=true orm

這樣編譯的時候,ant會自動去下載的 htm

3. OS Version is not supported

由於3.2的內核不支持。這個問題能夠引用網上的解答,修改hotspot/make/linux/Makefile,把3.2的內核加入到支持列表中便可:

http://mail.openjdk.java.net/pipermail/porters-dev/2011-October/000367.html

4.__LEAF redefined。因爲g++的高版本中,增長了對__LEAF的定義,而openJDK源代碼中也有__LEAF定義,因而重複。對於這個bug,有以下引用能夠修改:

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a6eef545f1a2

要修改6個文件(我不會用hg,因此直接就把這6個文件用正確的替換掉了)

5.undefined reference to `snd_pcm_format_mask_malloc'(不少undefined reference to `snd_****`)

這貌似也是一個bug,連接的順序不對,能夠引用的方法:

http://sunnycomputerlab.com/roller/sunny/entry/openjdk_compile_problem_on_ubuntu

把lasound加入到extra_libs裏面去便可

6.另外,若是找不到shape.h,能夠安裝libxtst-dev,libxrender-dev, 還可能要更新freetype的版本,下載他的dev版本等等。。。 挺多麻煩事,不過還好,幾個小時事後仍是編譯出來了,興奮啊。。

相關文章
相關標籤/搜索