openjdk12 hsdis windows构建

本文介绍了如何在Windows环境下,基于OpenJDK 12源码构建适用于Windows的hsdis反编译工具。详细阐述了从环境准备到64位和32位版本hsdis.dll的构建过程,并提供了使用方法和相关参考资料。
摘要由CSDN通过智能技术生成

背景

为了体验《深入理解Java虚拟机》第三版里面提到的的hsdis反编译工具。

目标

在之前编译OpenJDK 12的基础上构建适用Windows平台的hsdis工具,即hsdis.dll(备注:实际名称带有架构信息,比如64位版本的hsdis-amd64.dll,32位版本的hsdis-i386.dll)。

环境准备

OpenJDK 12源码

选择以下任一方法,

  1. 使用Mercurial clone源码,
hg clone http://hg.openjdk.java.net/jdk/jdk
  1. 下载源码包。

本文用的是OpenJDK12+33/OpenJDK12-ga,下载的是tar.gz包

md5sum  : 760bdd74283e89940f850beb9897bb78
sha1sum : d04d49b05d3152697321b7f98156172233f63b14

下载完成后,建议对比一下md5和sha1摘要,对比主要是为了检查文件是否完整,如果文件不完整,后面执行构建的时候,可能会提示莫名其妙的错误。

binutils

下载binutils 2.32源码,https://ftp.gnu.org/gnu/binutils/binutils-2.32.tar.gz

工具链

公共部分

因为之前配置过OpenJDK 12的环境,所以这里列出来的可能不是最小工具集。

我用的是cygwin 3.3.3-1,安装了下面的包,

autoconf 15-1
make 4.2.1-2
zip 3.0-12
unzip 6.0-17
texinfo 6.7-1

64位

我使用的是mingw64-x86_64-gcc-core 10.2.0-1工具链。

32位

我使用的是mingw64-i686-gcc-core 10.2.0-1工具链。

构建

64位

构建前需要修改src\utils\hsdis\Makefile,需要做2处修改,如下,

# 修改前,189-202行
BINUTILSDIR	= $(shell cd $(BINUTILS);pwd)
endif

CPPFLAGS	+= -I$(BINUTILSDIR)/include -I$(BINUTILSDIR)/bfd -I$(TARGET_DIR)/bfd
CPPFLAGS	+= -DLIBARCH_$(LIBARCH) -DLIBARCH=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值