簡體   English   中英

如何為 openJDK11 構建 hsdis-amd64.dll?

[英]How can I build hsdis-amd64.dll for openJDK11?

我正在做一門關於 Java 性能優化的課程,但我一直在嘗試下載所有必需的文件,以便我可以構建這個 DLL hsdis-amd64.dll。 它應該允許我在本課程中使用 JITWatch 並了解 JIT。

無論如何,此處的說明說要為您的確切 JDK 下載熱點。 我的 JDK 是 11 構建 11+28。

這是openJDK 存儲庫,其中

  1. 我應該看看openJDK/MYVERSION/hotspot
  2. 點擊標簽,選擇我的確切版本
  3. 點擊bz2下載
  4. 之后我應該修補我剛剛下載的熱點hsdiss庫然后
  5. 重新制作。
  6. 將輸出的 DLL 扔進我的 java/bin/

我看到由於許可證問題無法預構建 DLL。 知道人們如何將 JITWatch 與 openJDK11 一起使用嗎?

我最近根據這里的帖子構建了它: https : //dropzone.nfshost.com/hsdis/

  1. 安裝 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 需要)

  2. 在終端 shell 中運行 Cygwin

  3. 將 GNU binutils 2.32 下載到您的 Cygwin 主目錄,並使用 tar xvf binutils-2.32.tar.xz 將其解壓縮到您可以從 cygwin 路徑輕松訪問的位置。

  4. 切換到JDK/src/utils/hsdis目錄

  5. 像這樣構建 64 位 Windows:

    make OS=Linux MINGW=x86_64-w64-mingw32 BINUTILS=/cygdrive/c/cygwin/binutils-2.32

  6. 如果上面的命令失敗(因為它可能與一些未修補的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM