Re: [Rd] Error compiling on HP-UX

From: Hin-Tak Leung <hin-tak.leung_at_cimr.cam.ac.uk>
Date: Mon 18 Dec 2006 - 16:42:10 GMT

Peter Dalgaard wrote:

> Pascal A. Niklaus wrote:

>> Dear all,
>>
>> I hope this is the right mailing list for my question -- I felt that this was
>> too technical for R-help.
>>
>> I am trying to compile R-2.4.0 on a HP-UX system:
>>
>> ./configure
>> MAKE=gmake --prefix=$HOME --without-x --without-tcltk --disable-R-profiling --without-readline --disable-multibyte
>>
>> R is now configured for ia64-hp-hpux11.23
>>
>> Source directory: .
>> Installation directory: /home/agrl/pniklaus
>>
>> C compiler: gcc -g -O2 -std=gnu99
>> Fortran 77 compiler: f90 -g
>>
>> C++ compiler: g++ -g -O2
>> Fortran 90/95 compiler: f90 -g
>>
>> Interfaces supported:
>> External libraries:
>> Additional capabilities: NLS
>> Options enabled: shared BLAS
>>
>> Recommended packages: yes
>>
>> gmake gives me the following error:
>>
>> gcc -I../../src/extra/zlib -I../../src/extra/bzip2 -I../../src/extra/pcre -I. -I../../src/include -I../../src/include -I/home/agrl/pniklaus/include -DHAVE_CONFIG_H -g -O2 -std=gnu99 -c
>> platform.c -o platform.o
>> In file included from /usr/include/netdb.h:69,
>> from platform.c:1428:
>> /usr/include/sys/socket.h:535: error: static declaration of 'sendfile' follows
>> non-static declaration
>> /usr/include/sys/socket.h:506: error: previous declaration of 'sendfile' was
>> here
>> /usr/include/sys/socket.h:536: error: static declaration of 'sendpath' follows
>> non-static declaration
>> /usr/include/sys/socket.h:508: error: previous declaration of 'sendpath' was
>> here
>>
>> I am not sure whether this is a problem with the platform's installed
>> libraries or with the way R includes these files. Including netdb.h alone in
>> a test file does not result in any error.
>>
>>
> This sits in the include file: We have unconditional declarations
>    extern sbsize_t sendfile __((int, int, off_t, bsize_t,
>                                const struct iovec *, int));
>    extern sbsize_t sendpath __((int, char *, off_t, bsize_t,
>                                const struct iovec *, int));
> 
> and then later on
> 
> #ifdef __STDC__
> static sbsize_t sendfile __((int, int, off_t, bsize_t, const struct
> iovec *, int));
> static sbsize_t sendpath __((int, char *, off_t, bsize_t, const struct
> iovec *, int));
> ...
> 
> which I guess is detected as an error by the gcc compiler. There might
> be a way of turning this check off, but I can't spot any in my man page
> for gcc.

That's not quite all there is. The first two are unconditional, but the next two are within some deep nested ifdef blocks - __STC__ is defined as it should be (I think you can switch this off by defining K&R in gcc, but honestly you do *not* want that), __cplusplus is not defined as it
should not be, but I do not understand why/where _APP32_64BIT_OFF_T is defined:


#ifdef _APP32_64BIT_OFF_T
#ifndef __cplusplus
#ifdef __STDC__

static sbsize_t sendfile __((int, int, off_t, bsize_t, const struct iovec *, int));
static sbsize_t sendpath __((int, char *, off_t, bsize_t, const struct iovec *, int));
#else /* __STDC__ */
static sbsize_t sendfile(a,b,c,d,e,f) int a,b,f; off_t c; bsize_t d; __const struct iovec * e; { return __sendfile64(a,b,c,d,e,f\ ); }
static sbsize_t sendpath(a,b,c,d,e,f) int a,f; char *b; off_t c; bsize_t d; __const struct iovec * e; { return __sendpath64(a,b,\
c,d,e,f); }
#endif /* __STDC__ */
#endif /* __cplusplus */
#endif /* _APP32_64BIT_OFF_T */
===========================

>> I have put config.h, config.log and the socket.h files on the web:
>>
>> http://azug.minpet.unibas.ch/~pascal/R/config.log
>> http://azug.minpet.unibas.ch/~pascal/R/config.h
>> http://azug.minpet.unibas.ch/~pascal/R/socket.h
>>
>> Is there any further information I can provide
>>

> 
> The gcc version might be helpful

>> Thank you for your help
>>
>> Pascal Niklaus
>>
>> ______________________________________________
>> R-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
>

R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Tue Dec 19 03:46:25 2006

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 Tue 19 Dec 2006 - 17:30:55 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.