【javac添加python 列表特性1】Ubuntu12.04下编译OpenJDK7的一些问...

試著忘記壹切 提交于 2019-12-02 00:09:02

刚开始选择在windows的Cygwin下编译,结果问题连连,两天都搞不定。。只有换到Ubuntu下面。。记录一下

不过12.04的Ubuntu使用的是3.2的内核,而openJDK的hotspot的Makefile里面支持的内核没这么高,所以会遇到一些问题。所以个人建议还是用9或者10的ubuntu版本。。

编译的过程不复杂:下载源代码。 按照README-builds.html里面ubuntu或者linux的步骤做就可以了。README-builds.html虽然很多,但是一定要看 了后,才可能成功编译。。

现在只列一下遇到的问题:

1.刚开始会有很多的库没有,make sanity都过不了,按提示下载即可

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

应该设置ALT_DROPS_DIR指向drops目录。所谓的drops目录就是包含了JAXP和JAX-WS源代码的目录。默认不包含在openJDK源代码中。可以手动去http://download.java.net/openjdk/jdk7/下载。

另外,这个问题也可以不设置drops目录,而在编译是,使用:

             make ALLOW_DOWNLOADS=true

这样编译的时候,ant会自动去下载的

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版本等等。。。
挺多麻烦事,不过还好,几个小时过后还是编译出来了,兴奋啊。。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!