jvm学习1
JVM 学习1 —> 编译openjdk源码
环境
mac 13.4.1
xcode 14.3.1–appstore
BootJDK openjdk17
CLang 14.0.3
CLang++ 14.0.3
make 3.8.1
freetype-config 26.0.20
ccahe 4.8.2
autoconf 2.7.1
固化配置
1 | ./configure --with-target-bits=64 --with-freetype=bundled --enable-ccache --with-jvm-variants=server --disable-warnings-as-errors --with-debug-level=slowdebug --with-extra-cflags="-mstack-alignment=16 -DMAC_OS_X_VERSION_MIN_REQUIRED=110000 |
固化配置遇到的问题
1. 软连接问题
报错: /opt/homebrew/opt/ccache/libexec/clang is a symbolic link to ccache. This is not supported.
解决:
1 | mv /opt/homebrew/opt/ccache/libexec/clang /opt/homebrew/opt/ccache/libexec/clang_backup |
BootJDK jar包缺失
报错:找不到 tools.jar 和 dt.jar
解决:
openjdk9以及以上版本删除了jdk中的tools.jar和dt.jar
这两个jar包主要是编译jdk依赖时使用,在openjdk9以及以上版本中被移除,可以从jdk8中找到两个jar包
clang 编译报错
报错:’-mstack-alignment=16-DMAC_OS_X_VERSION_MIN_REQUIRED=110000’
解决:在编译时加入–with-extra-cflags 参数
1
./configure -with-extra-cflags="-mstack-alignment=16 -DMAC_OS_X_VERSION_MIN_REQUIRED=110000"
编译
1 | make clean && make all |
结果
命令:
1 | ./build/macosx-aarch64-server-slowdebug/jdk/bin/java -version |
查询结果:
1 | openjdk version "17-internal" 2021-09-14 |