dacha wrote: plugwash wrote:
A couple of minor changes are needed to get JamVM to work on raspbian (when I ported JamVM to armhf, I took the opportunity to use thumb2, as armhf specified this as a minimum requirement). Hopefully I'll check these changes in tonight.
Can you provide us a link to the patch, it would be good to be able to re-enable jamvm in our openjdk packages.
No need for a patch. The only problem JamVM has is that its own JNI invocation mechanism through src/os/linux/arm/callNativeEABI.S
doesn't work correctly on Raspbian's hardfp ABI. But JamVM also supports using libffi as an alternative JNI mechanism, which works fine. You enable it as follows:
To clarify. JamVM has hand-written assembler for most platforms for calling JNI methods according to the platform ABI. It also supports using libffi to call JNI methods in a platform independent manner (as libffi handles all the platform details). By default, JamVM uses the hand-written routines as these are much faster than using libffi. On armhf, this is src/os/linux/arm/callNativeEABIHard.S
is for armel). As armhf was previously only used on ARMv7, I used thumb2. For Raspbian, I have introduced yet another variant src/os/linux/arm/callNativeEABIHardARM.S
which as the name suggests supports the EABI hard float ABI but is written in ARM mode so it works on ARMv6 processors such as in the Raspberry Pi. For other armhf targets the original routine is still used, as being thumb2 it is smaller, and (slightly) faster.