From vqnguyen at uci.edu  Wed Aug 10 17:37:08 2011
From: vqnguyen at uci.edu (Vinh Nguyen)
Date: Wed, 10 Aug 2011 08:37:08 -0700
Subject: [Rd] build 32-bit R on x86_64?
In-Reply-To: <44C7902F-1807-4873-877C-8CF3CC5D110B@r-project.org>
References: <CA+2Dmwget5gngXcUDU96GuTPFAu42weTm0TSV3HcDuMBQMF1ew@mail.gmail.com>
	<20033.52450.484029.887948@max.nulle.part>
	<44C7902F-1807-4873-877C-8CF3CC5D110B@r-project.org>
Message-ID: <CA+2DmwgERWB+m_JsstpmQgbtYnHJVM66fKLDjXoCdGicpmVmxw@mail.gmail.com>

On Tue, Aug 9, 2011 at 6:24 PM, Simon Urbanek
<simon.urbanek at r-project.org> wrote:
> It actually works ;) I'm using it for testing on my RForge.net machine and yes, it's Debian - everything just works there :).
>
> But back to the original question. First a minor detail, don't set environment variables use configure variables instead. Second, don't build in the source directory, always create an object directory. Third, r_arch is simply a name you set for the architecture, it has no meaning other than that it's a label.
>
> So now to the real stuff. If you want 32-bit build, you'll need 32-bit runtime of everything important in your system and the multilib compilers. In Debian (and thus likely in Ubuntu too) that can be achieved by something like
>
> sudo apt-get install ?ia32-libs-dev lib32readline6-dev lib32ncurses5-dev lib32icu-dev gcc-multilib gfortran-multilib
>
> Then you can build both 64-bit and 32-bit R, the difference will be in the all compiler flags -- for 64-bit you'll use -m64 (or nothing since it's the default) and for 32-bit you'll use -m32.
>
> So roughly something like
>
> tar fxz R-2.13.1.tar.gz
> mkdir obj-32
> cd obj-32
> ../R-2.13.1/configure r_arch=i386 CC='gcc -std=gnu99 -m32' CXX='g++ -m32' FC='gfortran -m32' F77='gfortran -m32'
> make -j24 && sudo make install rhome=/usr/local/R/2.13
> cd ..
> mkdir obj-64
> cd obj-64
> ../R-2.13.1/configure r_arch=amd64
> make -j24 && sudo make install rhome=/usr/local/R/2.13
>
> That will leave you with multi-arch R that you can run with
> R --arch=i386 # 32-bit
> R --arch=amd64 # 64-bit
> Packages will be also built as multi-libs. Good luck :)
> [BTW the rhome=... setting is entirely optional, I just like to keep my R versions organized?]
>
> Cheers,
> Simon
>

Thanks Simon!  Confirm that these instructions work.  ia32-libs-dev
was not available for Ubuntu Natty, so I installed ia32-libs instead,
and the compilation works!

-- Vinh



[Rd] build 32-bit R on x86_64?
Vinh Nguyen