openJDK7 编译过程 ~ Mac OS X 环境

<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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值