[squeak-dev] [Vm-dev] Reviving the Android VM
David T. Lewis
lewis at mail.msen.com
Sun Jun 18 16:40:59 UTC 2017
Nice to see you here :-)
I am CCing squeak-dev because there is likely to be interest there, and some
historical expertise also.
Yes, vm-dev is a good place for follow ups.
On Sat, Jun 17, 2017 at 07:48:31AM +1200, Michael Rueger wrote:
> Hi all,
> long time no see :-)
> Recently I spent a bit of time trying to piece together an Android VM using
> the up to date versions of AndroidStudio, SDK and NDK. Once things are
> building and running, I was planning to fold everything back into the
> proper build process.
> Current (somewhat messy) state of things here
> It has been quite a long time since I looked at building VMs, so forgive me
> if I'm just being stupid here...
> I was able to get the original port from Andreas to build and run, but it
> is a very outdated version. Still nice to have it as a piece of history, I
> think (AndroidVM in the above repo).
> Some puzzle pieces later I have something running that is based on recent
> CogSpur opensmalltalk code and bits and pieces I found. Unfortunately
> CogSpur doesn't seem to play well with the setjmp/longjmp used in the code
> (CogDroid in the above repo).
> Plus, the VM is running on the UI thread, not something that is viewed well
> on mobile. Actually it makes Android just kill the app if you block the UI
> thread for too long.
> Trying to run the VM on a thread runs into a division by 0 exception (I
> think) and finds me way out of my league to track down why that would be.
> Crash below...
> I haven't really tried getting Dmitry's version to build/work in a current
> environment, partly because I'm not sure I'm looking at the most up to date
> version (see below).
> Any help, pointers, code snippets highly appreciated!
> P.S. Sending this to vm-dev and pharo-dev, but should probably send any
> followup to vm-dev?
> list of sources I looked at:
> -original port by Andreas
> git at github.com:timfel/squeak-android-vm.git
> gitorious is no longer, just an archival snapshot
> clicking on snapshot gives you the sources
> non-functional jenkins setup
> The Cog VM crash when running on a Thread:
> D/jni-vm: Java_org_smalltalk_android_vm_VM_runVM
> D/jni-vm: runVM
> D/jni-vm: interpret
> A/libc: Fatal signal 8 (SIGFPE), code -6, fault addr 0x67db in tid 26636
> Revision: '6'
> ABI: 'arm'
> pid: 26587, tid: 26636, name: Thread-5 >>> org.smalltalk.android <<<
> signal 8 (SIGFPE), code -6 (SI_TKILL), fault addr 0x67db
> r0 00000000 r1 0000680c r2 00000008 r3 00000000
> r4 e4f7f978 r5 00000008 r6 e4f7f920 r7 0000010c
> r8 e4f7ef60 r9 e3516400 sl e351648c fp e4f7ecb4
> ip 00000002 sp e4f7ce30 lr efca84c7 pc efcaad30 cpsr 600e0010
> #00 pc 0004ad30 /system/lib/libc.so (tgkill+12)
> #01 pc 000484c3 /system/lib/libc.so (pthread_kill+34)
> #02 pc 0001dd99 /system/lib/libc.so (raise+10)
> #03 pc 000c54a3 /data/app/org.smalltalk.android-2/lib/arm/libStackVM.so
> #04 pc 00051507 /data/app/org.smalltalk.android-2/lib/arm/libStackVM.so
> #05 pc 0003d38b
> /data/app/org.smalltalk.android-2/lib/arm/libStackVM.so (interpret+238)
> #06 pc 000a4e6f
> /data/app/org.smalltalk.android-2/lib/arm/libStackVM.so (runVM+22)
> #07 pc 000a4a55
> #08 pc 0031ec99 /data/app/org.smalltalk.android-2/oat/arm/base.odex
> (offset 0x302000)
More information about the Squeak-dev