--- src/engine.c.orig 2014-08-28 12:50:56.086307943 +0000 +++ src/engine.c 2014-08-28 12:50:59.496333650 +0000 @@ -209,24 +209,24 @@ evaluateTriggers (Display* d) { #else /* VMS */ if (lockerPid) { -#if !defined (UTEKV) && !defined (SYSV) && !defined (SVR4) +#if (!defined (UTEKV) && !defined (SYSV) && !defined (SVR4)) && defined (__GLIBC__) union wait status; /* childs process status */ -#else /* !UTEKV && !SYSV && !SVR4 */ +#else /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */ int status = 0; /* childs process status */ -#endif /* !UTEKV && !SYSV && !SVR4 */ +#endif /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */ if (unlockNow && !disabled) { (void) kill (lockerPid, SIGTERM); } -#if !defined (UTEKV) && !defined (SYSV) && !defined (SVR4) +#if (!defined (UTEKV) && !defined (SYSV) && !defined (SVR4)) && defined (__GLIBC__) if (wait3 (&status, WNOHANG, 0)) -#else /* !UTEKV && !SYSV && !SVR4 */ +#else /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */ if (waitpid (-1, &status, WNOHANG)) -#endif /* !UTEKV && !SYSV && !SVR4 */ +#endif /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */ { /* * If the locker exited normally, we disable any pending kill * trigger. Otherwise, we assume that it either has crashed or