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