[Rd] compile 2.4.1 for linux on power cpus

Andrew Ferris aferris at mrl.ubc.ca
Thu Mar 15 02:08:37 CET 2007


Peter,

First off, as you may have guessed, I don't compile many 64 bit programs so thanks again for the help. I'll revert back to powerpc64-unknown-linux-gnu which is the default for -build and -host.

Here's the gcc information
[hostname]:/ # which gcc
/usr/bin/gcc
[hostname]:/ # gcc -dumpmachine
powerpc64-suse-linux

>From looking at the GNU documentation for GCC  - IBM RS/6000 and PowerPC Options, I see that it mentions this option:

-m64
    
Generate code for 32-bit or 64-bit environments of Darwin and SVR4 targets (including GNU/Linux). The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any PowerPC variant. The 64-bit environment sets int to 32 bits and long and pointer to 64 bits, and generates code for PowerPC64, as for -mpowerpc64. 

So would some compiler flags such as these work:

'CC=gcc -m64' 'CXX=g++ -m64' 'FC=gfortran -mc64' 'F77=gfortran -m64' 'LDFLAGS=-L/lib64'



Andrew Ferris
Network Support Analyst
iCAPTURE Research Centre
University of British Columbia

>>> Peter Dalgaard <p.dalgaard at biostat.ku.dk> 03/14/07 5:03 PM >>>
Andrew Ferris wrote:
> Thank you for the reply Peter. 
>
> I've compiled R from source using the following:
>
> ./configure --host=powerpc64-power5-linux-gnu --build=powerpc64-power5-linux-gnu '--with-blas=-framework blas-3.1.0-11'
>
> and after I've made R I get this:
>
>   
>> .Machine$sizeof.pointer
>>     
> [1] 4
>
> meanwhile uname -a prints out this:
>
> Linux [hostname] 2.6.16.21-0.8-ppc64 #1 SMP Mon Jul 3 18:25:39 UTC 2006 ppc64 ppc64 ppc64 GNU/Linux
>
>   
So I was wrong in assuming that 64 bit SLES would be set up for 64 bit 
compiles.....

> and in the root filesystem there's a /lib and /lib64. I suspect that R needs to have the 64 bit libraries specified so is there a way to do that?
First check the toolchain:

which gcc
gcc -dumpmachine

You might need to revise your path and/or install 64 bit versions of the 
compilers.

Actually, looking at the package list for SLES 10, I see that some 
packages have a -64bit variant, e.g.

glibc-64bit 2.4 
<http://www.novell.com/products/linuxpackages/server10/ppc/glibc-64bit.html> 
(Standard Shared Libraries (from the GNU C Library))
glibc-devel-64bit 2.4 
<http://www.novell.com/products/linuxpackages/server10/ppc/glibc-devel-64bit.html> 
(Include Files and Libraries Mandatory for Development)

but the gcc package does not, and the gcc-fortran-64bit 4.1.0 
<http://www.novell.com/products/linuxpackages/server10/ppc/gcc-fortran-64bit.html> 
packages contains only libraries. So my guess is that there is one 
compiler that does both 32 bit and 64 bit compiling, but you need to set 
a compiler flag for the latter.

I don't think messing with --build and --host is likely to do any good.



***CONFIDENTIALITY NOTICE***
This electronic message is intended only for the use of the addressee and may contain information that is privileged and confidential.  Any dissemination, distribution or copying of this communication by unauthorized individuals is strictly prohibited. If you have received this communication in error, please notify the sender immediately by reply e-mail and delete the original and all copies from your system.



More information about the R-devel mailing list