Skip to content

Problem compiling R library on FC4 ( conflicting declaration in Rinterface.h and stdint.h)

5 messages · Brian Ripley, Saptarshi Guha, Marc Schwartz

#
Hello,
The package builds successfully on RHEL5 and OS X( 64 bit,32/64
respectively) but on FC4(32 bit) it fails with this error

g++ -m32 -I/usr/include/R  -I/usr/local/include    -fpic  -O2 -g -pipe
-Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic
-fasynchronous-unwind-tables -I. -g  `pkg-config --cflags protobuf`
-Wall -c display.cc -o display.o

/usr/include/R/Rinterface.h:84: error: conflicting declaration
'typedef long unsigned int uintptr_t'
/usr/include/stdint.h:129: error: 'uintptr_t' has a previous
declaration as 'typedef unsigned int uintptr_t'


display.cc includes a header file ream.h which has

#ifndef __ream_h
#define __ream_h

#include <iostream>
#include <google/protobuf/stubs/common.h>

#include <rexp.pb.h>
#include <stdint.h>  //commenting this does not make a difference
#include <sys/types.h>
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>

#define R_NO_REMAP
#define R_INTERFACE_PTRS 1
#define CSTACK_DEFNS 1

#include <Rversion.h>
#include <R.h>
#include <Rdefines.h>

#include <Rinterface.h>
#include <Rembedded.h>
#include <R_ext/Boolean.h>
#include <R_ext/Parse.h>
#include <R_ext/Rdynload.h>


Thanks
Saptarshi
#
FC4?  Really?

That has not been supported in over 3 years.

The only versions of Fedora currently supported are 11 and 12. You  
need to get that machine updated.

My vague recollection was that there were a variety of fortran  
compiler issues around that time (circa 2005/2006) with FC4, though I  
could not locate anything specific regarding the error message you are  
observing.

Get your computer updated to a current version of Fedora, if that is  
the Linux distribution you wish to stay with. Trying to debug compiler  
problems on a Linux distribution that itself has not been supported in  
a long time is asking for trouble.

Marc Schwartz
On Dec 26, 2009, at 3:41 PM, Saptarshi Guha wrote:

            
#
On Sat, 26 Dec 2009, Marc Schwartz wrote:

            
That was my reaction, but I think there may be another problem.  The 
subject line said 'R library', the body said 'The package'.  What are 
we talking about here?  Rinterface.h is intended for alternative 
front-ends (see the comments in the file), and there ought to be a 
configure script in such front-ends, defining e.g. HAVE_UINTPTR_T.

We were not told the version of R: maybe that is equally old?
(S)he is using C++.

  
    
#
My apologies all around, I'm using FC8.
The code is both a library and a frontend, I couldn't recall the word frontend.
I'm building this on Amazon EC2 32bit FC8 AMI, so will dig around.
Regards
Saptarshi
R-2.8
#
On Dec 27, 2009, at 1:01 AM, Prof Brian Ripley wrote:

            
Indeed. For some reason I saw the 'g++' below and combined with my  
recollections of FC4, my brain translated that to g77.

Thanks for noting that.

Marc