On 10/03/2010 05:58 PM, Prof Brian Ripley wrote: > On Sun, 3 Oct 2010, Rainer Hurling wrote: > > ... >>>> Is this a known error? I would really appreciate if someone could give >>>> me a hint. >>> >>> Not known, and as it is a POSIX construction almost all OSes have it. >> >> Hmmm. It seems its implementation in FreeBSD (CURRENT) is a little different >> from other OSes? >> >>> Can you try (in sysutils.c and sys-unix.c) replacing >>> >>> #ifdef HAVE_SYS_WAIT_H >>> >>> by >>> >>> #if defined(HAVE_SYS_WAIT_H) && defined(WEXITSTATUS) >>> >>> ? >> >> Yes, with this patch in both files all works again. I tried it with >> gcc-4.4.5 >> and gcc-4.5.2. Is there any chance to get it in the release (R-2.12.0)? > > Yes, of course. (After a little more testing on other platforms.) >
Only it strikes me that it might be plugging the wrong hole. I.e., that the real issue is that somehow we're not including sys/wait.h in all cases. Would it perchance also work to have #ifdef HAVE_SYS_WAIT_H #include <sys/wait.h> #endif somewhere at the top of the files that use the two macros (sysutils.c and sys-unix.c AFAICS). "&& defined(WEXITSTATUS)" probably won't break anything that wasn't already broken, but it does insert a default definition that could conflict with the one intended for the OS (that's what include files and macros are for, after all). -- Peter Dalgaard Center for Statistics, Copenhagen Business School Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel