[Rd] Progress report on 64-bit builds under Windows

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Jul 16 10:48:16 CEST 2007

We have been asked for a couple of years about builds of R for 
64-bit Windows, e.g. at UserR 2006.  Users of 64-bit Windows still 
seem very thin on the ground, but apparently

   'Microsoft scraps 32-bit operating systems

   Microsoft has announced that Windows Server 2008 will be the last 32-bit
   system it releases, for servers or clients, as it makes its way fully
   into the world of 64-bit computing.'


I've not heard recently of any programmeR working on such a build.

I have Vista 64 on my current Windows desktop, intending it to be my main 
Windows platform (the machine also has Windows XP).  With the current 
Rtools.exe I am successfully doing R development on it (e.g. the only 
CRAN package that I can install under XP but not Vista 64 is RSQLite, an 
internal problem in dlltool).

A 64-bit version of R could be just a sub-architecture: only the binaries 
in R_HOME/bin and DLLs in R_HOME/modules and library/*/libs need to be 
different.  So in an ideal world we would be able to distribute binary 
packages that supported both 32- and 64-bit builds, and to build those on 
a single OS via 32/64-bit cross-compilers.  Quite a number of packages 
need support software of course: one of those is Tcl/Tk. (That is built 
using VC++, so presumably could be built using a 64-bit edition of VC++: 
see below.  Similarly iconv.dll.)

1) The good news is that under Vista 64 you get a 4GB address space for 
the current builds of R, rather than 2GB for most 32-bit versions of 
Windows, or 3GB if the /3GB switch was used.  So there is a worthwhile 
gain in using a 64-bit OS even with a 32-bit build of R.

2) To make a 64-bit build of R we need a 64-bit toolchain.  Kai Tietz has 
been working on versions of gcc and binutils, see


This is essentially a cross-compiler running under Cygwin.  I didn't 
succeed in getting that to build, but did build a cross-compiler chain 
under x86_64 Linux and built simple C programs that run correctly.  This 
enabled me to try building R.  There were several problems:

- most Fortran programs give an ICE (internal compiler error).
- importing a variable from a DLL gives an ICE.
- a couple of modules gave ICEs if optimization was used.
- the headers have many problems, with broken attempts at inlining and
   missing declarations.
- R itself will need some changes, as on Win64 'long' is 32-bit and cannot
   store a pointer.

Given that the toolchain is a one-man effort, I do not see these getting 
resolved soon.

3) An alternative is to use a non-GNU toolchain, e.g. from Microsoft, 
Intel or PGI (formerly Portland).  There seems no longer to be a Fortran 
compiler compatible with Microsoft Visual Studio (formerly from 
DEC/Compaq/HP), but Intel and PGI have Fortran compilers, at a price.
Someone from Microsoft reported that he had built a 64-bit version of R, 
but gave an invalid return address and we have not been able to find out 
how he did it.

There is a free (but not Free) version of Visual Studio 2005 that is said 
to be 32-bit only, but I have discovered that the free Vista Platform SDK 
contains a 64-bit toolchain.  (I have full Visual Studio 2005, which has 
64-bit and 64-bit on 32-bit and v.v. cross-compilers.)  So I believe it 
should be possible to build a 64-bit version of R using Microsoft 
compilers and f2c, and may try to do so over the summer.

Is there anyone working on (or interested in working on) these issue?

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list