From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26406 invoked by alias); 6 Nov 2015 13:01:27 -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 26149 invoked by uid 89); 6 Nov 2015 13:01:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.3 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,T_RP_MATCHES_RCVD 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; Fri, 06 Nov 2015 13:01:24 +0000 Received: from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 7A54AC58; Fri, 6 Nov 2015 14:01:22 +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 0IsSbmCn4QBl; Fri, 6 Nov 2015 14:01:20 +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 CD0CAC57; Fri, 6 Nov 2015 14:01:19 +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: Fri, 06 Nov 2015 13:01:00 -0000 In-Reply-To: (Ian Lance Taylor's message of "Fri, 30 Oct 2015 18:00:29 -0700") 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/msg00618.txt.bz2 --=-=-= Content-Type: text/plain Content-length: 866 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: --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=gov.patch Content-length: 381 diff --git a/libgo/runtime/go-varargs.c b/libgo/runtime/go-varargs.c --- a/libgo/runtime/go-varargs.c +++ b/libgo/runtime/go-varargs.c @@ -11,6 +11,7 @@ #include #include #include +#include /* The syscall package calls C functions. The Go compiler can not represent a C varargs functions. On some systems it's important --=-=-= Content-Type: text/plain Content-length: 1518 * /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. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University --=-=-=--