All the errors seem related to the old Rune size. I suspect you're running an old system and it's likely to not have nsec and tsemacquire syscalls either. If you believe the system is up-to-date, you can cross compile a simple Go program using 1.5 or later targeting GOOS=plan9 GOARCH=386 from a Linux/OSX or Windows box and see if it runs on your system. That might give you more info. On Tue, Jan 26, 2016 at 1:44 PM Sean Caron wrote: > Hi all, > > I've been getting interested in programming in Go recently and it's my > understanding that at some point in time, Plan 9 was a supported > environment in which one could bootstrap and use Go? > > I've tried a few different versions; 1.2.2, 1.4.2, 1.5.2, just following > the directions that I found on a blog somewhere, i.e: > > tar xf go 1.4.2.tar > cd go-go1.4.2/src > ./all.rc > > But it fails almost immediately trying to bootstrap Go: > > cpu% ./all.rc > # Building C bootstrap tool. > cmd/dist > > # Building compilers and Go bootstrap tool for host, plan9/386. > lib9 > cpp: /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:226 > /usr/scaron/go-go1.4.2/include/plan9/../utf.h:1 > /usr/scaron/go-go1.4.2/include/plan9/utf.h:5 > /usr/scaron/go-go1.4.2/include/plan9/../fmt.h:21 > /usr/scaron/go-go1.4.2/include/plan9/fmt.h:5 > /usr/scaron/go-go1.4.2/include/plan9/libc.h:6 > /usr/scaron/go-go1.4.2/src/lib9/flag.c:6 Unterminated string or char const > > I get a fair number of these errors for various header files, then some > more worrisome output: > > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/fmt/dorfmt.c:152] > external redeclaration of: Rune > TYPEDEF UINT > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/fmt/dorfmt.c:152] > TYPEDEF USHORT > /386/include/u.h:11[/usr/scaron/go-go1.4.2/src/lib9/fmt/dorfmt.c:21] > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/flag.c:153] > external redeclaration of: Rune > TYPEDEF UINT > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/flag.c:153] > TYPEDEF USHORT > /386/include/u.h:11[/usr/scaron/go-go1.4.2/src/lib9/flag.c:22] > cpp: /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:227 > /usr/scaron/go-go1.4.2/include/plan9/../utf.h:1 > /usr/scaron/go-go1.4.2/include/plan9/utf.h:5 > /usr/scaron/go-go1.4.2/include/plan9/libc.h:7 > /usr/scaron/go-go1.4.2/src/lib9/fmt/charstod.c:20 Unterminated string or > char const > go tool dist: FAILED: /bin/8c -FTVwp -DPLAN9 -D__STDC__=1 > -D__SIZE_TYPE__=ulong -I/usr/scaron/go-go1.4.2/include/plan9 > -I/usr/scaron/go-go1.4.2/include/plan9/386 -DPLAN9PORT -I > /usr/scaron/go-go1.4.2/src/lib9 -o $WORK/dorfmt.8 > /usr/scaron/go-go1.4.2/src/lib9/fmt/dorfmt.c: > '/usr/scaron/go-go1.4.2/pkg/obj/plan9_386/lib9.a' does not exist > go tool dist: FAILED: /bin/8c -FTVwp -DPLAN9 -D__STDC__=1 > -D__SIZE_TYPE__=ulong -I/usr/scaron/go-go1.4.2/include/plan9 > -I/usr/scaron/go-go1.4.2/include/plan9/386 -DPLAN9PORT -I > /usr/scaron/go-go1.4.2/src/lib9 -o $WORK/flag.8 > /usr/scaron/go-go1.4.2/src/lib9/flag.c: > '/usr/scaron/go-go1.4.2/pkg/obj/plan9_386/lib9.a' does not exist > cpp: /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:227 > /usr/scaron/go-go1.4.2/include/plan9/../utf.h:1 > /usr/scaron/go-go1.4.2/include/plan9/utf.h:5 > /usr/scaron/go-go1.4.2/include/plan9/libc.h:7 > /usr/scaron/go-go1.4.2/src/lib9/fmt/dofmt.c:20 Unterminated string or char > const > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/fmt/charstod.c:152] > external redeclaration of: Rune > TYPEDEF UINT > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/fmt/charstod.c:152] > TYPEDEF USHORT > /386/include/u.h:11[/usr/scaron/go-go1.4.2/src/lib9/fmt/charstod.c:21] > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/fmt/dofmt.c:152] > external redeclaration of: Rune > TYPEDEF UINT > /usr/scaron/go-go1.4.2/include/plan9/../../src/lib9/utf/utf.h:19[/usr/scaron/go-go1.4.2/src/lib9/fmt/dofmt.c:152] > TYPEDEF USHORT > /386/include/u.h:11[/usr/scaron/go-go1.4.2/src/lib9/fmt/dofmt.c:21] > go tool dist: FAILED: /bin/8c -FTVwp -DPLAN9 -D__STDC__=1 > -D__SIZE_TYPE__=ulong -I/usr/scaron/go-go1.4.2/include/plan9 > -I/usr/scaron/go-go1.4.2/include/plan9/386 -DPLAN9PORT -I > /usr/scaron/go-go1.4.2/src/lib9 -o $WORK/charstod.8 > /usr/scaron/go-go1.4.2/src/lib9/fmt/charstod.c: > '/usr/scaron/go-go1.4.2/pkg/obj/plan9_386/lib9.a' does not exist > go tool dist: FAILED: /bin/8c -FTVwp -DPLAN9 -D__STDC__=1 > -D__SIZE_TYPE__=ulong -I/usr/scaron/go-go1.4.2/include/plan9 > -I/usr/scaron/go-go1.4.2/include/plan9/386 -DPLAN9PORT -I > /usr/scaron/go-go1.4.2/src/lib9 -o $WORK/dofmt.8 > /usr/scaron/go-go1.4.2/src/lib9/fmt/dofmt.c: > '/usr/scaron/go-go1.4.2/pkg/obj/plan9_386/lib9.a' does not exist > > At that point the build fails and I drop back to the rc prompt. > > While the example I cite above is for version 1.4.2, I believe the failure > mode is pretty much the same for both earlier and later versions that I've > tried to build. > > Is my Plan 9 installation "too old"? I'm using pretty bog-standard Fourth > Edition on this particular instance; 9atom doesn't seem to get along with > VMware ESXi (at least, not last time I checked). > > Any help greatly appreciated! I'd love to be able to use Go within Plan 9. > > Thanks, > > Sean > > >