Skip to content

windows 64-bit package build on 32-bit machine

6 messages · Simon Urbanek, Michael Spiegel, Hervé Pagès +1 more

#
Hello,

Is it possible to build a 64-bit package on a 32-bit machine on
windows? I can cross-compile for x86, x86_64, and ppc on a 32-bit OS X
machine.  And it looks like I could build a 32-bit library on a 64-bit
windows machine.  But it doesn't look possible to build a 64-bit
library on a 32-bit windows machine?

Thanks,
--Michael
#
On Oct 26, 2010, at 9:04 PM, Michael Spiegel wrote:

            
Why not? It works for me without problems ...

Cheers,
Simon
#
Hmm.  So our package does not have no src/Makefile.win and only an
empty configure.win.  We usually build a binary version with R CMD
INSTALL --build.

R --arch x64 CMD INSTALL --build yields the message "The system cannot
find the path specified."

On Tue, Oct 26, 2010 at 10:41 PM, Simon Urbanek
<simon.urbanek at r-project.org> wrote:
#
Hi Michael,

My understanding is that this should work.
According to section "D.4.2 64-bit toolchain" of the "R Installation
and Administration" manual:

   The toolchain we use is technically a cross-compiler: the tools run
   under 32-bit Windows but produce code to run under 64-bit Windows.

BTW, as reported here 
https://stat.ethz.ch/pipermail/r-devel/2010-June/057668.html
in June, the following links in the Table of Contents of this manual
are broken:

   3.1.10 64-bit Windows builds
   C.4.1 64-bit Leopard builds
   D.4.1 32-bit toolchain
   D.4.2 64-bit toolchain

Seems like only the sections with a title starting with a digit have
this problem.

Cheers,
H.
On 10/26/2010 06:04 PM, Michael Spiegel wrote:

  
    
#
On Tue, 26 Oct 2010, Simon Urbanek wrote:

            
Depends what is meant by 'build': I would pretty sure it does not mean 
'R CMD build': it might mean R CMD INSTALL --build.

What you can't do is test loading, so you need INSTALL --no-test-load. 
Multi-arch packages only test loading for the primary architecture, 
which is why you can install for ppc on Intel Mac OS X machines.  So 
you can INSTALL bi-arch packages on Windows on an i386 OS, but you 
cannot fully install a '64-bit package on a 32-bit machine on 
windows'.

Given that almst everybody who wants to distribute 64-bit packages 
nowadays wants bi-arch packages and needs access to a 64-bit OS for 
testing, we don't bother to test and document what other combinations 
might be possible.  (We don't make it easy for you to install a 
bi-arch R on a 32-bit OS either, to avoid end-user mistakes leading to 
increased support demands.)
#
On Oct 26, 2010, at 11:10 PM, Michael Spiegel wrote:

            
Well, it probably means you don't have x64 binaries in your R - that has nothing to do with cross-compilation. You should make sure that you have both i386 and x64 archs in your R to start with.

Also I would not expect R --arch x64 to work regardless since you can't run 64-bit binary of R on 32-bit Windows. The same applies on OS X - you can cross compile for ppc64 (i.e. install multi-arch if the package has no Makefile/configure) but you can't run ppc64 R on Intel Macs (and hence you cannot install packages with configure/Makefile).

Cheers,
Simon