Public bug reported: After #1738545 [1] was fixed, Go applications work fine on qemu-arm but still crash on qemu-sh4. From the backtrace, it looks like an issue with the atomics in qemu-sh4:
(sid-sh4-sbuild)root@epyc:/# cat hello.go package main import "fmt" func main() { fmt.Println("hello world") } (sid-sh4-sbuild)root@epyc:/# gccgo-9 hello.go -o hello (sid-sh4-sbuild)root@epyc:/# ./hello panic: ( runtime runtime.errorString) (0x7f74527c,0x80a038) fatal error: panic on system stack panic: ( runtime runtime.errorString) (0x7f74527c,0x80a038) fatal error: panic on system stack runtime stack: runtime..z2finternal..z2fatomic.Load64 ../../../src/libgo/go/runtime/internal/atomic/atomic.c:37 runtime_mstart ../../../src/libgo/runtime/proc.c:596 goroutine 1 [running]: goroutine running on other thread; stack unavailable runtime stack: runtime..z2finternal..z2fatomic.Load64 ../../../src/libgo/go/runtime/internal/atomic/atomic.c:37 runtime_mstart ../../../src/libgo/runtime/proc.c:596 (sid-sh4-sbuild)root@epyc:/# The same sample Go program runs fine on my SH7785LCR SH4 evaluation board: root@tirpitz:~> uname -a Linux tirpitz 3.16.7-ckt7 #8 PREEMPT Fri Oct 21 18:47:41 CEST 2016 sh4a GNU/Linux root@tirpitz:~> cat hello.go package main import "fmt" func main() { fmt.Println("hello world") } root@tirpitz:~> gccgo-9 hello.go -o hello root@tirpitz:~> ./hello hello world root@tirpitz:~> Please note: In order to be able to reproduce this, one also needs to revert commit 61dedf2af7 [2], otherwise the Go application crashes differently: (sid-sh4-sbuild)root@epyc:/# ./hello Unhandled trap: 0x180 pc=0x7e5f7f9e sr=0x00000000 pr=0x7ee3d582 fpscr=0x00080004 spc=0x00000000 ssr=0x00000000 gbr=0x7e590480 vbr=0x00000000 sgr=0x00000000 dbr=0x00000000 delayed_pc=0x7e5f7f60 fpul=0x00034f3b r0=0x008007d4 r1=0x00000000 r2=0xfffe0b2a r3=0x00000002 r4=0x008006e4 r5=0x00872000 r6=0x00200000 r7=0x00000000 r8=0x7f7bca7c r9=0x7fffebd4 r10=0x00800480 r11=0x7f7bc0f0 r12=0x7f7a3fa4 r13=0x008004c0 r14=0x7f7b2238 r15=0x7fffebd0 r16=0x00000000 r17=0x00000000 r18=0x00000000 r19=0x00000000 r20=0x00000000 r21=0x00000000 r22=0x00000000 r23=0x00000000 (sid-sh4-sbuild)root@epyc:/# > [1] https://bugs.launchpad.net/bugs/1738545 > [2] https://bugs.launchpad.net/bugs/1796520 ** Affects: qemu Importance: Undecided Status: New -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1839325 Title: Go programs crash on qemu-sh4 due to issues with atomics Status in QEMU: New Bug description: After #1738545 [1] was fixed, Go applications work fine on qemu-arm but still crash on qemu-sh4. From the backtrace, it looks like an issue with the atomics in qemu-sh4: (sid-sh4-sbuild)root@epyc:/# cat hello.go package main import "fmt" func main() { fmt.Println("hello world") } (sid-sh4-sbuild)root@epyc:/# gccgo-9 hello.go -o hello (sid-sh4-sbuild)root@epyc:/# ./hello panic: ( runtime runtime.errorString) (0x7f74527c,0x80a038) fatal error: panic on system stack panic: ( runtime runtime.errorString) (0x7f74527c,0x80a038) fatal error: panic on system stack runtime stack: runtime..z2finternal..z2fatomic.Load64 ../../../src/libgo/go/runtime/internal/atomic/atomic.c:37 runtime_mstart ../../../src/libgo/runtime/proc.c:596 goroutine 1 [running]: goroutine running on other thread; stack unavailable runtime stack: runtime..z2finternal..z2fatomic.Load64 ../../../src/libgo/go/runtime/internal/atomic/atomic.c:37 runtime_mstart ../../../src/libgo/runtime/proc.c:596 (sid-sh4-sbuild)root@epyc:/# The same sample Go program runs fine on my SH7785LCR SH4 evaluation board: root@tirpitz:~> uname -a Linux tirpitz 3.16.7-ckt7 #8 PREEMPT Fri Oct 21 18:47:41 CEST 2016 sh4a GNU/Linux root@tirpitz:~> cat hello.go package main import "fmt" func main() { fmt.Println("hello world") } root@tirpitz:~> gccgo-9 hello.go -o hello root@tirpitz:~> ./hello hello world root@tirpitz:~> Please note: In order to be able to reproduce this, one also needs to revert commit 61dedf2af7 [2], otherwise the Go application crashes differently: (sid-sh4-sbuild)root@epyc:/# ./hello Unhandled trap: 0x180 pc=0x7e5f7f9e sr=0x00000000 pr=0x7ee3d582 fpscr=0x00080004 spc=0x00000000 ssr=0x00000000 gbr=0x7e590480 vbr=0x00000000 sgr=0x00000000 dbr=0x00000000 delayed_pc=0x7e5f7f60 fpul=0x00034f3b r0=0x008007d4 r1=0x00000000 r2=0xfffe0b2a r3=0x00000002 r4=0x008006e4 r5=0x00872000 r6=0x00200000 r7=0x00000000 r8=0x7f7bca7c r9=0x7fffebd4 r10=0x00800480 r11=0x7f7bc0f0 r12=0x7f7a3fa4 r13=0x008004c0 r14=0x7f7b2238 r15=0x7fffebd0 r16=0x00000000 r17=0x00000000 r18=0x00000000 r19=0x00000000 r20=0x00000000 r21=0x00000000 r22=0x00000000 r23=0x00000000 (sid-sh4-sbuild)root@epyc:/# > [1] https://bugs.launchpad.net/bugs/1738545 > [2] https://bugs.launchpad.net/bugs/1796520 To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1839325/+subscriptions