This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug go/79281] New: gccgo: Binaries using goroutines crash on m68k
- From: "glaubitz at physik dot fu-berlin.de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 30 Jan 2017 11:03:26 +0000
- Subject: [Bug go/79281] New: gccgo: Binaries using goroutines crash on m68k
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79281
Bug ID: 79281
Summary: gccgo: Binaries using goroutines crash on m68k
Product: gcc
Version: 6.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: go
Assignee: ian at airs dot com
Reporter: glaubitz at physik dot fu-berlin.de
CC: cmang at google dot com, doko at gcc dot gnu.org,
gcc-bugzilla at mkarcher dot dialup.fu-berlin.de,
ian at airs dot com, jrtc27 at jrtc27 dot com, schwab at gcc dot gnu.org
Target Milestone: ---
After fixing #79037, I can compile and run Go programs on m68k now. However,
there is still a problem when using Go routines:
(sid-m68k-sbuild)root@ikarus:/# cat routines.go
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 5; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("World")
go say("Alice")
go say("Bob")
say("Hello")
}
(sid-m68k-sbuild)root@ikarus:/# gccgo-6 routines.go -o routines
(sid-m68k-sbuild)root@ikarus:/# ./routines
futexwakeup addr=0x90416c5e returned -1
fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0x1006]
goroutine 22 [syscall]:
runtime_dopanic
../../../src/libgo/runtime/panic.c:131
runtime_throw
../../../src/libgo/runtime/panic.c:193
sig_panic_leadin
../../../src/libgo/runtime/go-signal.c:249
sig_panic_info_handler
../../../src/libgo/runtime/go-signal.c:283
:0
runtime_futexwakeup
../../../src/libgo/runtime/thread-linux.c:70
runtime_notewakeup
../../../src/libgo/runtime/lock_futex.c:121
handoffp
../../../src/libgo/runtime/proc.c:1518
runtime_entersyscallblock
../../../src/libgo/runtime/proc.c:2081
runtime_notetsleepg
../../../src/libgo/runtime/lock_futex.c:200
timerproc
../../../src/libgo/runtime/time.goc:263
kickoff
../../../src/libgo/runtime/proc.c:235
created by addtimer
../../../src/libgo/runtime/time.goc:147
goroutine 16 [running]:
goroutine running on other thread; stack unavailable
goroutine 17 [syscall]:
goroutine in C code; stack unavailable
created by runtime_main
../../../src/libgo/runtime/proc.c:598
goroutine 18 [finalizer wait]:
Hello
runtime_mcall
../../../src/libgo/runtime/proc.c:295
runtime_parkunlock
../../../src/libgo/runtime/proc.c:1887
runfinq
../../../src/libgo/runtime/mgc0.c:2512
kickoff
../../../src/libgo/runtime/proc.c:235
created by runtime_createfing
../../../src/libgo/runtime/mgc0.c:2577
goroutine 19 [sleep]:
runtime_mcall
../../../src/libgo/runtime/proc.c:295
runtime_parkunlock
../../../src/libgo/runtime/proc.c:1887
runtime_tsleep
../../../src/libgo/runtime/time.goc:97
time.Sleep
../../../src/libgo/runtime/time.goc:39
main.say
//routines.go:10
kickoff
../../../src/libgo/runtime/proc.c:235
created by main.main
//routines.go:16
goroutine 20 [sleep]:
runtime_mcall
../../../src/libgo/runtime/proc.c:295
runtime_parkunlock
../../../src/libgo/runtime/proc.c:1887
runtime_tsleep
../../../src/libgo/runtime/time.goc:97
time.Sleep
../../../src/libgo/runtime/time.goc:39
main.say
//routines.go:10
kickoff
../../../src/libgo/runtime/proc.c:235
created by main.main
//routines.go:17
goroutine 21 [sleep]:
runtime_mcall
../../../src/libgo/runtime/proc.c:295
runtime_parkunlock
../../../src/libgo/runtime/proc.c:1887
runtime_tsleep
../../../src/libgo/runtime/time.goc:97
time.Sleep
../../../src/libgo/runtime/time.goc:39
main.say
//routines.go:10
kickoff
../../../src/libgo/runtime/proc.c:235
created by main.main
//routines.go:18
goroutine 23 [GC sweep wait]:
runtime_mcall
../../../src/libgo/runtime/proc.c:295
runtime_parkunlock
../../../src/libgo/runtime/proc.c:1887
bgsweep
../../../src/libgo/runtime/mgc0.c:1844
kickoff
../../../src/libgo/runtime/proc.c:235
created by mgc
../../../src/libgo/runtime/mgc0.c:2215
(sid-m68k-sbuild)root@ikarus:/#
I have not looked into the problem in detail yet, but I assume it's either the
16-bit alignment striking again or maybe a missing syscall definition.
Let me know if there is something I can try to address the issue.