RFR: 8295795: hsdis does not build with binutils 2.39+

Magnus Ihse Bursie ihse at openjdk.org
Tue Feb 14 11:27:43 UTC 2023


On Fri, 21 Oct 2022 15:26:59 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> Fails like this:
> 
> 
> $ sh ./configure --with-boot-jdk=jdk19u-ea --with-hsdis=binutils --with-binutils-src=binutils-2.39
> $ make clean build-hsdis
> 
> === Output from failing command(s) repeated here ===
> * For target support_hsdis_hsdis-binutils.o:

What happens if we adopt the hsdis interface to match the new binutils, and we try to:
a) load a new hsdis into an old hotspot, or
b) load an old hsdis into a new hotspot?

Are we bound to just have incomprehensible crashes, or can we employ some tricks to at least be able to present an understandable error message to the user?

I could live with breaking compatibility if we output something like "This version of hsdis is too old" or "This version of Hotspot is too old". Creating a random and hard-to-debug crash dump due to method signature mismatches makes me much less keen on going down that route.

Otherwise I agree with you: I think that hsdis is usually used by a few select Hotspot developers, and that they hopefully build hsdis and hotspot together. But I also know there are a lot of guides out there in the wild, suggesting that you put hsdis.so somewhere on your lib path. I have no clue how common this is, but if people have done that, we can cause a lot of problem if this causes hard crashes with no good description with the problem.

-------------

PR: https://git.openjdk.org/jdk/pull/10817



More information about the build-dev mailing list