libgo patch committed: Update to Go1.8rc1
Rainer Orth
ro@CeBiTec.Uni-Bielefeld.DE
Mon Jan 16 15:22:00 GMT 2017
Hi Ian,
> On Sun, Jan 15, 2017 at 3:12 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> In file included from ../../../libgo/runtime/runtime.h:113:0,
>> from ../../../libgo/runtime/go-libmain.c:15:
>> ./runtime.inc:650:8: error: redefinition of 'struct siginfo'
>> struct siginfo {
>> ^~~~~~~
>> In file included from /usr/include/signal.h:79:0,
>> from ../../../libgo/runtime/runtime.h:9,
>> from ../../../libgo/runtime/go-libmain.c:15:
>> /usr/include/bits/siginfo.h:46:16: note: originally defined here
>> typedef struct siginfo
>> ^~~~~~~
>> In file included from ../../../libgo/runtime/runtime.h:113:0,
>> from ../../../libgo/runtime/go-main.c:17:
>> ./runtime.inc:650:8: error: redefinition of 'struct siginfo'
>> struct siginfo {
>> ^~~~~~~
>> In file included from /usr/include/signal.h:79:0,
>> from ../../../libgo/runtime/runtime.h:9,
>> from ../../../libgo/runtime/go-main.c:17:
>> /usr/include/bits/siginfo.h:46:16: note: originally defined here
>> typedef struct siginfo
>> ^~~~~~~
>> In file included from ../../../libgo/runtime/runtime.h:113:0,
>> from ../../../libgo/runtime/aeshash.c:7:
>> ./runtime.inc:650:8: error: redefinition of 'struct siginfo'
>> struct siginfo {
>> ^~~~~~~
>> In file included from /usr/include/signal.h:79:0,
>> from ../../../libgo/runtime/runtime.h:9,
>> from ../../../libgo/runtime/aeshash.c:7:
>> /usr/include/bits/siginfo.h:46:16: note: originally defined here
>> typedef struct siginfo
>> ^~~~~~~
>> make[4]: *** [libgobegin_a-go-main.o] Error 1
>
> Thanks. I committed this patch, which I think should fix the problem.
> Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.
I'm getting further on Solaris now, but the build still fails:
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/syscall.go:16:3: error: procIoctl is not a function; //go:linkname is only supported for functions
//go:linkname procIoctl libc_ioctl
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:27:43: error: reference to undefined name 'sysAF_INET'
func (a *Inet4Addr) Family() int { return sysAF_INET }
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:37:43: error: reference to undefined name 'sysAF_INET6'
func (a *Inet6Addr) Family() int { return sysAF_INET6 }
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:59:12: error: use of undefined type 'lifreq'
var lifr lifreq
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:61:8: error: reference to field 'Name' in object which has no fields or methods
lifr.Name[i] = int8(ll.Name[i])
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:64:17: error: reference to undefined name 'sysSIOCGLIFADDR'
ioc := int64(sysSIOCGLIFADDR)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:69:12: error: reference to undefined name 'sockaddrStorage'
sa := (*sockaddrStorage)(unsafe.Pointer(&lifr.Lifru[0]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:69:11: error: expected pointer
sa := (*sockaddrStorage)(unsafe.Pointer(&lifr.Lifru[0]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:69:49: error: reference to field 'Lifru' in object which has no fields or methods
sa := (*sockaddrStorage)(unsafe.Pointer(&lifr.Lifru[0]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:70:37: error: reference to field 'Lifru1' in object which has no fields or methods
l := int(littleEndian.Uint32(lifr.Lifru1[:4]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:75:9: error: reference to undefined name 'sysAF_INET'
case sysAF_INET:
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:77:23: error: reference to field 'Lifru' in object which has no fields or methods
copy(a.IP[:], lifr.Lifru[4:8])
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:79:9: error: reference to undefined name 'sysAF_INET6'
case sysAF_INET6:
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:80:71: error: reference to field 'Lifru' in object which has no fields or methods
a := &Inet6Addr{PrefixLen: l, ZoneID: int(littleEndian.Uint32(lifr.Lifru[24:28]))}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:81:23: error: reference to field 'Lifru' in object which has no fields or methods
copy(a.IP[:], lifr.Lifru[8:24])
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/lif.go:27:15: error: reference to undefined name 'sysAF_INET'
afs := []int{sysAF_INET, sysAF_INET6}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/lif.go:27:27: error: reference to undefined name 'sysAF_INET6'
afs := []int{sysAF_INET, sysAF_INET6}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/lif.go:28:11: error: reference to undefined name 'sysAF_UNSPEC'
if af != sysAF_UNSPEC {
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/lif.go:32:32: error: reference to undefined name 'sysSOCK_DGRAM'
s, err := syscall.Socket(af, sysSOCK_DGRAM, 0)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/address.go:59:12: error: use of undefined type 'lifreq'
var lifr lifreq
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:30:7: error: reference to field 'Name' in object which has no fields or methods
lifr.Name[i] = int8(ll.Name[i])
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:32:15: error: reference to undefined name 'sysSIOCGLIFINDEX'
ioc := int64(sysSIOCGLIFINDEX)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:34:42: error: reference to field 'Lifru' in object which has no fields or methods
ll.Index = int(littleEndian.Uint32(lifr.Lifru[:4]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:36:14: error: reference to undefined name 'sysSIOCGLIFFLAGS'
ioc = int64(sysSIOCGLIFFLAGS)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:38:42: error: reference to field 'Lifru' in object which has no fields or methods
ll.Flags = int(littleEndian.Uint64(lifr.Lifru[:8]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:40:14: error: reference to undefined name 'sysSIOCGLIFMTU'
ioc = int64(sysSIOCGLIFMTU)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:42:40: error: reference to field 'Lifru' in object which has no fields or methods
ll.MTU = int(littleEndian.Uint32(lifr.Lifru[:4]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:45:7: error: reference to undefined name 'sysIFT_IPV4'
case sysIFT_IPV4, sysIFT_IPV6, sysIFT_6TO4:
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:45:20: error: reference to undefined name 'sysIFT_IPV6'
case sysIFT_IPV4, sysIFT_IPV6, sysIFT_6TO4:
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:45:33: error: reference to undefined name 'sysIFT_6TO4'
case sysIFT_IPV4, sysIFT_IPV6, sysIFT_6TO4:
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:47:15: error: reference to undefined name 'sysSIOCGLIFHWADDR'
ioc = int64(sysSIOCGLIFHWADDR)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:49:35: error: reference to field 'Lifru' in object which has no fields or methods
ll.Addr, _ = parseLinkAddr(lifr.Lifru[4:])
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:73:27: error: reference to undefined name 'sysLIFC_NOXMIT'
lifn := sysLifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:73:44: error: reference to undefined name 'sysLIFC_TEMPORARY'
lifn := sysLifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:73:64: error: reference to undefined name 'sysLIFC_ALLZONES'
lifn := sysLifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:73:83: error: reference to undefined name 'sysLIFC_UNDER_IPMP'
lifn := sysLifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:73:10: error: use of undefined type 'sysLifnum'
lifn := sysLifnum{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:74:25: error: reference to undefined name 'sysLIFC_NOXMIT'
lifc := lifconf{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:74:42: error: reference to undefined name 'sysLIFC_TEMPORARY'
lifc := lifconf{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:74:62: error: reference to undefined name 'sysLIFC_ALLZONES'
lifc := lifconf{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:74:81: error: reference to undefined name 'sysLIFC_UNDER_IPMP'
lifc := lifconf{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:74:10: error: use of undefined type 'lifconf'
lifc := lifconf{Flags: sysLIFC_NOXMIT | sysLIFC_TEMPORARY | sysLIFC_ALLZONES | sysLIFC_UNDER_IPMP}
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:77:16: error: reference to undefined name 'sysSIOCGLIFNUM'
ioc := int64(sysSIOCGLIFNUM)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:84:32: error: reference to undefined name 'sizeofLifreq'
b := make([]byte, lifn.Count*sizeofLifreq)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:86:27: error: reference to undefined name 'sizeofLifreq'
lifc.Len = lifn.Count * sizeofLifreq
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:88:15: error: reference to undefined name 'sysSIOCGLIFCONF'
ioc = int64(sysSIOCGLIFCONF)
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:94:14: error: reference to undefined name 'lifreq'
lifr := (*lifreq)(unsafe.Pointer(&b[i*sizeofLifreq]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:94:13: error: expected pointer
lifr := (*lifreq)(unsafe.Pointer(&b[i*sizeofLifreq]))
^
/vol/gcc/src/hg/trunk/local/libgo/go/golang_org/x/net/lif/link.go:94:42: error: reference to undefined name 'sizeofLifreq'
lifr := (*lifreq)(unsafe.Pointer(&b[i*sizeofLifreq]))
^
This seems to need a version of defs_solaris.go that works with the
constants and structs living in syscall.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
More information about the Gcc-patches
mailing list