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