您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jvm java java虚拟机