On Tiger, TCP_KEEPALIVE only appears if neither _XOPEN_SOURCE nor _POSIX_C_SOURCE is defined. Instead of dealing with other possible ramifications of undefining those, just pop in the TCP_KEEPALIVE definition from . --- fmacros.h.orig +++ fmacros.h @@ -6,7 +6,7 @@ #if defined(__APPLE__) && defined(__MACH__) /* Enable TCP_KEEPALIVE */ -#define _DARWIN_C_SOURCE +#define TCP_KEEPALIVE 0x10 #endif #endif