[Rd] R-beta_2010-10-02_r53128 fails to compile on FreeBSD

Peter Dalgaard pdalgd at gmail.com
Sun Oct 3 18:38:05 CEST 2010

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

#include <sys/wait.h>

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

More information about the R-devel mailing list