R-beta_2010-10-02_r53128 fails to compile on FreeBSD
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.mes at cbs.dk Priv: PDalgd at gmail.com