2.3.17 release is broken due JDK-8272564
06 Jul 2022 | compiler jep java18Just 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