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 <sca...@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
>
>
>

Reply via email to