RFR: 8263512: [macos_aarch64] issues with calling va_args functions from invoke_native

Maurizio Cimadamore mcimadamore at openjdk.java.net
Fri Jun 4 13:00:05 UTC 2021


On Fri, 4 Jun 2021 10:06:26 GMT, Nick Gasson <ngasson at openjdk.org> wrote:

>> The JEP has been integrated, so we can pick this back up (and handle it as a bug for 17 even after the fork).
>> 
>> Thank you for your patience.
>
> Thanks @JornVernee! I noticed VaListTest has started failing on Windows with this error:
> 
> test VaListTest.testUpcall(java.lang.invoke.BoundMethodHandle$Species_LLLLLLL at 198ebce4, MethodHandle(VaList)void): success
> test VaListTest.testUpcall(java.lang.invoke.BoundMethodHandle$Species_LLLLLLL at 7a97cd30, MethodHandle(VaList)void): success
> Uncaught exception:
> java.lang.IllegalArgumentException 
> {0x00000000d6506c20} - klass: 'java/lang/IllegalArgumentException'
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (universalUpcallHandler.cpp:113), pid=13972, tid=23500
> #  Error: ShouldNotReachHere()
> #
> 
> 
> I guess it must be related to the two new cases I added and the Windows code is now throwing an IllegalArgumentException but I can't see where from. Any ideas?

@nick-arm, I've just integrated a fix which, I believe will create a minor build issue with the changes in this patch:

https://git.openjdk.java.net/jdk/pull/4316

That fix has a switch on the ABI type in the SystemLookup class (a new class introduced by that fix). I believe that switch will no longer compile with the changes in this PR as the ABI enum constants have changed - hopefully the fix should be easy - e.g. just replace the case label with references AARCH64 with a compound case label which covers both ARM/linux and ARM/MacOS.

-------------

PR: https://git.openjdk.java.net/jdk/pull/3617


More information about the core-libs-dev mailing list