qemu
qemu copied to clipboard
Go incompatible with qemu
On an M1 Preview 7 I encountered a go runtime failure for one of of our tools:
runtime: unexpected return pc for runtime.asyncPreempt called from 0x767ec0
stack: frame={sp:0xc0003cbb70, fp:0xc0003cbcf8} stack=[0xc0003ca000,0xc0003cc000)
000000c0003cba70: 00000000004165ff <runtime.heapBits.forwardOrBoundary+111> 00000040279bae00
000000c0003cba80: 0020300000000000 0000004027ba8fff
000000c0003cba90: 0000000000000400 00000040279baf00
000000c0003cbaa0: 0020300000000000 0000004027ba8fff
000000c0003cbab0: 000000c0003cbb30 0000000000417266 <runtime.heapBits.initSpan+310>
000000c0003cbac0: 00000040279bae00 0000000000000100
000000c0003cbad0: 0000004027ba8fff 0000000000000400
000000c0003cbae0: 00000040279baf00 0020300000000000
000000c0003cbaf0: 0000004027ba8fff 0000000000000400
#011/usr/local/go/src/runtime/sema.go:56 +0x42
sync.(*WaitGroup).Wait(0xc0002a1d74)
#011/usr/local/go/src/sync/waitgroup.go:130 +0x64
main.main()
Appears that all bets might be off for golang on qemu, it's not a tested/supported platform for go, and there are known incompatibilities:
https://github.com/golang/go/issues/36981#issuecomment-581473107