编译openjdk1.7
来源:互联网 发布:公知什么意思 编辑:程序博客网 时间:2024/05/18 17:42
环境说明:
Ubuntu 16
jdk源码 1.7
jdk环境 1.7
编译步骤:
使用脚步进行编译,根据个人实际情况,自行修改
#!/bin/sh#语言选项,这个必须设置,否则编译好后会出现一个HashTable的NPE错export LANG=C#Bootstrap JDK的安装路径。必须设置export ALT_BOOTDIR=/environment/jdk1.7.0_79/#允许自动下载依赖export ALLOW_DOWNLOADS=true#并行编译的线程数,设置为和CPU内核数量一致即可export HOTSPOT_BUILD_JOBS=4export ALT_PARALLEL_COMPILE_JOBS=4#比较本次build出来的映像与先前版本的差异。这对我们来说没有意义,#必须设置为false,否则sanity检查会报缺少先前版本JDK的映像的错误提示。#如果已经设置dev或者DEV_ONLY=true,这个不显式设置也行export SKIP_COMPARE_IMAGES=true#使用预编译头文件,不加这个编译会更慢一些export USE_PRECOMPILED_HEADER=true#要编译的内容export BUILD_LANGTOOLS=true#export BUILD_JAXP=false#export BUILD_JAXWS=false#export BUILD_CORBA=falseexport BUILD_HOTSPOT=trueexport BUILD_JDK=true#要编译的版本#export SKIP_DEBUG_BUILD=false#export SKIP_FASTDEBUG_BUILD=true#export DEBUG_NAME=debug#把它设置为false可以避开javaws和浏览器Java插件之类的部分的buildBUILD_DEPLOY=false#把它设置为false就不会build出安装包。因为安装包里有些奇怪的依赖,#但即便不build出它也已经能得到完整的JDK映像,所以还是别build它好了BUILD_INSTALL=false#编译结果所存放的路径export ALT_OUTPUTDIR=/environment/zwj/Develop/JVM/jdkBuild/openjdk_7u4/build#这两个环境变量必须去掉,不然会有很诡异的事情发生(我没有具体查过这些"诡异的#事情",Makefile脚本检查到有这2个变量就会提示警告)unset JAVA_HOMEunset CLASSPATHDEBUG_BINARIES=true make 2>&1|tee $ALT_OUTPUTDIR/build.log将此脚步放置于openjdk源码根目录下,添加可执行权限之后执行(Ubuntu下记得用sudo),如果运气好的话有可能一次就能成功编译,但是事实上你不可能那么幸运。以下是笔者编译时遇到的一些坑:
提示缺少cups解决方案:sudo apt-get install libcups2-dev
interfaceSupport.hpp:430:0: error: "__LEAF" redefined [-Werror] #define __LEAF(result_type, header) /usr/include/x86_64-linux-gnu/sys/cdefs.h:42:0: note: this is the location of the previous definition # define __LEAF , __leaf__在interfaceSupport.hpp增加#ifdef __LEAF#undef __LEAF#define __LEAF(result_type, header) \ TRACE_CALL(result_type, header) \ debug_only(NoHandleMark __hm;) \ /* begin of body */#endif
/openjdk/hotspot/src/share/vm/oops/constantPoolOop.cpp:272:39: error: converting 'false' to pointer type 'methodOop' 修改/openjdk/hotspot/src/share/vm/oops/constantPoolOop.cpp 第272行 return false改为return (methodOop)false; 或者 return NULL;
openjdk/hotspot/src/share/vm/opto/loopnode.cpp:896:50: error: converting 'false' to pointer type 'Node*修改openjdk/hotspot/src/share/vm/opto/loopnode.cpp: 第896行 return false改为return (Node*)false; 或者 return NULL;
gcc: error: unrecognized command line option '-mimpure-text'gcc版本问题,这个命令在本机所用的4.7.2版的gcc中已经去除,既然不能降低gcc版本(本机ubuntu12.10内核用4.7.2版gcc编译),那就在openjdk/jdk/make/common/shared/Compiler-gcc.gmk 中去掉-mimpure-text命令
fatal error: X11/Intrinsic.h: No such file or directorysudo apt-get install libxt-dev
/openjdk_7u4/build/tmp/sun/sun.awt.X11/xawt/obj64/XToolkit.o] Error 1sudo apt-get install libxtst-dev
缺少libjsoundalsa.so到编译后存放的目录/environment/zwj/Develop/JVM/jdkBuild/openjdk_7u4/build/lib/amd64中复制libjsound.so 命名为 libjsoundalsa.so
0 0
- 编译openjdk1.7
- mac下编译openjdk1.7经验
- centos7编译openjdk1.7过程及报错解决
- 1.编译openjdk1.8源码
- 如何安装openjdk1.7
- Ububtu16.04 安装openjdk1.7
- Ununtu12.04 安装openJdk1.7
- CentOS openJdk1.7升级1.8
- Ubuntu14.04下安装配置openJDK1.7
- Ubuntu环境下手动编译OpenJDK1.6源码
- Ubuntu16.04安装JDK1.7和OpenJDK1.7
- JVM(一) OpenJDK1.8源码在Ubuntu16.04下的编译
- 安装OpenJDK1.8
- 安装OpenJDK1.8
- ubuntu14.04安装OpenJDK1.8
- Ubuntu下安装最新OpenJdk1.8
- Ubuntu下安装最新OpenJdk1.8
- rhel6.5安装OpenJDK1.7.0 + JBoss7.1.1 + maven3.0.4
- R中ifelse、which、%in%的用法
- 顺序表应用1:多余元素删除之移位算法
- cardview的使用
- 147. Insertion Sort List
- hadoop分布式安装
- 编译openjdk1.7
- flex-wrap
- 顺序表应用2:多余元素删除之建表算法
- 第二章——深入了解超文本
- 享元模式(结构型)
- 高通 MSM8K bootloader 之二: SBL1
- JUnit4 简介
- 数据结构之停车管理系统问题
- Java设计登录界面