--- killpg.c.orig 2009-11-06 10:36:38.000000000 -0800 +++ killpg.c 2009-11-06 10:41:47.000000000 -0800 @@ -37,6 +37,16 @@ __FBSDID("$FreeBSD: src/lib/libc/compat- #include <signal.h> #include <errno.h> +int __kill(pid_t pid, int sig, int posix); + +#if __DARWIN_UNIX03 +#define _PID1ERR EPERM +#define _POSIXKILL 1 +#else /* !__DARWIN_UNIX03 */ +#define _PID1ERR ESRCH +#define _POSIXKILL 0 +#endif /* !__DARWIN_UNIX03 */ + /* * Backwards-compatible killpg(). */ @@ -44,8 +54,8 @@ int killpg(pid_t pgid, int sig) { if (pgid == 1) { - errno = ESRCH; + errno = _PID1ERR; return (-1); } - return (kill(-pgid, sig)); + return (__kill(-pgid, sig, _POSIXKILL)); }