This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: libgo patch committed: Upgrade to Go 1.9 release
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: Ian Lance Taylor <iant at golang dot org>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, "gofrontend-dev\@googlegroups.com" <gofrontend-dev at googlegroups dot com>
- Date: Fri, 15 Sep 2017 00:19:30 +0200
- Subject: Re: libgo patch committed: Upgrade to Go 1.9 release
- Authentication-results: sourceware.org; auth=none
- References: <CAOyqgcWtfEWF6SAq7qy2tA1gCi5qq-s3znEW=rt4vCVBf5W-5A@mail.gmail.com>
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