Re: A small thanks to the kFreeBSD porters
Tino Mettler wrote:
> The exact problem was this build failure:
> https://buildd.debian.org/status/fetch.php?pkg=syncevolution&arch=kfreebsd-amd64&ver=1.4.99.4-1&stamp=1414299789
>
> I don't know if SOCK_CLOEXEC is just unavailable on Debian/kFreeBSD (as
> stock FreeBSD seems to support it), or if different includes are
> required.
A good reference for this kind of thing is fxr.watson.org:
http://fxr.watson.org/fxr/trackident?i=SOCK_CLOEXEC
which shows it is understood by the kernel, and defined in FreeBSD's
<sys/socket.h> (requiring -DUSE_BSD to use it, I guess because it's
not POSIX).
Debian GNU/kFreeBSD's <sys/socket.h> comes from glibc however:
https://packages.debian.org/search?arch=kfreebsd-amd64&searchon=contents&keywords=sys%2Fsocket.h
We provide the original FreeBSD header at <sys/kglue/sys/socket.h>
but it is probably not a good idea to use it.
glibc seems to define SOCK_CLOEXEC via "bits" headers on linux and
hurd but not kfreebsd; we could *probably* do likewise but I don't
think we should add it for jessie so late.
Your package seems to assume SOCK_CLOEXEC is always supported. So you
perhaps could just embed the FreeBSD definition e.g.:
#ifdef __FreeBSD_kernel__
#ifndef SOCK_CLOEXEC
#define SOCK_CLOEXEC 02000000
#endif
#endif
But I like that you have added code to support platforms not having
SOCK_CLOEXEC, I think I actually prefer to keep that, for now.
Regards,
--
Steven Chamberlain
steven@pyro.eu.org
Reply to: