Few cents about my commits

2.3.17 release is broken due JDK-8272564

|

Just in 1h after release first reports arrived. It resulted in failure to link with messages like:

Undefined symbols for architecture arm64: “_[j]java.lang.Object.notifyAll()V[lookup]”,

Moment here: Object.notifyAll is final method and doesn’t require [lookup] trampoline but quick look shows that its being invoked now with invokeinterface JVM instruction instead of invokevirtual as it was before.

Long story short: this happen due Java18 was used for compilation on build machine. And even if we target Java8 when compiling runtime different byte code was generated due applied JDK-8272564.

In short term – planned 2.3.18 release using Java 15 on host. Also we have to support method lookup for Object methods when these invoked on interfaces as it described in jvms-5.4.3.4 item 3.

Comments