On Thu, Sep 14, 2017 at 3:19 PM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > >> I've committed a patch to libgo to upgrade it to the recent Go 1.9 release. >> >> As usual with these upgrades, the patch is too large to attach here. >> I've attached the changes to files that are more or less specific to >> gccgo. >> >> This upgrade required some changes to the gotools Makefile. And one >> test had to be updated. These patches are also below. >> >> Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed >> to mainline. > > the patch broke Solaris bootstrap: > > /vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_unix.go:240:11: error: > reference to undefined name 'forkExecPipe' > if err = forkExecPipe(p[:]); err != nil { > ^ > > libgo/go/syscall/forkpipe_bsd.go is needed on Solaris, too. > > /vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:73:10: > error: use of undefined type 'lifnum' > lifn := lifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES > | sysLIFC_UNDER_IPMP} > ^ > make[8]: *** [Makefile:3349: golang_org/x/net/lif.lo] Error 1 > > The Go 1.9 upgrade patch has > > @@ -70,7 +70,7 @@ func Links(af int, name string) ([]Link, > > func links(eps []endpoint, name string) ([]Link, error) { > var lls []Link > - lifn := sysLifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | > sysLIFC_AL > LZONES | sysLIFC_UNDER_IPMP} > + lifn := lifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | > sysLIFC_ALLZO > NES | sysLIFC_UNDER_IPMP} > > Reverting that allows link.go to compile. > > /vol/gcc/src/hg/trunk/local/libgo/go/internal/poll/fd_unix.go:366:21: error: > reference to undefined identifier 'syscall.ReadDirent' > n, err := syscall.ReadDirent(fd.Sysfd, buf) > ^ > > I don't yet see where this comes from on non-Linux systems...
It's in forkpipe_bsd.go. Does this patch fix the problem? Ian
diff --git a/libgo/go/syscall/forkpipe_bsd.go b/libgo/go/syscall/forkpipe_bsd.go index d4180722..28897bfd 100644 --- a/libgo/go/syscall/forkpipe_bsd.go +++ b/libgo/go/syscall/forkpipe_bsd.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly netbsd openbsd +// +build darwin dragonfly netbsd openbsd solaris package syscall