Request for Approval: Add BFD_VERSION for JDK-8191006: hsdis disassembler plugin does not compile with binutils 2.29+
David Buck
david.buck at oracle.com
Thu Aug 9 09:13:25 UTC 2018
Hi Leslie!
What exactly is the use-case for building with older versions of BINUTILS? It would be good to know what benefit(s) there might be that would justify the cost of (slightly) complicating the code.
Cheers,
-Buck
> On Aug 9, 2018, at 17:12, Leslie Zhai <zhaixiang at loongson.cn> wrote:
>
> 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