ITPub博客

首页 > > > [HotSpot VM] 单独构建OpenJDK8u的HotSpot VM的脚本

[HotSpot VM] 单独构建OpenJDK8u的HotSpot VM的脚本

作者:格伯纳 时间:2016-11-02 16:41:12 0 删除 编辑
时不时被问到这个问题,还是一并回答了吧。

假定从 hg.openjdk.java.net/jdk 签出了HotSpot VM的代码。那么在Mac OS X上,想单独build出HotSpot VM而不想build整个JDK8u的话,可以用我自用的这俩bash函数:

# HotSpot development on Mac
# Make just the HotSpot VM. Defaults to making a fastdebug variant.
makehs() {
        local JHOME
        JHOME=$JAVA_HOME
        local BNAME
        if [[ -n $1 ]]; then
                BNAME=$1;
        else
                BNAME='all_fastdebug' # 'fastdebug_build'
        fi
        # use an existing JDK7 for the buld
        JAVA_HOME='~/sdk/jdk7/Contents/Home'
        # HS_CLANG_OPTS="CC=clang COMPILER_WARNINGS_FATAL=false LFLAGS='-Xlinker -lstdc++' USE_CLANG=true"
        make -C make CC=clang COMPILER_WARNINGS_FATAL=false LFLAGS='-Xlinker -lstdc++' USE_CLANG=true LP64=1 LANG=C ALT_BOOTDIR=$JAVA_HOME ARCH_DATA_MODEL=64 HOTSPOT_BUILD_JOBS=8 $BNAME
        JAVA_HOME=$JHOME
}

# Export the HotSpot build to the specified export JDK
exporths_fastdebug() {
        EXPORT_JDK_PATH=~/sdk/jdk8u/Contents/Home/
        cp -r `pwd`/build/bsd/export-universal/fastdebug/* $EXPORT_JDK_PATH
}

(注意:makehs()里JAVA_HOME请配置为任何一个Oracle JDK7或OpenJDK7的JDK安装路径;exporths_fastdebug()里EXPORT_JDK_PATH请配置为目标JDK的路径。我是把这俩函数放在我的.bash_profile里的,各位同学想怎么用都行。)

这俩都是很偷懒的脚本,就不多解释了。

在签出的hotspot目录里执行makehs可以默认构建出fastdebug版的HotSpot VM,其build结果在hotspot目录里的build/bsd/export-universal/fastdebug目录下。

然后,准备好一个事先build好的JDK8u的完整安装(例如说拿一个现成的Oracle JDK8u装好),并且把EXPORT_JDK_PATH变量配置到该JDK8u的安装路径上,然后在刚才build的hotspot目录里执行exporths_fastdebug()就会把刚build好的内容拷贝到目标JDK8u里,覆盖掉其中原本的HotSpot VM(主要是libjvm.dylib)。

完事之后那个目标JDK8u里的HotSpot VM就被狸猫换太子,变成我们自己build的版本了。然后就可以尽情实验啦。

以前我在Linux上做HotSpot VM的开发的时候,用的脚本也是类似的。根据Linux和Mac OS X的特点稍微调整一下就好了。

最后放俩我老blog的传送门:

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
管理员

注册时间:2018-03-30

  • 博文量
    2383
  • 访问量
    983867