Ian Lance Taylor <[email protected]> writes:
> On Thu, Jan 15, 2015 at 8:30 AM, Rainer Orth
> <[email protected]> wrote:
>>
>> This (and perhaps the previous gotools) patch broke Solaris bootstrap:
>>
>> /vol/gcc/src/hg/trunk/local/libgo/go/net/tcpsockopt_unix.go:23:73: error:
>> reference to undefined identifier 'syscall.TCP_KEEPINTVL'
>> if err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP,
>> syscall.TCP_KEEPINTVL, secs); err != nil {
>> /vol/gcc/src/hg/trunk/local/libgo/go/net/tcpsockopt_unix.go:26:103:
>> error: reference to undefined identifier 'syscall.TCP_KEEPIDLE'
>> return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd,
>> syscall.IPPROTO_TCP, syscall.TCP_KEEPIDLE, secs))
>> make[4]: *** [net.lo] Error 1
>>
>> The following patch fixes this:
>
> That's interesting--would you mind looking into this just a bit more?
> What version of Solaris was this? In the gc version of the library,
> those symbols are defined for Solaris. TCP_KEEPINTVL is 0x24 and
> TCP_KEEPIDLE is 0x22. I just want to make sure that they are really
> not defined on your system, and the problem is not that mksysinfo is
> somehow failing to handle the definition.
I'd checked this before and did some more archaeology now: on Solaris
11.2, <netinet/tcp.h> has
#define TCP_INFO 0x22 /* connection information */
and 0x24 isn't defined yet.
OTOH, on Illumos (one of the OpenSolaris derivatives) I find
#define TCP_KEEPIDLE 0x22
#define TCP_KEEPINTVL 0x24
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University