Skip to content

Problem compiling R 3.6.1 on POWER 570 system

5 messages · Mark Komarinski, Brian Ripley, Mark Kimpel +1 more

#
I've for a RHEL 4 box on a P570 system.  My end user wants to have a 
64-bit version of R compiled due to the large amount of memory they 
require (this image has 16GB allocated to it).

I can compile R fine in 32-bit mode, but it can't use more than 2.4GB of 
RAM before it falls over and dies.

Compiling in 64-bit mode for POWER systems "should" be as easy as adding 
a CFLAGS="-m64" FFLAGS="-m64" ./configure --without-x .

It's not, and unfortunately I'm at a loss to what the problem is. 
Here's the last few lines of the above configure command:

checking for Fortran 77 libraries of g77...  -L/usr/local/lib64 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6/64 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6/../../../../lib64 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6/../../.. -L/lib/../lib64 
-L/usr/lib/../lib64 -lfrtbegin -lg2c -lm -lgcc_s_64
checking how to get verbose linking output from gcc -std=gnu99... -v
checking for C libraries of gcc -std=gnu99...  -L/usr/local/lib64 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6/64 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6/../../../../lib64 
-L/usr/lib/gcc/ppc64-redhat-linux/3.4.6/../../.. -L/lib/../lib64 
-L/usr/lib/../lib64 -lgcc_s_64
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... lower case, underscore, 
extra underscore
checking whether g77 appends underscores to external names... yes
checking whether g77 appends extra underscores to external names... yes
checking whether mixed C/Fortran code can be run... configure: WARNING: 
cannot run mixed C/Fortran code
configure: error: Maybe check LDFLAGS for paths to Fortran libraries?

Here's what looks to be the relevant part from config.log:
configure:32383: checking whether mixed C/Fortran code can be run
/usr/bin/ld: skipping incompatible 
/usr/lib/gcc/ppc64-redhat-linux/3.4.6/libgcc_s_64.so when searching for 
-lgcc_s_64
/usr/bin/ld: skipping incompatible 
/usr/lib/gcc/ppc64-redhat-linux/3.4.6/libgcc_s_64.so when searching for 
-lgcc_s_64
/usr/bin/ld: cannot find -lgcc_s_64
collect2: ld returned 1 exit status
configure:32447: WARNING: cannot run mixed C/Fortran code
configure:32449: error: Maybe check LDFLAGS for paths to Fortran libraries?

This implies that configure is compiling the code in 32 bit mode (which 
is why it's skipping libgcc_s_64.o

I guess my questions are: has anyone compiled this for this system?  And 
if so, how did you do it?

-Mark
#
On Wed, 19 Dec 2007, Mark Komarinski wrote:

            
The R-admin manual says to use

CC="gcc -m64"
CXX="gxx -m64"
F77="gfortran -m64"
FC="gfortran -m64"

in several places: can you try following that (with g77 on your old OS, 
and presumably not FC if you don't have an F90 compiler).

  
    
#
Mark,

My sysadmin has helped me install R on our Power cluster. This is not my 
area of expertise, but I will pass along his directions, which got me up 
and running:

To quote him, "Our machine, BigRed runs SuSE Linux Enterprise Server 9, 
Service Pack 3.  The OS
is 64-bit, but there are 32-bit compatibility libraries, and many
(perhaps most) of the system utilities are 32-bit.  The processors on
the user and compute blades are PowerPC 970MP (dual-core)."

Here is the script I used, your install directories and location of 
x-libraries of course may need to be changed.

Good luck and let the list know what ends up working for you.
Mark Kimpel

cd ~/R_HOME
wget ftp://ftp.stat.math.ethz.ch/Software/R/R-devel.tar.bz2
tar -xjvf R-devel.tar.bz2
cd ~/R_HOME/R-devel
mkdir R-build
cd R-build
LDFLAGS=-m64 FFLAGS="-m64 -mpowerpc64" FCFLAGS="-m64 -mpowerpc64" 
CFLAGS="-m64 -mpowerpc64" ../configure 
--prefix='/N/hd03/mkimpel/BigRed/R_HOME/R-devel/R-build' 
--x-libraries=/usr/X11R6/lib64
make
make install

Mark W. Kimpel MD  ** Neuroinformatics ** Dept. of Psychiatry
Indiana University School of Medicine

15032 Hunter Court, Westfield, IN  46074

(317) 490-5129 Work, & Mobile & VoiceMail
(317) 204-4202 Home (no voice mail please)

mwkimpel<at>gmail<dot>com

******************************************************************
Mark Komarinski wrote:
1 day later
#
I stumbled upon a minor problem when creating a customized installer using

make myR IMAGEDIR=xxxxx

in src/gnuwin32/installer

In IMAGEDIR i have a complete installation with many additional
directories with packages in the directory site-library.
Since the libraries are not in library, help.start, when run,
creates a file "fixedHTMLLinks" in each of the package directories.
These files are included in the installer created with make.
Since the version installed from this installer may live in a different
directories, the fixedHTMLLinks point to incorrect places after such an
install.
So it might make sense that
make myR IMAGEDIR=xxxxx
does not include all these fixedHTMLLinks in the installer.

Erich Neuwirth
#
On Fri, 21 Dec 2007, Erich Neuwirth wrote:

            
No problem: they are fixed up at first use of help.start() if incorrect. 
*But* in my dept setup they would be correct so this is the desired 
behaviour.
Hmm: *you* gave our script an imagedir containing things you don't want 
there and then expect our script to correct your mistake?  As hinted 
above, others may want these files, so we are not going to second-guess 
the users' intentions.  (There is not much point in building a customized 
installer with packages anywhere other than the main library, since that 
is where the links work best.)