Request for Approval: Add BFD_VERSION for JDK-8191006: hsdis disassembler plugin does not compile with binutils 2.29+
Leslie Zhai
zhaixiang at loongson.cn
Thu Aug 9 08:12:38 UTC 2018
Hi all,
Thanks for David's patch to fix:
https://bugs.openjdk.java.net/browse/JDK-8191006
But hsdis plugin does not compiled with binutils old version 2.27, so I
just add `BFD_VERSION` for supporting old version binutils:
Here is the patch:
diff -r 09cc8813ae51 src/utils/hsdis/hsdis.c
--- a/src/utils/hsdis/hsdis.c Wed Aug 08 18:38:34 2018 -0700
+++ b/src/utils/hsdis/hsdis.c Thu Aug 09 15:49:31 2018 +0800
@@ -338,10 +338,14 @@
/* Finish linking together the various callback blocks. */
app_data->dinfo.application_data = (void*) app_data;
+#if BFD_VERSION >= 229000000
app_data->dfn = disassembler(bfd_get_arch(native_bfd),
bfd_big_endian(native_bfd),
bfd_get_mach(native_bfd),
native_bfd);
+#else
+ app_data->dfn = disassembler(native_bfd);
+#endif
app_data->dinfo.print_address_func = hsdis_print_address_func;
app_data->dinfo.read_memory_func = hsdis_read_memory_func;
And I would like to backport the fix to OpenJDK8 updates dev:
http://hg.openjdk.java.net/jdk8u/jdk8u-dev
So here is the backport patch:
diff -r b4ee249eb1c4 src/share/tools/hsdis/hsdis.c
--- a/src/share/tools/hsdis/hsdis.c Tue Aug 07 11:55:44 2018 -0400
+++ b/src/share/tools/hsdis/hsdis.c Thu Aug 09 15:49:57 2018 +0800
@@ -337,10 +337,14 @@
/* Finish linking together the various callback blocks. */
app_data->dinfo.application_data = (void*) app_data;
+#if BFD_VERSION >= 229000000
app_data->dfn = disassembler(bfd_get_arch(native_bfd),
bfd_big_endian(native_bfd),
bfd_get_mach(native_bfd),
native_bfd);
+#else
+ app_data->dfn = disassembler(native_bfd);
+#endif
app_data->dinfo.print_address_func = hsdis_print_address_func;
app_data->dinfo.read_memory_func = hsdis_read_memory_func;
And I make demo[1] to test for OpenJDK8 mips64el[2].
A patch by Loongson! Please sponsor it, thanks a lot!
1.
$ ./build/linux-mips64/hsdis-demo
Hello, world!
...And now for something completely different:
Decoding from 0x120000dd0 to 0x120001090...with decode_instructions_virtual
Decoding for CPU 'mips:loongson_3a'
main:
0x120000dd0 daddiu sp,sp,-80
0x120000dd4 gssq ra,s8,64(sp)
0x120000dd8 sd gp,56(sp)
0x120000ddc move s8,sp
0x120000de0 lui gp,0x2
0x120000de4 daddu gp,gp,t9
0x120000de8 daddiu gp,gp,-23968
0x120000dec move v0,a0
0x120000df0 sd a1,40(s8)
0x120000df4 sll v0,v0,0x0
0x120000df8 sw v0,32(s8)
0x120000dfc sw zero,0(s8)
0x120000e00 li v0,1
0x120000e04 sw v0,4(s8)
0x120000e08 b 0x0000000120000f6c
0x120000e0c nop
0x120000e10 lw v0,4(s8)
0x120000e14 dsll v0,v0,0x3
0x120000e18 ld v1,40(s8)
0x120000e1c daddu v0,v1,v0
0x120000e20 ld v0,0(v0)
0x120000e24 sd v0,8(s8)
0x120000e28 ld v0,8(s8)
0x120000e2c lb v1,0(v0)
0x120000e30 li v0,45
0x120000e34 bne v1,v0,0x0000000120000f44
0x120000e38 nop
0x120000e3c ld a0,8(s8)
0x120000e40 ld v0,-32696(gp)
0x120000e44 daddiu a1,v0,7424
0x120000e48 ld v0,-32456(gp)
0x120000e4c move t9,v0
0x120000e50 jalr t9
0x120000e54 nop
0x120000e58 bnez v0,0x0000000120000e80
0x120000e5c nop
0x120000e60 ld v0,-32688(gp)
0x120000e64 lw v0,0(v0)
0x120000e68 xori v0,v0,0x1
0x120000e6c move v1,v0
0x120000e70 ld v0,-32688(gp)
0x120000e74 sw v1,0(v0)
0x120000e78 b 0x0000000120000f3c
0x120000e7c nop
0x120000e80 ld a0,8(s8)
0x120000e84 ld v0,-32696(gp)
0x120000e88 daddiu a1,v0,7432
0x120000e8c ld v0,-32456(gp)
0x120000e90 move t9,v0
0x120000e94 jalr t9
0x120000e98 nop
0x120000e9c bnez v0,0x0000000120000ec4
0x120000ea0 nop
0x120000ea4 ld v0,-32680(gp)
0x120000ea8 lw v0,0(v0)
0x120000eac xori v0,v0,0x1
0x120000eb0 move v1,v0
0x120000eb4 ld v0,-32680(gp)
0x120000eb8 sw v1,0(v0)
0x120000ebc b 0x0000000120000f3c
0x120000ec0 nop
0x120000ec4 ld a0,8(s8)
0x120000ec8 ld v0,-32696(gp)
0x120000ecc daddiu a1,v0,7440
0x120000ed0 li a2,9
0x120000ed4 ld v0,-32592(gp)
0x120000ed8 move t9,v0
0x120000edc jalr t9
0x120000ee0 nop
0x120000ee4 bnez v0,0x0000000120000f04
0x120000ee8 nop
0x120000eec ld v0,8(s8)
0x120000ef0 daddiu v1,v0,9
0x120000ef4 ld v0,-32672(gp)
0x120000ef8 sd v1,0(v0)
0x120000efc b 0x0000000120000f3c
0x120000f00 nop
0x120000f04 ld v0,40(s8)
0x120000f08 ld v1,0(v0)
0x120000f0c ld v0,-32696(gp)
0x120000f10 daddiu a0,v0,7456
0x120000f14 move a1,v1
0x120000f18 ld v0,-32472(gp)
0x120000f1c move t9,v0
0x120000f20 jalr t9
0x120000f24 nop
0x120000f28 li a0,2
0x120000f2c ld v0,-32512(gp)
0x120000f30 move t9,v0
0x120000f34 jalr t9
0x120000f38 nop
0x120000f3c b 0x0000000120000f60
0x120000f40 nop
0x120000f44 ld a0,8(s8)
0x120000f48 ld v0,-32664(gp)
0x120000f4c move t9,v0
0x120000f50 bal &greet (0x12000103c)
0x120000f54 nop
0x120000f58 li v0,1
0x120000f5c sw v0,0(s8)
0x120000f60 lw v0,4(s8)
0x120000f64 addiu v0,v0,1
0x120000f68 sw v0,4(s8)
0x120000f6c lw v1,4(s8)
0x120000f70 lw v0,32(s8)
0x120000f74 slt v0,v1,v0
0x120000f78 bnez v0,0x0000000120000e10
0x120000f7c nop
0x120000f80 lw v0,0(s8)
0x120000f84 bnez v0,0x0000000120000fa4
0x120000f88 nop
0x120000f8c ld v0,-32696(gp)
0x120000f90 daddiu a0,v0,7488
0x120000f94 ld v0,-32664(gp)
0x120000f98 move t9,v0
0x120000f9c bal &greet (0x12000103c)
0x120000fa0 nop
0x120000fa4 ld v0,-32696(gp)
0x120000fa8 daddiu a0,v0,7496
0x120000fac ld v0,-32496(gp)
0x120000fb0 move t9,v0
0x120000fb4 jalr t9
0x120000fb8 nop
0x120000fbc ld v0,-32736(gp)
0x120000fc0 sd v0,16(s8)
0x120000fc4 ld v0,-32656(gp)
0x120000fc8 sd v0,24(s8)
0x120000fcc ld a0,16(s8)
0x120000fd0 ld v1,24(s8)
0x120000fd4 ld v0,16(s8)
0x120000fd8 sltu v0,v0,v1
0x120000fdc bnez v0,0x0000000120000ff4
0x120000fe0 nop
0x120000fe4 ld v0,16(s8)
0x120000fe8 daddiu v0,v0,64
0x120000fec b 0x0000000120000ff8
0x120000ff0 nop
0x120000ff4 ld v0,24(s8)
0x120000ff8 move a1,v0
0x120000ffc ld v0,-32648(gp)
0x120001000 move t9,v0
0x120001004 bal 0x0000000120001840
0x120001008 nop
0x12000100c ld v0,-32696(gp)
0x120001010 daddiu a0,v0,7544
0x120001014 ld v0,-32496(gp)
0x120001018 move t9,v0
0x12000101c jalr t9
0x120001020 nop
0x120001024 move sp,s8
0x120001028 gslq ra,s8,64(sp)
0x12000102c ld gp,56(sp)
0x120001030 daddiu sp,sp,80
0x120001034 jr ra
0x120001038 nop
greet:
0x12000103c daddiu sp,sp,-48
0x120001040 gssq ra,s8,32(sp)
0x120001044 sd gp,24(sp)
0x120001048 move s8,sp
0x12000104c lui gp,0x2
0x120001050 daddu gp,gp,t9
0x120001054 daddiu gp,gp,-24588
0x120001058 sd a0,0(s8)
0x12000105c ld v0,-32696(gp)
0x120001060 daddiu a0,v0,7552
0x120001064 ld a1,0(s8)
0x120001068 ld v0,-32472(gp)
0x12000106c move t9,v0
0x120001070 jalr t9
0x120001074 nop
0x120001078 move sp,s8
0x12000107c gslq ra,s8,32(sp)
0x120001080 ld gp,24(sp)
0x120001084 daddiu sp,sp,48
0x120001088 jr ra
0x12000108c nop
Decoding from 0x120000dd0 to 0x120001090...with old decode_instructions
Decoding for CPU 'mips:loongson_3a'
main:
0x120000dd0 daddiu sp,sp,-80
0x120000dd4 gssq ra,s8,64(sp)
0x120000dd8 sd gp,56(sp)
0x120000ddc move s8,sp
0x120000de0 lui gp,0x2
0x120000de4 daddu gp,gp,t9
0x120000de8 daddiu gp,gp,-23968
0x120000dec move v0,a0
0x120000df0 sd a1,40(s8)
0x120000df4 sll v0,v0,0x0
0x120000df8 sw v0,32(s8)
0x120000dfc sw zero,0(s8)
0x120000e00 li v0,1
0x120000e04 sw v0,4(s8)
0x120000e08 b 0x0000000120000f6c
0x120000e0c nop
0x120000e10 lw v0,4(s8)
0x120000e14 dsll v0,v0,0x3
0x120000e18 ld v1,40(s8)
0x120000e1c daddu v0,v1,v0
0x120000e20 ld v0,0(v0)
0x120000e24 sd v0,8(s8)
0x120000e28 ld v0,8(s8)
0x120000e2c lb v1,0(v0)
0x120000e30 li v0,45
0x120000e34 bne v1,v0,0x0000000120000f44
0x120000e38 nop
0x120000e3c ld a0,8(s8)
0x120000e40 ld v0,-32696(gp)
0x120000e44 daddiu a1,v0,7424
0x120000e48 ld v0,-32456(gp)
0x120000e4c move t9,v0
0x120000e50 jalr t9
0x120000e54 nop
0x120000e58 bnez v0,0x0000000120000e80
0x120000e5c nop
0x120000e60 ld v0,-32688(gp)
0x120000e64 lw v0,0(v0)
0x120000e68 xori v0,v0,0x1
0x120000e6c move v1,v0
0x120000e70 ld v0,-32688(gp)
0x120000e74 sw v1,0(v0)
0x120000e78 b 0x0000000120000f3c
0x120000e7c nop
0x120000e80 ld a0,8(s8)
0x120000e84 ld v0,-32696(gp)
0x120000e88 daddiu a1,v0,7432
0x120000e8c ld v0,-32456(gp)
0x120000e90 move t9,v0
0x120000e94 jalr t9
0x120000e98 nop
0x120000e9c bnez v0,0x0000000120000ec4
0x120000ea0 nop
0x120000ea4 ld v0,-32680(gp)
0x120000ea8 lw v0,0(v0)
0x120000eac xori v0,v0,0x1
0x120000eb0 move v1,v0
0x120000eb4 ld v0,-32680(gp)
0x120000eb8 sw v1,0(v0)
0x120000ebc b 0x0000000120000f3c
0x120000ec0 nop
0x120000ec4 ld a0,8(s8)
0x120000ec8 ld v0,-32696(gp)
0x120000ecc daddiu a1,v0,7440
0x120000ed0 li a2,9
0x120000ed4 ld v0,-32592(gp)
0x120000ed8 move t9,v0
0x120000edc jalr t9
0x120000ee0 nop
0x120000ee4 bnez v0,0x0000000120000f04
0x120000ee8 nop
0x120000eec ld v0,8(s8)
0x120000ef0 daddiu v1,v0,9
0x120000ef4 ld v0,-32672(gp)
0x120000ef8 sd v1,0(v0)
0x120000efc b 0x0000000120000f3c
0x120000f00 nop
0x120000f04 ld v0,40(s8)
0x120000f08 ld v1,0(v0)
0x120000f0c ld v0,-32696(gp)
0x120000f10 daddiu a0,v0,7456
0x120000f14 move a1,v1
0x120000f18 ld v0,-32472(gp)
0x120000f1c move t9,v0
0x120000f20 jalr t9
0x120000f24 nop
0x120000f28 li a0,2
0x120000f2c ld v0,-32512(gp)
0x120000f30 move t9,v0
0x120000f34 jalr t9
0x120000f38 nop
0x120000f3c b 0x0000000120000f60
0x120000f40 nop
0x120000f44 ld a0,8(s8)
0x120000f48 ld v0,-32664(gp)
0x120000f4c move t9,v0
0x120000f50 bal &greet (0x12000103c)
0x120000f54 nop
0x120000f58 li v0,1
0x120000f5c sw v0,0(s8)
0x120000f60 lw v0,4(s8)
0x120000f64 addiu v0,v0,1
0x120000f68 sw v0,4(s8)
0x120000f6c lw v1,4(s8)
0x120000f70 lw v0,32(s8)
0x120000f74 slt v0,v1,v0
0x120000f78 bnez v0,0x0000000120000e10
0x120000f7c nop
0x120000f80 lw v0,0(s8)
0x120000f84 bnez v0,0x0000000120000fa4
0x120000f88 nop
0x120000f8c ld v0,-32696(gp)
0x120000f90 daddiu a0,v0,7488
0x120000f94 ld v0,-32664(gp)
0x120000f98 move t9,v0
0x120000f9c bal &greet (0x12000103c)
0x120000fa0 nop
0x120000fa4 ld v0,-32696(gp)
0x120000fa8 daddiu a0,v0,7496
0x120000fac ld v0,-32496(gp)
0x120000fb0 move t9,v0
0x120000fb4 jalr t9
0x120000fb8 nop
0x120000fbc ld v0,-32736(gp)
0x120000fc0 sd v0,16(s8)
0x120000fc4 ld v0,-32656(gp)
0x120000fc8 sd v0,24(s8)
0x120000fcc ld a0,16(s8)
0x120000fd0 ld v1,24(s8)
0x120000fd4 ld v0,16(s8)
0x120000fd8 sltu v0,v0,v1
0x120000fdc bnez v0,0x0000000120000ff4
0x120000fe0 nop
0x120000fe4 ld v0,16(s8)
0x120000fe8 daddiu v0,v0,64
0x120000fec b 0x0000000120000ff8
0x120000ff0 nop
0x120000ff4 ld v0,24(s8)
0x120000ff8 move a1,v0
0x120000ffc ld v0,-32648(gp)
0x120001000 move t9,v0
0x120001004 bal 0x0000000120001840
0x120001008 nop
0x12000100c ld v0,-32696(gp)
0x120001010 daddiu a0,v0,7544
0x120001014 ld v0,-32496(gp)
0x120001018 move t9,v0
0x12000101c jalr t9
0x120001020 nop
0x120001024 move sp,s8
0x120001028 gslq ra,s8,64(sp)
0x12000102c ld gp,56(sp)
0x120001030 daddiu sp,sp,80
0x120001034 jr ra
0x120001038 nop
greet:
0x12000103c daddiu sp,sp,-48
0x120001040 gssq ra,s8,32(sp)
0x120001044 sd gp,24(sp)
0x120001048 move s8,sp
0x12000104c lui gp,0x2
0x120001050 daddu gp,gp,t9
0x120001054 daddiu gp,gp,-24588
0x120001058 sd a0,0(s8)
0x12000105c ld v0,-32696(gp)
0x120001060 daddiu a0,v0,7552
0x120001064 ld a1,0(s8)
0x120001068 ld v0,-32472(gp)
0x12000106c move t9,v0
0x120001070 jalr t9
0x120001074 nop
0x120001078 move sp,s8
0x12000107c gslq ra,s8,32(sp)
0x120001080 ld gp,24(sp)
0x120001084 daddiu sp,sp,48
0x120001088 jr ra
0x12000108c nop
Cheers!
2.
http://hg.loongnix.org/jdk8-mips64-public/hotspot/file/tip/src/share/tools/hsdis/Makefile#l85
--
Regards,
Leslie Zhai
More information about the jdk-dev
mailing list