[Bioc-devel] Bioconductor using 64-bit R build

Seth Falcon sfalcon at fhcrc.org
Wed Jan 6 01:47:10 CET 2010

Hi Fraser,

On 1/5/10 2:44 PM, Fraser Sim wrote:
> I then tried to compile limma which also worked fine. See the sessionInfo
> for confirmation. Unfortunately, when I tried to compile genefilter, it
> failed when compiling the RSQLite package.
> Here is the output.
> ** libs
>    making DLL ...
> gcc -I"C:/Users/fjsim/DOWNLO~1/R-64BI~1/include"
> -DRSQLITE_USE_BUNDLED_SQLITE       -O3 -Wall  -std=gnu99 -c RS-DBI.c -o
> RS-DBI.o
> In file included from RS-DBI.c:19:0:
> RS-DBI.h:45:7: error: conflicting types for 'getpid'
> d:\rtools\mingw64\bin\../lib/gcc/x86_64-pc-mingw32/4.5.0/../../../../x86_64-
> pc-mingw32/include/process.h:150:15: note: previous declaration of 'getpid'
> was here
> make: *** [RS-DBI.o] Error 1
>    ... done
> ERROR: compilation failed for package 'RSQLite'
> * removing 'C:/Users/fjsim/Downloads/R-64Bit-for-Win64/library/RSQLite'

> Any ideas what I should try next to get RSQLite? It would be great to have
> R/Bioconductor working on 64-bit Windows and I'm willing to help out.

So the error seems to indicate a conflict in the definition of the 
return type for getpid.  RS-DBI.h in RSQLite has this:

/* Microsoft Visual C++ uses int _getpid()  */
#ifdef MSVC
#include <process.h>
#define getpid _getpid
#define pid_t int
#include <sys/types.h>
#include <unistd.h>

pid_t getpid();

Now I would not expect a mingw compiler to define MSVC, but I could be 
wrong and that could be where process.h is being included.  This would 
make some sense in that pid_t is probably not an int in win64 and so the 
declaration of getpid() fails.

Or something else is going on related to this.  I don't have an 
environment to test, but am willing to review patches for RSQLite if you 
can find something that works.

Perhaps that's enough to help you start tracking down the issue?

+ seth

Seth Falcon
Program in Computational Biology | Fred Hutchinson Cancer Research Center

More information about the Bioc-devel mailing list