This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Recent Go patch broke Solaris bootstrap
- From: Ian Lance Taylor <iant at google dot com>
- To: Rainer Orth <ro at cebitec dot uni-bielefeld dot de>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, "gofrontend-dev at googlegroups dot com" <gofrontend-dev at googlegroups dot com>
- Date: Thu, 14 Nov 2013 12:20:28 -0800
- Subject: Re: Recent Go patch broke Solaris bootstrap
- Authentication-results: sourceware.org; auth=none
- References: <ydd8uwzp0ey dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE> <CAKOQZ8ya7UfDtn9iWwAS7QoUiBr+v5v7VcPThpP9vyPq225skw at mail dot gmail dot com> <yddsiv1llyn dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE> <CAKOQZ8xietRP1aN+E9gbd2VRTWDcF59SY5oXjgza2AXHxoS9-Q at mail dot gmail dot com> <yddob5plkfo dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE>
On Tue, Nov 12, 2013 at 7:16 AM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:
> Ian Lance Taylor <iant@google.com> writes:
>
>> On Tue, Nov 12, 2013 at 6:43 AM, Rainer Orth
>> <ro@cebitec.uni-bielefeld.de> wrote:
>>>
>>> works on Solaris 11, but not on Solaris 9 and 10 which lack
>>> TCP_KEEPALIVE_THRESHOLD.
>>
>> Do they have any facility for changing the keepalive timers?
>
> There's TCP_KEEPALIVE which is already used in tcpsockopt_darwin.go.
OK, great. This patch changes the Solaris code to use the existing
Darwin code. Bootstrapped on x86_64-unknown-linux-gnu, not that that
proves much. Committed to mainline.
Ian
diff -r bfe1d96993b8 libgo/Makefile.am
--- a/libgo/Makefile.am Thu Nov 14 12:13:29 2013 -0800
+++ b/libgo/Makefile.am Thu Nov 14 12:16:15 2013 -0800
@@ -752,7 +752,7 @@
go_net_tcpsockopt_file = go/net/tcpsockopt_darwin.go
else
if LIBGO_IS_SOLARIS
-go_net_tcpsockopt_file = go/net/tcpsockopt_solaris.go
+go_net_tcpsockopt_file = go/net/tcpsockopt_darwin.go
else
go_net_tcpsockopt_file = go/net/tcpsockopt_unix.go
endif
diff -r bfe1d96993b8 libgo/go/net/tcpsockopt_solaris.go
--- a/libgo/go/net/tcpsockopt_solaris.go Thu Nov 14 12:13:29 2013 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package net
-
-import (
- "os"
- "syscall"
- "time"
-)
-
-// Set keep alive period.
-func setKeepAlivePeriod(fd *netFD, d time.Duration) error {
- if err := fd.incref(); err != nil {
- return err
- }
- defer fd.decref()
-
- // The kernel expects milliseconds so round to next highest millisecond.
- d += (time.Millisecond - time.Nanosecond)
- msecs := int(d.Nanoseconds() / time.Millisecond)
-
- return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_KEEPALIVE_THRESHOLD, msecs))
-}