Re: [Rd] Building R 2.4.1 on IRIX

From: Hin-Tak Leung <hin-tak.leung_at_cimr.cam.ac.uk>
Date: Thu 18 Jan 2007 - 17:43:34 GMT

Peter Dalgaard wrote:

> Atro Tossavainen wrote:

>> Hi,
>>
>> I've got the latest MIPS compilers that are C99 aware (7.4.4).
>>
>> "configure" finishes with:
>>
>> R is now configured for mips-sgi-irix6.5
>>
>> Source directory: .
>> Installation directory: /afs/bi/v/@sys/apps/stats/R/2.4.1
>>
>> C compiler: cc -c99 -OPT:IEEE_NaN_inf=ON -g
>> Fortran 77 compiler: f77 -OPT:IEEE_NaN_inf=ON -g
>>
>> C++ compiler: CC -OPT:IEEE_NaN_inf=ON -g
>> Fortran 90/95 compiler: f90 -g
>>
>> Interfaces supported: X11
>> External libraries: readline
>> Additional capabilities: PNG, JPEG, NLS
>> Options enabled: shared BLAS, R profiling
>>
>> Recommended packages: yes
>>
>> Building R 2.4.1, I stumble across the following error in
>> src/main/complex.c:
>>
>> cc -c99 -I../../src/extra/zlib -I../../src/extra/bzip2 -I../../src/extra/pcre -I. -I../../src/include -I../../src/include -I/afs/bi/p/include -DHAVE_CONFIG_H -OPT:IEEE_NaN_inf=ON -g -c complex.c -o complex.o
>>
>> cc-1143 cc: ERROR File = /usr/include/complex.h, Line = 176
>> Declaration is incompatible with "double cabs(struct __cabs_s)" (declared at
>> line 667 of "/usr/include/math.h").
>>
>> static inline double cabs (double complex z) {return __c99_cabs(z); }
>> ^
>>
>> cc-1143 cc: ERROR File = /usr/include/complex.h, Line = 178
>> Declaration is incompatible with "long double cabsl(struct __cabsl_s)"
>> (declared at line 528 of "/usr/include/math.h").
>>
>> static inline long double cabsl (long double complex z) {return __c99_cabsl(z);}
>> ^
>>
>> 2 errors detected in the compilation of "complex.c".
>> gmake[3]: *** [complex.o] Error 2
>>
>>
>> All ideas for fixing this would be welcome. I'm not subscribed to the
>> mailing list, so personal copies would be appreciated, but I will be
>> monitoring the web archives of the list to catch responses posted to
>> the list only.
>>
> It looks like two system include files are getting into a dogfight. You
> might want to investigate whether you can reproduce the issue with a
> smaller source file, possibly dropping some of the -I directories in
> that cc command line, and submit the issue to the vendor if you get
> convinced that the issue is not actually an R one.
> 
> If this is the case, your best hope is if you can make cc less picky
> about such redefinitions.
> 

Certainly it looks the case. It might also be worth actually looking at the two flighting system header files - occasionally sections are controlled by macros like this:

ifdef _XOPEN_SOURCE
extern void foo(int bar)
#else
static void foo(char bar)
#end

where alternative function prototype definitions are chosen based on macros. It might be possible to resolve the conflict by defining a suitable macro during ./confgure. with something like this:

    CFLAGS="-D_XOPEN_SOURCE" ./configure

(in fact posting the two files somewhere or even e-mailing in might be a good idea - I am not promising I'll look at them in time though, but somebody else might have the time to do it, so it might be a good idea to put it up on a URL and wait...).

HTL



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri Jan 19 04:47:25 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 18 Jan 2007 - 18:31:07 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.