Ubuntu 14.04编译OpenJDK

= 336

本文出自:【InTheWorld的博客】 (欢迎留言、交流)

        中秋节前后的一段时间,我草草的研究了一下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

发表评论