【JDK编译】Mac OS编译OpenJDK8

来源:互联网 发布:神舟游戏本 蓝天 知乎 编辑:程序博客网 时间:2024/05/16 10:55

在Centos上编译过OPENJDK7后,现在试着在MAC系统编译一下OPENJDK,由于OPENJDK7在MAC上编译设置太多,所以直接选择OPENJDK8进行编译,编译步骤如下:

1.安装brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1.1.解决githubtoken问题

export HOMEBREW_GITHUB_API_TOKEN="1bbccff6adaac768fb4fbf5d78270379986177d5"

参考:http://www.cnblogs.com/phoenix-fec/p/5286695.html

1.2.安装freetypellvm不知道后面是否有用,因为前面已安装过xcode8

brew search llvm

brew install llvm

brew search freetype

brew install freetyp


2.手动直接安装freetype,安装目录在/usr/local

./configuration

make

make install

后面编译时找不到freetype需加上以下参数: --with-freetype-include=/usr/local/include/freetype2 --with-freetype-lib=/usr/local/lib/ 

http://mail.openjdk.java.net/pipermail/build-dev/2014-October/013491.html

3.以前安装过xcodecommand line 不是是否有用

4.下载jdk7并安装

5.安装XQuartz

6.链拉sudo ln -s /usr/X11/include/X11 /usr/include/X11

链拉时出现问题Operation not permitted 

解决:将其修改为/usr/local

参考:https://segmentfault.com/q/1010000003958979

7.准备环境参数


设定语言选项,必须设置

export LANG=C

# Mac平台,C编译器不再是GCC,是clang

export CC=clang

跳过clang的一些严格的语法检查,不然会将N多的警告作为Error

export COMPILER_WARNINGS_FATAL=false

链接时使用的参数

export LFLAGS='-Xlinker -lstdc++'

是否使用clang

export USE_CLANG=true

使用64位数据模型

export LP64=1

告诉编译平台是64位,不然会按32位来编译

export ARCH_DATA_MODEL=64

允许自动下载依赖

export ALLOW_DOWNLOADS=true

并行编译的线程数,编译时间长,为了不影响其他工作,我选择为2

export HOTSPOT_BUILD_JOBS=2

export ALT_PARALLEL_COMPILE_JOBS=2

是否跳过与先前版本的比较

export SKIP_COMPARE_IMAGES=true

是否使用预编译头文件,加快编译速度

export USE_PRECOMPILED_HEADER=true

是否使用增量编译

export INCREMENTAL_BUILD=true

编译内容

export BUILD_LANGTOOLS=true

export BUILD_JAXP=true

export BUILD_JAXWS=true

export BUILD_CORBA=true

export BUILD_HOTSPOT=true

export BUILD_JDK=true

编译版本

export SKIP_DEBUG_BUILD=false

export SKIP_FASTDEBUG_BUILD=false

export DEBUG_NAME=debug

避开javaws和浏览器Java插件之类的部分的build

export BUILD_DEPLOY=false

export BUILD_INSTALL=false

# FreeType

export FREETYPE_LIB_PATH=/usr/X11R6/lib

export FREETYPE_HEADERS_PATH=/usr/X11R6/include

export ALT_FREETYPE_LIB_PATH=/usr/local/Cellar/freetype/2.7.1/lib

export ALT_FREETYPE_HEADERS_PATH=/usr/local/Cellar/freetype/2.7.1/include

目标编译版本信息

export MILESTONE=internal

export BUILD_NUMBER=b25

指定bootstrap jdk的路径。反引号的意思是执行这段shell代码后得到的结果作为该环境变量的值

export ALT_BOOTDIR=/Users/lizheng/Downloads/jdk7

编译结果的输出路径

# export ALT_OUTPUTDIR=/Users/zhongmingmao/Documents/source_code/java/openjdk/openjdk7/openjdk/build

# ANT

# export ANT_HOME=/Users/zhongmingmao/Downloads/apache-ant-1.9.7

取消环境变量的设置,减少警告

unset JAVA_HOME

unset CLASSPATH

unset LD_LIBRARY_PATH


8.开始安装

sh configure --with-debug-level=slowdebug --with-boot-jdk=`/usr/libexec/java_home -v 1.7` --with-freetype-include=/usr/local/include/freetype2 --with-freetype-lib=/usr/local/lib/ --with-target-bits=64 --with-jvm-variants=server --with-jdk-variant=normal --with-milestone=internal --with-update-version=b25 --with-build-number=b25 --with-zlib=system --with-num-cores=2 --with-jobs=4 CC=clang CXX=clang++


make all COMPILER_WARNINGS_FATAL=false LFLAGS='-Xlinker -lstdc++' CC=clang USE_CLANG=true LP64=1


http://zhongmingmao.me/2016/07/13/openjdk.html?utm_source=tuicool&utm_medium=referral

9.安装中出现的问题及解决

9.1.relocInfo.hpp报错

http://blog.csdn.net/j754379117/article/details/53695426第五条解决


0 1