On Fri, Sep 15, 2017 at 5:03 AM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > >>>> 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? >> >> that's true for forkExecPipe and I had this change in the patch I'd >> attached. But what about syscall.ReadDirent? I couldn't find that >> one... > > I've had success with this patch on sparc-sun-solaris2.11 and > i386-pc-solaris2.11. > > I've no idea what's behind upstream's src/syscall/syscall_solaris.go: > > func ReadDirent(fd int, buf []byte) (n int, err error) { > // Final argument is (basep *uintptr) and the syscall doesn't take > nil. > // TODO(rsc): Can we use a single global basep for all calls? > return Getdents(fd, buf, new(uintptr)) > } > > I could find no hint that getdents(2) has an additional basep arg, > neither in OpenSolaris sources nor in Illumos, so I've ignored this > weirdness.
Thanks for sorting this out. I committed your patch. Ian