Open SeanTAllen opened 5 years ago
I have put a little work into this, in order to get ponyc working on a Raspberry Pi Zero W.
I believe the issue comes down to some ASM in cpu.c, specifically in the function: ponyint_cpu_tick
The simplest fix (not sure its a good idea, but it is what I have been using) is to disable the ASM for ARMv6:
https://github.com/ponylang/ponyc/compare/master...patches11:armv6-simple?expand=1
Based on some feedback in https://github.com/ponylang/ponyc/issues/3206 I attempted to update ponyint_cpu_tick
to use ARMv6 specific ASM but this did not seem to work in my testing, attempt here:
https://github.com/ponylang/ponyc/compare/master...patches11:armv6-asm?expand=1
Which crashes with an illegal instruction on the hello world example here: 0xf704 mrc 15, 0, r3, cr15, cr9, {0}
Neither of these solve issue https://github.com/ponylang/ponyc/issues/3111 but I believe as long as you specify the tune in your build it should work fine, that could probably just be added to the README, I have been using this to build (maybe overkill): make default_pic=true arch=armv6 cpu=arm1176jzf-s tune=arm6 fpu=vfp
Currently broken. We will be updating existing ARM support to indicate that ARMv7 and up are supported. If you anyone wants ARMv6 support, they will need to add support for it.
https://github.com/ponylang/ponyc/issues/3206