This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Recent Go patch broke Solaris bootstrap


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))
-}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]