Building Go On Unsupported Platform (FreeBSD/PowerPC64)

89 views
Skip to first unread message

Curtis Hamilton

unread,
Dec 17, 2020, 8:38:05 PM12/17/20
to golan...@googlegroups.com
I know that my platform is not supported.  However, I've been successful in patching and building working go v1.13 on my Raptor Blackbird (Power9) running FreeBSD v12.1.  I'm also able to build versions 1.14 and 1.15 as well.  

I can build a working go v1.13 on FreeBSD v13 with the same patches used for FreeBSD v12.1. However, when attempting to build go v1.14 on FreeBSD v13, I get the below error:

compile version go1.14.6

Building Go toolchain2 using go_bootstrap and Go toolchain1.
wirep: p->m=0(0) p->status=101382
fatal error: wirep: invalid p state

runtime stack:
runtime.throw(0x3e47f0, 0x16)
/usr/ports/lang/go/work/go/src/runtime/panic.go:1116 +0x5c
runtime.wirep(0xc000012a80)
/usr/ports/lang/go/work/go/src/runtime/proc.go:4309 +0x130
runtime.acquirep(0xc000012a80)
/usr/ports/lang/go/work/go/src/runtime/proc.go:4278 +0x2c
runtime.mstart1()
/usr/ports/lang/go/work/go/src/runtime/proc.go:1101 +0xa8
runtime.mstart()
/usr/ports/lang/go/work/go/src/runtime/proc.go:1062 +0x60

goroutine 1 [runnable, locked to thread]:
runtime.chanrecv(0xc000068000, 0x0, 0x10000c000000180, 0x28a88)
/usr/ports/lang/go/work/go/src/runtime/chan.go:422 +0x18
runtime.chanrecv1(0xc000068000, 0x0)
/usr/ports/lang/go/work/go/src/runtime/chan.go:407 +0x24
runtime.gcenable()
/usr/ports/lang/go/work/go/src/runtime/mgc.go:216 +0x88
runtime.main()
/usr/ports/lang/go/work/go/src/runtime/proc.go:166 +0x110
runtime.goexit()
/usr/ports/lang/go/work/go/src/runtime/asm_ppc64x.s:884 +0x4
go tool dist: FAILED: /usr/ports/lang/go/work/go/pkg/tool/freebsd_ppc64/go_bootstrap install -gcflags=all= -ldflags=all= -v -i cmd/asm cmd/cgo cmd/compile cmd/link cmd/buildid: exit status 2

Can someone help me diagnose this error?

Ian Lance Taylor

unread,
Dec 18, 2020, 12:10:03 AM12/18/20
to Curtis Hamilton, golang-nuts
I have no idea what is causing this, but the problem is
straightforward. The p->status field must be a small integer, one of
the list starting with _Pidle in runtime/runtime2.go. In your case it
has somehow become 101382, which is not valid.

Ian
Reply all
Reply to author
Forward
0 new messages