Jdk&hotspot源码编译及调试
官方文档
/jdk-master/doc/building.html
Cygwin installer安装以下组件
Apart from the basic Cygwin installation, the following packages must also be installed:
v autoconf
v make
v zip
v Unzip
安装过程中报错几处,忽略。
Cygwin进入d盘命令
#cd d:
#cd /code/clion/jdk-master
Configure命令
bash ./configure -with-target-bits=64 --with-freetype="/cygdrive/D/freetype-2.7/" --with-tools-dir="/cygdrive/d/dev/MicrosoftVisualStudio/2022/Community/VC/Auxiliary/build" --disable-warnings-as-errors --with-debug-level=fastdebug --disable-ccache
注意,MicrosoftVisualStudio包含空格,windows kits亦然。
安装上一版本jdk
因为我是从github获取的最新jdk源码,所以按提示安装jdk19
Your Boot JDK version must be one of: 19 20 21
openjdk下载贼慢
OpenJDK JDK 19.0.2 GA Release
Oracle的好很多
Java Downloads | Oracle
https://www.oracle.com/java/technologies/downloads/#jdk19-windows
安装visual studio
Cannot locate a valid Visual Studio installation
安装的社区版,提示和当前win10版本可能不兼容,暂时忽略,以后有问题考虑升级win10


添加WindowsKit配置,不要空格


怀疑是sdk环境变量有问题,环境变量已修改,问题依旧。网上查看修改vs sdk路径的问题
安装VS2019时遇到SDK路径无法修改问题 - 江南水岸渣fit人 - 博客园
https://www.cnblogs.com/cquptyy/p/15405855.html
删除注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup下的SharedInstallationPath项。
我其实并不想重装,尝试修改注册表.......
顺便找到了这个,修改如下图
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots

仍然报错....
思路又断了......
顺着Microsoft.Cpp.WindowsSDK.targets的目录,找到了Microsoft.Cpp.WindowsSDK.props

备注:onfigure --with-debug-level=debug时使用fastdebug目录下的set-vs-env.sh,否则使用release目录下的。
此文件会自动复写,只能做错误分析用
此文件找到的方式是,在jdk源码下随便翻找、在visual studio目录下随意翻找,结合configure输出及日志、环境变量等信息。
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0
修改installationFolder路径

应该是此处,visual studio中新建的c++ hello world项目已经可以正常使用了。
这个过程中,还使用的“重定目标解决方案”,重启explorer.exe.

注意上图中的Microsoft.Cpp.WindowsSDK.targets给了我启发,后面会用到
重新configure
查看config.log如下


#set-vs-env.sh如下

索性搜索注册表中所有的D:\WindowsKits
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots

修改注册表后需要重启吗 修改注册表不用重启就能生效的方法
http://www.ttep.cn/jy/6989.html
Win10系统中Explorer.exe进程位置在哪 - 软件教程网
http://www.2832.com.cn/njBz02jV/
上一错误解决,出现下一错误,详见参考
(134条消息) 编译OpenJDK12:Target CPU mismatch. We are building for x8664 but CL is for ""; expected "x64"柳鲲鹏的博客-CSDN博客_target cpu mismatch. we are building for x86_64 bu
https://blog.csdn.net/quantum7/article/details/100008187


configure: error: Valid values for --with-freetype are 'system' and 'bundled'
解决方法:
删除--with-freetype="/cygdrive/D/freetype-2.7/"
修改后命令如下
bash ./configure -with-target-bits=64 --with-tools-dir="/cygdrive/d/dev/MicrosoftVisualStudio/2022/Community/VC/Auxiliary/build" --disable-warnings-as-errors --with-debug-level=fastdebug --disable-ccache
编译成功,但有warning

#make images
大概十分钟左右
进入目录:D:\code\clion\jdk-master\build\windows-x86_64-server-fastdebug\jdk\bin
查看编译的java版本

Clion debug jdk
问题:
断点堆栈一堆unkown,变量也没有,郁闷......
(134条消息) 通过CLion 调试JDK源码_蛤蟆脚的博客-CSDN博客_clion jdk
https://blog.csdn.net/qq_25825005/article/details/127163309
Tips & Tricks: Develop OpenJDK in CLion with Pleasure | The CLion Blog
https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/
(134条消息) JDK编译以及在CLion中进行源码调试(抄书+踩坑记录)_AlaGeek的博客-CSDN博客_clion 调试jdk
https://blog.csdn.net/Stone__Fly/article/details/117266349
JVM | Clion导入OpenJDK11源码并调试 - 腾讯云开发者社区-腾讯云
https://cloud.tencent.com/developer/article/1584598
Mac 10.14.4 编译openjdk1.9源码 及集成clion动态调试
https://www.bbsmax.com/A/x9J2PO9Vd6/
Visual studio debug jdk
注意,visual studio启动非空目录下的那个,
报错:
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MSB3073 命令“D:\cygwin64\usr\bin\make -f ../../Makefile hotspot LOG=info”已退出,代码为 3。 jvm D:\dev\MicrosoftVisualStudio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 45 D:\cygwin64\bin\make -f ../../Makefile hotspot LOG=info
发现make路径有问题,更改如下,问题解决

编写TestString.java,编译为java.class,添加调试参数如下,注意有空格

还有问题,就是调用堆栈不出来,不进断点,烦躁....
重要参考:
./configure -with-freetype=/cygdrive/d/MyWorkSpace/freetype-2.9.1/ -enable-debug -with-target-bits=64 with_toolsdir="/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build" --disable-ccache
./configure -enable-debug -with-target-bits=64 --with-tools-dir="/cygdrive/D/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build" --disable-ccache
--libdir="/cygdrive/D/WindowsKits/10/Lib/10.0.17134.0/um/x64"
D/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build
d/ProgramFiles/MicrosoftVisualStudio/2022/Community/VC/Auxiliary/Build
d/dev/MicrosoftVisualStudio/2022/Community/VC/Auxiliary/Build
with-freetype
--with-freetype="/cygdrive/D/freetype-2.10.4/"
win10&Cygwin编译调试OpenJDK11(精简) - xiaoye-2018 - 博客园
https://www.cnblogs.com/xiaoye-2018/articles/15813470.html
但此处未提到freetype
FreeType 下载,实际并未用到
(134条消息) Windows 10 VS2022编译FreeType 2.12.1_qiuzen的博客-CSDN博客_windows安装freetype https://blog.csdn.net/qiuzen/article/details/127475238 Download FreeType for Windows - Free - 2.10.4 https://downloads.digitaltrends.com/freetype/windows