From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 37333 invoked by alias); 8 Nov 2015 17:21:26 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 37324 invoked by uid 89); 8 Nov 2015 17:21:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=2.8 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,T_RP_MATCHES_RCVD,URIBL_BLACK autolearn=no version=3.3.2 X-HELO: smtp.CeBiTec.Uni-Bielefeld.DE Received: from smtp.CeBiTec.Uni-Bielefeld.DE (HELO smtp.CeBiTec.Uni-Bielefeld.DE) (129.70.160.84) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 08 Nov 2015 17:21:23 +0000 Received: from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 49733913; Sun, 8 Nov 2015 18:21:21 +0100 (CET) Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (malfoy.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Dtd+ZqFABSFg; Sun, 8 Nov 2015 18:21:17 +0100 (CET) Received: from fuego.CeBiTec.Uni-Bielefeld.DE (p5DCE07BF.dip0.t-ipconnect.de [93.206.7.191]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 54A21912; Sun, 8 Nov 2015 18:21:17 +0100 (CET) From: Rainer Orth To: Ian Lance Taylor Cc: gcc-patches , "gofrontend-dev\@googlegroups.com" Subject: Re: libgo patch committed: Update to Go 1.5 release References: Date: Sun, 08 Nov 2015 17:21:00 -0000 In-Reply-To: (Ian Lance Taylor's message of "Fri, 6 Nov 2015 11:16:16 -0800") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (usg-unix-v) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-IsSubscribed: yes X-SW-Source: 2015-11/txt/msg00854.txt.bz2 --=-=-= Content-Type: text/plain Content-length: 3032 Ian Lance Taylor writes: > 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. Worked like a charm, thanks. There were two remaining problems: * Before Solaris 12, sendfile only lives in libsendfile. This lead to link failures in gotools. * Solaris 12 introduced a couple more types that use _in6_addr_t, which are filtered out by mksysinfo.sh, leading to compilation failues. The following patch addresses both issues. Solaris 10 and 11 bootstraps have completed, a Solaris 12 bootstrap is still running make check. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=libgo.patch Content-length: 1309 diff --git a/libgo/configure.ac b/libgo/configure.ac --- a/libgo/configure.ac +++ b/libgo/configure.ac @@ -482,6 +482,9 @@ AC_CACHE_CHECK([for socket libraries], l [AC_CHECK_LIB(nsl, main, [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lnsl"])]) unset ac_cv_func_gethostbyname + AC_CHECK_FUNC(sendfile, , + [AC_CHECK_LIB(sendfile, main, + [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lsendfile"])]) LIBS=$libgo_old_libs ]) NET_LIBS="$libgo_cv_lib_sockets" diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -1488,4 +1488,24 @@ grep '^type _zone_net_addr_t ' gen-sysin sed -e 's/_in6_addr/[16]byte/' \ >> ${OUT} +# The Solaris 12 _flow_arp_desc_t struct. +grep '^type _flow_arp_desc_t ' gen-sysinfo.go | \ + sed -e 's/_in6_addr_t/[16]byte/g' \ + >> ${OUT} + +# The Solaris 12 _flow_l3_desc_t struct. +grep '^type _flow_l3_desc_t ' gen-sysinfo.go | \ + sed -e 's/_in6_addr_t/[16]byte/g' \ + >> ${OUT} + +# The Solaris 12 _mac_ipaddr_t struct. +grep '^type _mac_ipaddr_t ' gen-sysinfo.go | \ + sed -e 's/_in6_addr_t/[16]byte/g' \ + >> ${OUT} + +# The Solaris 12 _mactun_info_t struct. +grep '^type _mactun_info_t ' gen-sysinfo.go | \ + sed -e 's/_in6_addr_t/[16]byte/g' \ + >> ${OUT} + exit $? --=-=-= Content-Type: text/plain Content-length: 152 Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University --=-=-=--