[英]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.