Dear R-Devel, I'm using Ubuntu on an x86_64 machine and would like to have both the 32-bit and 64-bit versions of R built from source. By default, following the usual build procedures yields 64 bit R. Looking at [these](http://cran.r-project.org/doc/manuals/R-admin.html#Sub_002darchitectures), I thought I could build 32-bit R by executing r_arch=32 ./configure and building R like usual (make). However, after seeing this error message, /usr/bin/install: cannot create regular file `../../include/32/Rconfig.h': No such file or directory I realize I am misunderstanding the instructions. Could someone please clarify how I could go about compiling both 32-bit and 64-bit versions of R on my Linux machine? Thank you! -- Vinh
build 32-bit R on x86_64?
8 messages · Joris Meys, Dirk Eddelbuettel, Simon Urbanek +1 more
The architecture is called i386. Try r_arch=i386 ./configure That should work. Cheers Joris
On Wed, Aug 10, 2011 at 1:40 AM, Vinh Nguyen <vqnguyen at uci.edu> wrote:
Dear R-Devel, I'm using Ubuntu on an x86_64 machine and would like to have both the 32-bit and 64-bit versions of R built from source. ?By default, following the usual build procedures yields 64 bit R. ?Looking at [these](http://cran.r-project.org/doc/manuals/R-admin.html#Sub_002darchitectures), I thought I could build 32-bit R by executing r_arch=32 ./configure and building R like usual (make). ?However, after seeing this error message, /usr/bin/install: cannot create regular file `../../include/32/Rconfig.h': No such file or directory I realize I am misunderstanding the instructions. ?Could someone please clarify how I could go about compiling both 32-bit and 64-bit versions of R on my Linux machine? ?Thank you! -- Vinh
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Joris Meys Statistical consultant Ghent University Faculty of Bioscience Engineering Department of Applied mathematics, biometrics and process control tel : +32 9 264 59 87 Joris.Meys at Ugent.be ------------------------------- Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
On Tue, Aug 9, 2011 at 4:52 PM, Joris Meys <jorismeys at gmail.com> wrote:
The architecture is called i386. Try r_arch=i386 ./configure That should work. Cheers Joris
Thank you for your response Joris. However, I still get: /usr/bin/install: cannot create regular file `../../include/i386/Rconfig.h': No such file or directory I don't think r_arch necessarily instruct make to build 32-bit versions of R; I think it's more of a prefix in the name.
Hi Vinh,
On 9 August 2011 at 16:40, Vinh Nguyen wrote:
| Dear R-Devel, | | I'm using Ubuntu on an x86_64 machine and would like to have both the | 32-bit and 64-bit versions of R built from source. By default, | following the usual build procedures yields 64 bit R. Looking at | [these](http://cran.r-project.org/doc/manuals/R-admin.html#Sub_002darchitectures), | I thought I could build 32-bit R by executing | | r_arch=32 ./configure | | and building R like usual (make). However, after seeing this error message, | | /usr/bin/install: cannot create regular file | `../../include/32/Rconfig.h': No such file or directory | | I realize I am misunderstanding the instructions. Could someone | please clarify how I could go about compiling both 32-bit and 64-bit | versions of R on my Linux machine? Thank you! I do not think that multiarch build (ie 32 and 64 at the same time) are fully supported yet on Ubuntu or Debian. It is coming, but just like a number of other things, not exactly overnight. It is a release goal. In the meantime, you can always use virtualization. I have a Debian 32-bit system and an Ubuntu 32-bit system in KVM virtualization on my Ubuntu 64-bit server. That works well. Kvm, or Xen, or Virtualbox, or Vmware, ... all offer fairly decent virtualization. Debian/Ubuntu specific questions are even more welcome on r-sig-debian. Dirk
Two new Rcpp classes scheduled for New York and San Francisco, details at http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10
On Aug 9, 2011, at 8:12 PM, Dirk Eddelbuettel wrote:
Hi Vinh, On 9 August 2011 at 16:40, Vinh Nguyen wrote: | Dear R-Devel, | | I'm using Ubuntu on an x86_64 machine and would like to have both the | 32-bit and 64-bit versions of R built from source. By default, | following the usual build procedures yields 64 bit R. Looking at | [these](http://cran.r-project.org/doc/manuals/R-admin.html#Sub_002darchitectures), | I thought I could build 32-bit R by executing | | r_arch=32 ./configure | | and building R like usual (make). However, after seeing this error message, | | /usr/bin/install: cannot create regular file | `../../include/32/Rconfig.h': No such file or directory | | I realize I am misunderstanding the instructions. Could someone | please clarify how I could go about compiling both 32-bit and 64-bit | versions of R on my Linux machine? Thank you! I do not think that multiarch build (ie 32 and 64 at the same time) are fully supported yet on Ubuntu or Debian. It is coming, but just like a number of other things, not exactly overnight. It is a release goal.
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
In the meantime, you can always use virtualization. I have a Debian 32-bit system and an Ubuntu 32-bit system in KVM virtualization on my Ubuntu 64-bit server. That works well. Kvm, or Xen, or Virtualbox, or Vmware, ... all offer fairly decent virtualization. Debian/Ubuntu specific questions are even more welcome on r-sig-debian. Dirk -- Two new Rcpp classes scheduled for New York and San Francisco, details at http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
On 9 August 2011 at 21:24, Simon Urbanek wrote:
|
| On Aug 9, 2011, at 8:12 PM, Dirk Eddelbuettel wrote:
| | > | > Hi Vinh, | >
| > On 9 August 2011 at 16:40, Vinh Nguyen wrote:
| > | Dear R-Devel, | > | | > | I'm using Ubuntu on an x86_64 machine and would like to have both the | > | 32-bit and 64-bit versions of R built from source. By default, | > | following the usual build procedures yields 64 bit R. Looking at | > | [these](http://cran.r-project.org/doc/manuals/R-admin.html#Sub_002darchitectures), | > | I thought I could build 32-bit R by executing | > | | > | r_arch=32 ./configure | > | | > | and building R like usual (make). However, after seeing this error message, | > | | > | /usr/bin/install: cannot create regular file | > | `../../include/32/Rconfig.h': No such file or directory | > | | > | I realize I am misunderstanding the instructions. Could someone | > | please clarify how I could go about compiling both 32-bit and 64-bit | > | versions of R on my Linux machine? Thank you! | > | > I do not think that multiarch build (ie 32 and 64 at the same time) are fully supported yet on Ubuntu or Debian. It is coming, but just like a number of other things, not exactly overnight. It is a release goal. | > | | 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 Nice one :) I had these installed but was always under the impression that we'd lack things like jpeg, png, ... libs. So it all works as R has 'enough batteries' included? Good to know ... | | 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?] I shall keep that for the day I'll have to start supporting multiarch in all the r-cran-* packages :) Thanks for waving the cluebat. Dirk | | Cheers, | Simon | | | | > In the meantime, you can always use virtualization. I have a Debian 32-bit | > system and an Ubuntu 32-bit system in KVM virtualization on my Ubuntu 64-bit | > server. That works well. Kvm, or Xen, or Virtualbox, or Vmware, ... all | > offer fairly decent virtualization. | > | > Debian/Ubuntu specific questions are even more welcome on r-sig-debian. | > | > Dirk | > | > -- | > Two new Rcpp classes scheduled for New York and San Francisco, details at | > http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10 | > | > ______________________________________________ | > R-devel at r-project.org mailing list | > https://stat.ethz.ch/mailman/listinfo/r-devel | > | > |
Two new Rcpp classes scheduled for New York and San Francisco, details at http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10
On Aug 9, 2011, at 9:41 PM, Dirk Eddelbuettel wrote:
On 9 August 2011 at 21:24, Simon Urbanek wrote: | | On Aug 9, 2011, at 8:12 PM, Dirk Eddelbuettel wrote: | | > | > Hi Vinh, | > | > On 9 August 2011 at 16:40, Vinh Nguyen wrote: | > | Dear R-Devel, | > | | > | I'm using Ubuntu on an x86_64 machine and would like to have both the | > | 32-bit and 64-bit versions of R built from source. By default, | > | following the usual build procedures yields 64 bit R. Looking at | > | [these](http://cran.r-project.org/doc/manuals/R-admin.html#Sub_002darchitectures), | > | I thought I could build 32-bit R by executing | > | | > | r_arch=32 ./configure | > | | > | and building R like usual (make). However, after seeing this error message, | > | | > | /usr/bin/install: cannot create regular file | > | `../../include/32/Rconfig.h': No such file or directory | > | | > | I realize I am misunderstanding the instructions. Could someone | > | please clarify how I could go about compiling both 32-bit and 64-bit | > | versions of R on my Linux machine? Thank you! | > | > I do not think that multiarch build (ie 32 and 64 at the same time) are fully supported yet on Ubuntu or Debian. It is coming, but just like a number of other things, not exactly overnight. It is a release goal. | > | | 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 Nice one :) I had these installed but was always under the impression that we'd lack things like jpeg, png, ... libs. So it all works as R has 'enough batteries' included? Good to know ...
Yes, it's enough to build, but obviously it's like having one AAA battery installed ;)
| | 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?] I shall keep that for the day I'll have to start supporting multiarch in all the r-cran-* packages :)
Well, I did give it a shot for RForge.net but the list of ia32 libraries is a bit short compared to what's available in a full 32-bit system. Obviously you can get far with using native i386 packages, but then you won't be able to take advantage of all the magic of dpkg. So I don't think you'll need to worry about multiarch R r-cran* packages too soon ;). I'm keeping multiarch R around for testing of packages since it's a pretty good test of badly written package configuration, but I would not use it for production ... (it's bad enough that I need to worry about it on OS X ;)). Cheers, Simon
Thanks for waving the cluebat. Dirk | | Cheers, | Simon | | | | > In the meantime, you can always use virtualization. I have a Debian 32-bit | > system and an Ubuntu 32-bit system in KVM virtualization on my Ubuntu 64-bit | > server. That works well. Kvm, or Xen, or Virtualbox, or Vmware, ... all | > offer fairly decent virtualization. | > | > Debian/Ubuntu specific questions are even more welcome on r-sig-debian. | > | > Dirk | > | > -- | > Two new Rcpp classes scheduled for New York and San Francisco, details at | > http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10 | > | > ______________________________________________ | > R-devel at r-project.org mailing list | > https://stat.ethz.ch/mailman/listinfo/r-devel | > | > | -- Two new Rcpp classes scheduled for New York and San Francisco, details at http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10
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