Skip to content

Conversation

dkimitsa
Copy link
Contributor

2.3.17 release failed due this, discussion in gitter

root case

when Java18 used as compiler JDK-8272564 changes will be applied this will affect invocation of
java.lang.Object methods on interface receivers.
as per changes invokevirtual is replaced with invokeinterface and these methods
has to be resolved as per https://docs.oracle.com/javase/specs/jvms/se17/html/jvms-5.html#jvms-5.4.3.4 item 3
in RoboVM case this means that final methods of "java.lang.Object" has to be available for lookup,
thus changes added to include [lookup] wrappers for final methods in this case
otherwise it will fail during linking with message(s):

Undefined symbols for architecture arm64:"[j]java.lang.Object.notifyAll()V[lookup]"

dkimitsa and others added 2 commits July 16, 2022 17:27
when Java18 used as compiler JDK-8272564 changes will be applied this will affect invocation of
java.lang.Object methods on interface receivers.
as per changes invokevirtual is replaced with invokeinterface and these methods
has to be resolved as per https://docs.oracle.com/javase/specs/jvms/se17/html/jvms-5.html#jvms-5.4.3.4 item 3
in RoboVM case this means that final methods of "java.lang.Object" has to be available for lookup,
thus changes added to include [lookup] wrappers for final methods in this case
otherwise it will fail during linking with message(s):
> Undefined symbols for architecture arm64:"[j]java.lang.Object.notifyAll()V[lookup]"
@Tom-Ski Tom-Ski merged commit c1a5ba9 into MobiVM:master Jul 17, 2022
@dkimitsa dkimitsa deleted the fix/java18-jdk-8272564-workaround branch March 29, 2023 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants