[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
- 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
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