Thanks, Skip. That would follow; this system is probably straight Fourth Edition, certainly an old ISO...

I've never been 100% clear on the process for running updates; can I bring myself up to current from where I'm at now and not have to reload or build a fresh system? It's a VM and I can snapshot so I'm willing to give anything a try ...

I'm looking at the directions in a (cached copy) of http://plan9.bell-labs.com/wiki/plan9/Staying_up_to_date/index.html...

Is that still valid? What's the canonical procedure these days for updating a system?

If that's roughly correct ... I'm running a single Plan 9 machine, combined CPU and fileserver ... I run that command as the bootes user on the system console?

Thanks!

Sean


On Tue, Jan 26, 2016 at 5:05 PM, Skip Tavakkolian <skip.tavakkolian@gmail.com> wrote:
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 <scaron@umich.edu> 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