Hi Ian, > 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... Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University
diff --git a/libgo/go/golang_org/x/net/lif/link.go b/libgo/go/golang_org/x/net/lif/link.go --- a/libgo/go/golang_org/x/net/lif/link.go +++ b/libgo/go/golang_org/x/net/lif/link.go @@ -70,7 +70,7 @@ func Links(af int, name string) ([]Link, func links(eps []endpoint, name string) ([]Link, error) { var lls []Link - lifn := lifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP} + lifn := sysLifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP} lifc := lifconf{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP} for _, ep := range eps { lifn.Family = uint16(ep.af) diff --git a/libgo/go/syscall/forkpipe_bsd.go b/libgo/go/syscall/forkpipe_bsd.go --- 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