[SciPy-user] building numpy/scipy on Solaris

David M. Cooke cookedm@physics.mcmaster...
Wed Mar 21 18:57:55 CDT 2007


On Wed, Mar 21, 2007 at 02:27:56PM +0100, raphael langella wrote:
> ---- Messages d´origine ----
> De: "David M. Cooke" <cookedm@physics.mcmaster.ca>
> Date: mercredi, mars 21, 2007 11:23 am
> Objet: Re: [SciPy-user] building numpy/scipy on Solaris
> 
> > On Wed, Mar 21, 2007 at 09:59:04AM +0100, raphael langella wrote:
> > > > On Tue, Mar 20, 2007 at 12:08:14PM +0100, raphael langella wrote:
> > > > > I'm trying to build numpy and scipy on Solaris 8.
> > > > > The BLAS FAQ on netlib.org suggests using optimized BLAS 
> > librairies> > > provided by computer vendor, like the SUN 
> > Performance Library. This
> > > > > library is supposed to provide enhanced and optimized version 
> > of 
> > > > BLAS> and LAPACK. I happen to have Forte 7 installed, so I 
> > first 
> > > > tried to
> > > > > build against this library (libsunperf.a).
> > > 
> > > It's supposed to support LAPACK v3.0 and BLAS1, 2 & 3
> > > (http://developers.sun.com/sunstudio/perflib_index.html).
> > > It gives me this when I import numpy :
> > > ImportError: ld.so.1: python: fatal: relocation error: file
> > > /usr/lib/python2.3/site-packages/numpy/linalg/lapack_lite.so: symbol
> > > __getenv_: referenced symbol not found
> > 
> > Odd. lapack_lite doesn't use getenv anywhere, so it must be the 
> > sunperflibrary (and http://docs.sun.com/source/819-
> > 3692/plug_optimizing.htmlshows that it does look at environment 
> > variables). I'm guessing there's
> > some link-time option that it needs.
> 
> ok. I'll forget about the other errors I have and will focus on
> libsunperf for now. It makes sense to me to use vendor provided
> optimized BLAS/LAPACK libraries.
> 
> I compiled with these options :
> python setup.py config_fc --f77flags='-xlic_lib=sunperf -xarch=v9b' install
> 
> and now, I've got this error when importing numpy :
> ImportError: ld.so.1: python: fatal: relocation error: file
> /usr/local/lib/python2.3/site-packages/numpy/linalg/lapack_lite.so:
> symbol dgeev_: referenced symbol not found

It looks like the C versions of the Fortran routines in sunperf don't
have trailing underscores (they're not just the Fortran routine, they're
C wrappers). Try

CPPFLAGS='-DNO_APPEND_FORTRAN' python setup.py config_fc --f77flags='-xlic_lib=sunperf -xarch=v9b' install

so that lapack_litemodule.c uses dgeev instead of dgeev_.

-- 
|>|\/|<
/--------------------------------------------------------------------------\
|David M. Cooke                      http://arbutus.physics.mcmaster.ca/dmc/
|cookedm@physics.mcmaster.ca


More information about the SciPy-user mailing list