On Fri, Nov 6, 2015 at 5:01 AM, Rainer Orth wrote: > Ian Lance Taylor writes: > >> I have committed a patch to libgo to update it to the Go 1.5 release. >> >> As usual for libgo updates, the actual patch is too large to attach to >> this e-mail message. I've attached the changes to the gccgo-specific >> files. >> >> Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed >> to mainline. >> >> This may cause trouble on non-GNU/Linux operating systems. Please let >> me know about any problems you encounter. > > It does indeed (first tried on i386-pc-solaris2.10): > > * > > /vol/gcc/src/hg/trunk/local/libgo/runtime/go-varargs.c: In function '__go_ioctl': > /vol/gcc/src/hg/trunk/local/libgo/runtime/go-varargs.c:63:10: error: implicit declaration of function 'ioctl' [-Werror=implicit-function-declaration] > return ioctl (d, request, arg); > ^ > > Needs , the following patch works: > > > > * > > /vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_bsd.go:107:7: error: incompatible types in assignment (cannot use type int as type Pid_t) > r1 = raw_getpid() > ^ > > I can cast to Pid_t and this works. The underlying error to me seems > that raw_getpid the in the generated libcalls.go is wrong, casting > c_getpid return value to int while pid_t can be long. > > * > > /vol/gcc/src/hg/trunk/local/libgo/go/net/hook_cloexec.go:13:70: error: reference to undefined identifier 'syscall.Accept4' > accept4Func func(int, int) (int, syscall.Sockaddr, error) = syscall.Accept4 > ^ > > No accept4 on Solaris (and certainly other systems, thence configure > test), but used unconditionally. > > * > > /vol/gcc/src/hg/trunk/local/libgo/go/net/sendfile_solaris.go:78:22: error: reference to undefined identifier 'syscall.Sendfile' > n, err1 := syscall.Sendfile(dst, src, &pos1, n) > ^ > > Only in go/syscall/libcall_linux.go!? > > * > > /vol/gcc/src/hg/trunk/local/libgo/go/net/tcpsockopt_solaris.go:34:103: error: reference to undefined identifier 'syscall.TCP_KEEPALIVE_THRESHOLD' > return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_KEEPALIVE_THRESHOLD, msecs)) > > ^ > > Not in Solaris 10, only Solaris 11 and 12 have it. Thanks for the notes. I committed this patch to address these problems. Ian