[kaffe] Build failure of CVS head for i386/NetBSD

Ito Kazumitsu kaz at maczuka.gcd.org
Mon Jan 15 16:41:59 PST 2007


Hi,

From: Kiyo Inaba <inaba at src.ricoh.co.jp>
Subject: [kaffe] Build failure of CVS head for i386/NetBSD
Date: Mon, 15 Jan 2007 14:58:58 +0900 (JST)

> As Kaz suggested, I modified as attached patch and the build get success.
> But for cpnet.c, this patch omit one feature which is originally provided.
> I have no idea (except with private signal handler) how to add NOPIPE
> flag for send, if it is not provided by the OS...
> 
> It looks like this 'patch' also solve m68k/NetBSD configure problem.
> 
> Any better idea which really fix the cpnet.c's problem?

I think cpnet.c needs further review.  It will not work properly
on FreeBSD 5.4-RELEASE, either.

#if defined (HAVE_MSG_NOSIGNAL)
#define SOCKET_NOSIGNAL MSG_NOSIGNAL
#elif defined (HAVE_SO_NOSIGPIPE)
#define SOCKET_NOSIGNAL SO_NOSIGPIPE
#else
#error "No suitable flag found to ommit a SIGPIPE on signal errors with send()."
#endif

ret = send(fd, data, len, SOCKET_NOSIGNAL);

FreeBSD 5.4-RELEASE:
  HAVE_MSG_NOSIGNAL     false
  HAVE_SO_NOSIGPIPE     true   0x0800

SO_NOSIGPIPE (0x0800) is set to SOCKET_NOSIGNAL and is used as an option
to send.  But SO_NOSIGPIPE is a socket level option which should be used
with setsockopt.  0x0800 used as an option to send will not have any
effect, or may have some unexpected effects.

Anyway, this is a GNU Classpath issue.  I will report a bug about this
to GNU Classpath.




More information about the kaffe mailing list