Hi Ian, > On Sun, Jan 15, 2017 at 3:12 AM, Andreas Schwab <sch...@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