Mac编译openJdk1.8
环境及准备
本机mac环境为 macOS Catalina 10.15.4
编译器: XCode12, xcode11也能用, 没有安装xcode去官网下载, 各个版本官方下载地址: https://developer.apple.com/download/all/?q=xcode . 其中Xcode12下载地址: https://download.developer.apple.com/Developer_Tools/Xcode_12/Xcode_12.xip
jdk1.7作为Boot JDK 官网下载mac压缩包版即可, 在官网中下载mac班1.7jdk并安装. 地址: https://www.oracle.com/cn/java/technologies/oracle-java-archive-downloads.html, 我安装的是jdk1.7.0_80
环境准备
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
brew install freetype
brew install autoconf
brew install ccache
brew install llvm
brew install binutils
pip3 install compiledb
下载jdk源码
## 下载Mercurial仓库,因为jdk源码使用Mercurial仓库进行管理
brew install Mercurial
## 下载源码
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev
cd jdk8u-dev
sh get_source.sh
## 执行完后等待源码下载完毕
vim hotspot/make/bsd/makefiles/gcc.make
## 将以下内容注释掉
# ifneq ($(COMPILER_WARNINGS_FATAL),false)
# WARNINGS_ARE_ERRORS = -Werror
# endif
configure
chmod 777 configure
## 编译release版本
./configure --with-freetype-include=/usr/local/include/freetype2 --with-freetype-lib=/usr/local/lib/
## 编译XCode可断点调试slow-debug版本
./configure --with-debug-level=slowdebug --with-freetype-include=/usr/local/include/freetype2 --with-freetype-lib=/usr/local/lib --with-boot-jdk=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home --enable-debug-symbols ZIP_DEBUGINFO_FILES=0 OBJCOPY=gobjcopy
configure成功后显示信息
A new configuration has been successfully created in
/Users/aa/Downloads/jdk源码/jdk8/jdk8u-dev/build/macosx-x86_64-normal-server-slowdebug
using configure arguments '--with-debug-level=slowdebug --with-freetype-include=/usr/local/include/freetype2 --with-freetype-lib=/usr/local/lib --with-boot-jdk=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home --enable-debug-symbols ZIP_DEBUGINFO_FILES=0 OBJCOPY=gobjcopy'.
Configuration summary:
* Debug level: slowdebug
* JDK variant: normal
* JVM variants: server
* OpenJDK target: OS: macosx, CPU architecture: x86, address length: 64
Tools summary:
* Boot JDK: java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) (at /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home)
* Toolchain: clang (clang/LLVM)
* C Compiler: Version 12.0.0 (at /usr/bin/clang)
* C++ Compiler: Version 12.0.0 (at /usr/bin/clang++)
Build performance summary:
* Cores to use: 4
* Memory limit: 32768 MB
编译
make all
# 或
make all JOBS=8 ZIP_DEBUGINFO_FILES=0 COMPILER_WARNINGS_FATAL=false CC=clang USE_CLANG=true LP64=1
# 生成一个json文件方便将整个项目导入到Clion中
compiledb make WARNINGS_ARE_ERRORS="" images
问题参考
在具体安装过程中出现了不少错误, 可以参考如下博客:
https://blog.csdn.net/lizhengjava/article/details/105629780
https://www.cnblogs.com/dwtfukgv/p/14727290.html
导入Clion进行单步调试
参考 https://www.cnblogs.com/dwtfukgv/p/14727290.html