windows下编译openjdk(openj9)过程

泪湿孤枕 提交于 2019-12-03 20:38:49

请严格按照如下顺序和参数,有些很隐蔽的坑,没必要浪费时间自己去试

1.首先安装cygwin最新64位版本,运行时设置网易镜像,设置说明如下
http://mirrors.163.com/.help/cygwin.html
链接镜像后后安装包如下(在category模式下搜索并安装,以空格区别每一个包):
binutils make m4 cpio awk file zip unzip procps-ng diffutils curl wget
同时必须安装Devel目录中所有包,时间会有点长

2.llvm 安装 64位 切记安装到 d:\LLVM 路径需要无空格
下载地址 http://releases.llvm.org/7.0.0/LLVM-7.0.0-win64.exe
cygwin 的.bashrc末尾增加如下

export PATH="/cygdrive/d/LLVM/bin:$PATH"

3.nasm 安装 切记安装到D:\NASM 路径需要无空格
下载地址 https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/win64/
cygwin 的.bashrc末尾增加如下

export PATH="/cygdrive/d/NASM:$PATH" 

3.Windows JDK 10
下载地址 https://cn.azul.com/downloads/zulu-community/?&architecture=x86-64-bit&package=jdk
我把jdk10安装在了D:\Java\jdk10目录下,对应的cygwin目录为/cygdrive/d/java/jdk10

4.在windows中创建C:\temp目录 然后在cygwin中执行

cd /cygdrive/c/temp
wget https://go.microsoft.com/fwlink/?LinkId=532495 -O vs2013.exe
chmod u+x vs2013.exe
./vs2013.exe


请注意路径VS2013我安装在D盘目录为D:\MVS 避免空格
安装完成后在cmd下执行以下命令

regsvr32 "D:\MVS\DIA SDK\bin\msdia120.dll"
regsvr32 "D:\MVS\DIA SDK\bin\amd64\msdia120.dll"


然后设置环境变量,建议不要使用cmd设置,直接设置保证使用固定的环境变量的值

set INCLUDE=C:\Program Files\Debugging Tools for Windows (x64)\sdk\inc;%INCLUDE%
set LIB=C:\Program Files\Debugging Tools for Windows (x64)\sdk\lib;%LIB%


5.在C:\temp目录
放入freemarker-2.3.8.tar.gz 请不要随便换版本 
下载地址 https://sourceforge.net/projects/freemarker/files/freemarker/2.3.8/freemarker-2.3.8.tar.gz/download
放入完毕后在cygwin中执行命令

cd /cygdrive/c/temp
tar zxvf freemarker-2.3.8.tar.gz  freemarker-2.3.8/lib/freemarker.jar --strip=2

6.在cygwin中使用git命令拉取代码
git安装必须注意要使用windows内的git,cygwin中不能安装git否则会出错,并且windows中的git安装目录不能带有空格
分别执行命令如下

git config --global http.sslVerify false          #关闭ssl校验
git config --global core.longpaths true           #避免文件名过长
git config --global core.autocrlf false           #提交检出均不转换CRLF和LF
git config --global core.safecrlf true            #拒绝提交包含混合换行符的文件
git config --global http.postBuffer 838860800   #增加post包的上限,避免curl文件过大的问题,这个数字需要微调,似乎和操作系统有关?
git clone https://github.com/ibmruntimes/openj9-openjdk-jdk11  #注意这套代码的分支必须保持在openj9 建议使用阿里云服务器clone代码


下载完成后,为了下载加速,还要修改文件,打开以下文件
closed\get_j9_source.sh
第56行改成
git_urls[openj9]=https://gitee.com/9199771/openj9
第59行改成
git_urls[omr]=https://gitee.com/9199771/openj9-omr
以上的修改可以使用自己的码云地址做好下载,需要花好几个小时需要耐心
继续执行命令

cd openj9-openjdk-jdk11
bash get_source.sh


9.开始编译openjdk
在cygwin中执行编译命令
先验证配置环境请注意/cygdrive/d/java/jdk10是我jdk10的目录

bash configure --disable-warnings-as-errors --with-freemarker-jar=/cygdrive/c/temp/freemarker.jar --with-boot-jdk=/cygdrive/d/java/jdk10 --with-toolchain-version=2013


如果没有报错,就可以执行编译

make all

成功截图留念!

本文为原创,禁止转载!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!