[Numpy-discussion] remove need for site.cfg on default

Darren Dale dsdale24 at gmail.com
Thu Jan 15 10:18:07 EST 2009


Hi Jarrod,

On Wed, Jan 14, 2009 at 2:21 AM, Jarrod Millman <millman at berkeley.edu>wrote:

> Due to the fact that I was tired of adding site.cfg to scipy and numpy
> when building on Fedora and Ubuntu systems as well as a scipy ticket
> (http://scipy.org/scipy/numpy/ticket/985), I decided to try and add
> default system paths to numpy.distutils.  You can find out more
> details on this ticket:
>  http://projects.scipy.org/scipy/scipy/ticket/817
>
> I would like to have as many people test this as possible.  So I would
> like everyone, who has had to build numpy/scipy with a site.cfg
> despite having installed all the dependencies in the system default
> locations, to test this.  If you would please update to the numpy
> trunk and build numpy and scipy without your old site.cfg.  Regardless
> of whether it works or not, I would appreciate it if you could let me
> know.
>

I tested on Gentoo, which does some non-standard stuff in an attempt to be
able to switch between implementations. The libraries in /usr/lib are
symlinks to the implementations in /usr/lib/blas/, and you can have various
implementations like atlas, reference, or threaded-atlas, so I can run a
program called eselect that lets me switch between the implementations. For
some reason, gentoo renames the f77blas libs to simply blas. As a result, I
need to make a minor change numpy/distutils/system_info.py:

$ svn diff
Index: numpy/distutils/system_info.py
===================================================================
--- numpy/distutils/system_info.py      (revision 6323)
+++ numpy/distutils/system_info.py      (working copy)
@@ -90,7 +90,7 @@
 [atlas]
 library_dirs = /usr/lib/3dnow:/usr/lib/3dnow/atlas
 # for overriding the names of the atlas libraries
-atlas_libs = lapack, f77blas, cblas, atlas
+atlas_libs = lapack, blas, cblas, atlas

 [x11]
 library_dirs = /usr/X11R6/lib
@@ -893,7 +893,7 @@
 class atlas_info(system_info):
     section = 'atlas'
     dir_env_var = 'ATLAS'
-    _lib_names = ['f77blas','cblas']
+    _lib_names = ['blas','cblas']
     if sys.platform[:7]=='freebsd':
         _lib_atlas = ['atlas_r']
         _lib_lapack = ['alapack_r']
@@ -1000,7 +1000,7 @@
         self.set_info(**info)

 class atlas_blas_info(atlas_info):
-    _lib_names = ['f77blas','cblas']
+    _lib_names = ['blas','cblas']

     def calc_info(self):
         lib_dirs = self.get_lib_dirs()


On my system , the symlinks point to the threaded atlas implementation. I
ran the full tests and all tests passed except the 9 known failures.

In case you are interested, here is the layout on gentoo

$ slocate liblapack
/usr/lib64/liblapack.so.0
/usr/lib64/liblapack.a
/usr/lib64/lapack/atlas/liblapack.so.0
/usr/lib64/lapack/atlas/liblapack.a
/usr/lib64/lapack/atlas/liblapack.la
/usr/lib64/lapack/atlas/liblapack.so
/usr/lib64/lapack/atlas/liblapack.so.0.0.0
/usr/lib64/lapack/reference/liblapack.so.0
/usr/lib64/lapack/reference/liblapack.a
/usr/lib64/lapack/reference/liblapack.la
/usr/lib64/lapack/reference/liblapack.so
/usr/lib64/lapack/reference/liblapack.so.0.0.0
/usr/lib64/liblapack.so

$ slocate lib*blas:
/usr/lib64/blas
/usr/lib64/blas/gsl
/usr/lib64/blas/gsl/cblas.pc
/usr/lib64/blas/atlas
/usr/lib64/blas/atlas/libcblas.so.0.0.0
/usr/lib64/blas/atlas/libcblas.la
/usr/lib64/blas/atlas/libcblas.so
/usr/lib64/blas/atlas/libblas.so.0
/usr/lib64/blas/atlas/libcblas.so.0
/usr/lib64/blas/atlas/libblas.la
/usr/lib64/blas/atlas/libblas.so
/usr/lib64/blas/atlas/cblas.pc
/usr/lib64/blas/atlas/libcblas.a
/usr/lib64/blas/atlas/libblas.so.0.0.0
/usr/lib64/blas/atlas/blas.pc
/usr/lib64/blas/atlas/libblas.a
/usr/lib64/blas/reference
/usr/lib64/blas/reference/libblas.so.0
/usr/lib64/blas/reference/libblas.la
/usr/lib64/blas/reference/libblas.so
/usr/lib64/blas/reference/libblas.so.0.0.0
/usr/lib64/blas/reference/blas.pc
/usr/lib64/blas/reference/libblas.a
/usr/lib64/blas/threaded-atlas
/usr/lib64/blas/threaded-atlas/libcblas.so.0.0.0
/usr/lib64/blas/threaded-atlas/libcblas.la
/usr/lib64/blas/threaded-atlas/libcblas.so
/usr/lib64/blas/threaded-atlas/libblas.so.0
/usr/lib64/blas/threaded-atlas/libcblas.so.0
/usr/lib64/blas/threaded-atlas/libblas.la
/usr/lib64/blas/threaded-atlas/libblas.so
/usr/lib64/blas/threaded-atlas/cblas.pc
/usr/lib64/blas/threaded-atlas/libcblas.a
/usr/lib64/blas/threaded-atlas/libblas.so.0.0.0
/usr/lib64/blas/threaded-atlas/blas.pc
/usr/lib64/blas/threaded-atlas/libblas.a
/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/cblas.ph
/usr/lib64/libcblas.so
/usr/lib64/pkgconfig/cblas.pc
/usr/lib64/pkgconfig/blas.pc
/usr/lib64/libgslcblas.a
/usr/lib64/libblas.so.0
/usr/lib64/libcblas.so.0
/usr/lib64/libblas.so
/usr/lib64/libcblas.a
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090115/1a279554/attachment.html>


More information about the NumPy-Discussion mailing list