[Rd] Install package 'Matrix' problem

Zhang,Jun JHZhang at mdanderson.org
Thu Dec 2 21:41:00 CET 2010

Prof. Ripley,
     I've just done the installation of the R package 'Matrix' to my 64-bit R 2.12.0, and it is loaded fine. Seems adding -m64 to the CXX line solved the problem.

I had,
CC="cc -xc99 -m64 -xarch=sparcvis2"
CXX="CC -library=stlport4"

And now I have (the working version),
CC="cc -xc99 -m64 -xarch=sparcvis2"
CXX="CC -m64 -library=stlport4"

Thank you!

Jun Zhang
System Analyst III
Division of Quantitative Science

-----Original Message-----
From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk] 
Sent: Thursday, December 02, 2010 12:30 AM
To: Zhang,Jun
Cc: 'r-devel at r-project.org'
Subject: Re: [Rd] Install package 'Matrix' problem

We need more information, at the minimum the line which compiled 
CHMfactor.o.  Can you make the install log (you may need to run this 
again) and your etc/Makeconf available on-line?

At first sight your C++ compiler is missing -m64: the R-admin manual 

'For a 64-bit target add -m64 to the compiler macros and use something 
like LDFLAGS=-L/opt/csw/lib/sparcv9 or LDFLAGS=-L/usr/local/lib/amd64 
as appropriate.'

I see I used

CC="cc -xc99 -m64"
CFLAGS="-O -xlibmieee"
F77="f95 -m64"
CXX="CC -m64 -library=stlport4"
FCLIBS="-lfai -lfsu -lfai2"

in config.site.  And BTW, it is always worth checking the manuals of 
current R-patched: your compiler postdates the pre-release period for 
R 2.12.0.

On Wed, 1 Dec 2010, Zhang,Jun wrote:

> 64-bit R-2.12.0 was installed on Sun SPARC Solaris 10. Compiler used is solstudio12.2. Attached is the configure script.
> I then tried to install a recommended package called Matrix. The compilation failed with the following messages,
> .......

> CC -library=stlport4 -G -L/opt/csw/lib/sparcv9 
> -L/opt/solstudio12.2/prod/lib/v9 -o Matrix.so CHMfactor.o Csparse.o 
> TMatrix_as.o Tsparse.o init.o Mutils.o chm_common.o cs.o cs_utils.o 
> dense.o dgCMatrix.o dgTMatrix.o dgeMatrix.o dpoMatrix.o dppMatrix.o 
> dsCMatrix.o dsyMatrix.o dspMatrix.o dtCMatrix.o dtTMatrix.o 
> dtrMatrix.o dtpMatrix.o factorizations.o ldense.o lgCMatrix.o 
> sparseQR.o abIndex.o CHOLMOD.a COLAMD.a AMD.a 
> -L/apps/sparcv9/R-2.12.0/lib/R/lib -lRlapack 
> -L/apps/sparcv9/R-2.12.0/lib/R/lib -lRblas -lifai -lsunimath -lfai 
> -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai 
> -lfui -lfsu -lsunmath -lmtsk -lm

> ld: fatal: file CHMfactor.o: wrong ELF class: ELFCLASS64
> ld: fatal: File processing errors. No output written to Matrix.so
> make: *** [Matrix.so] Error 2
> ERROR: compilation failed for package 'Matrix'
> * removing '/apps/sparcv9/R-2.12.0/lib/R/library/Matrix'
> Some article suggests theorectically that ld or compiler driver

You need to give references for what you are quoting here (there is 
much misinformation on the Internet).  I suspect it is simply that you 
didn't specify the C++ compiler correctly.

> first sees a component .o file which is 32-bit (don't know which one 
> here), and decides that other components should be 32-bit, too, 
> hence the error message, since CHMfactor.o must be a 64-bit object. 
> I just don't know what is the practical way to avoid this situation. 
> I guess I'm posting in the right list, can somebody help?

Maybe, but really your local IT support is there to help your use of 
your OS: this is a Solaris issue, not an R one.

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list