On Fri, 21 Oct 2022 15:26:59 GMT, Aleksey Shipilev <sh...@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

Reply via email to