[英]How can I build hsdis-amd64.dll for openJDK11?
我正在做一门关于 Java 性能优化的课程,但我一直在尝试下载所有必需的文件,以便我可以构建这个 DLL hsdis-amd64.dll。 它应该允许我在本课程中使用 JITWatch 并了解 JIT。
无论如何,此处的说明说要为您的确切 JDK 下载热点。 我的 JDK 是 11 构建 11+28。
这是openJDK 存储库,其中
我看到由于许可证问题无法预构建 DLL。 知道人们如何将 JITWatch 与 openJDK11 一起使用吗?
我最近根据这里的帖子构建了它: https : //dropzone.nfshost.com/hsdis/
安装 Cygwin。 在 Select Packages 屏幕上,添加以下包(展开 All/Devel 类别,搜索包的名称,并将包的 New 状态从 Skip 更改为最新的非测试版本):
gcc-core make mingw64-i686-gcc-core(仅 hsdis-i386.dll 需要) mingw64-x86_64-gcc-core(仅 hsdis-amd64.dll 需要)
在终端 shell 中运行 Cygwin
将 GNU binutils 2.32 下载到您的 Cygwin 主目录,并使用 tar xvf binutils-2.32.tar.xz 将其解压缩到您可以从 cygwin 路径轻松访问的位置。
切换到JDK/src/utils/hsdis目录
像这样构建 64 位 Windows:
make OS=Linux MINGW=x86_64-w64-mingw32 BINUTILS=/cygdrive/c/cygwin/binutils-2.32
如果上面的命令失败(因为它可能与一些未修补的 JDK 版本一样):
compress.c:(.text+0x5b): 未定义对 `inflateInit_' 的引用
编辑 Makefile,查找 libiberty.a 并将库列表更改为包含 libz.a,如下所示:
LIBRARIES = $(TARGET_DIR)/bfd/libbfd.a \
$(TARGET_DIR)/opcodes/libopcodes.a \
$(TARGET_DIR)/libiberty/libiberty.a \
$(TARGET_DIR)/zlib/libz.a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.