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
 

Reply via email to