openJDK7 编译过程 ~ Mac OS X 环境
2015-08-30 01:12
597 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">openJDK7 编译过程 ~ Mac OS X 环境</span>
1. 准备工具
XCode, jdk
2. 下载地址
https://jdk7.java.net/source.html http://www.java.net/download/openjdk/jdk7u40/promoted/b43/openjdk-7u40-fcs-src-b43-26_aug_2013.zip
3. 编译设置和选项
编译前的设置可参考《深入Java虚拟机-JVM高级特性与最佳实践》第一章
注释掉openjdk/hotspot/make/bsd/makefiles/gcc.make 上的以下内容
### CFLAGS += -fcheck-new ### Flags for generating make dependency flags. ### ifneq ("${CC_VER_MAJOR}", "2") ### DEPFLAGS = -fpch-deps -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d) ### endif
我用到的编译选项:make COMPILER_WARNINGS_FATAL=false
4. 编译出错处理
~ test_gamma 可注释pass掉,不然编译会出错
~ (安装X11)sudo ln -s /usr/X11/include/X11 /usr/include/X11
~ 不支持fobjc-gc,用xcode打开openjdk/jdk/src/macosx/native/jobjc/JObjC.xcodeproj,去掉GCC_ENABLE_OBJC_GC的support
~ 代码的修改,有返回值的函数里面return没有返回值;还有是code修改过,只能通过出错的关键字baidu上搜索出(openjdk/hotspot/src/share/vm/code/relocInfo.hpp)
~ AppKitFramework.java,这是一个生成的java类,
可修改 openjdk/jdk/src/macosx/native/jobjc/src/generator/java/com/apple/internal/jobjc/generator/FrameworkClassFile.java
for(final NativeEnum nenum : framework.enums) { ... }
5. 编译成功
######################################################################## ##### Leaving jdk for target(s) sanity all docs images ##### ######################################################################## ##### Build time 00:06:12 jdk for target(s) sanity all docs images ##### ######################################################################## #-- Build times ---------- Target all_product_build Start 2015-08-29 23:15:45 End 2015-08-29 23:22:13 00:00:07 corba 00:00:03 hotspot 00:00:01 jaxp 00:00:03 jaxws 00:06:12 jdk 00:00:01 langtools 00:06:28 TOTAL -------------------------
参考资料:
《深入Java虚拟机-JVM高级特性与最佳实践》作者:周志明
本书第一章有关于openjdk编译的一些设置参考
《如何用Mac完美编译OpenJDK 7》
http://blog.csdn.net/luonanqin/article/details/41449887 http://d.hatena.ne.jp/ytoshima/?of=4
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- Java 6 JVM参数选项大全(中文版)