[SciPy-Dev] supported suitesparse versions?

Jack Howarth howarth at bromo.med.uc.edu
Tue Jul 26 10:11:13 EDT 2011


  We are in the process of updating the fink 10.7 suitesparse package and are
running into a build issue with scipy-0.90 when built against suitesparse-3.6.1...

building 'scipy.sparse.linalg.dsolve.umfpack.__umfpack' extension
compiling C sources
C compiler: gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/sw/include

creating build/temp.macosx-10.7-x86_64-2.6/build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve
creating build/temp.macosx-10.7-x86_64-2.6/build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack
compile options: '-DNO_ATLAS_INFO=3 -I/sw/lib/python2.6/site-packages/numpy/core/include -I/sw/include/python2.6 -c'
extra options: '-msse3 -I/System/Library/Frameworks/vecLib.framework/Headers'
gcc: build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/_umfpack_wrap.c
build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/_umfpack_wrap.c:2351:23: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign]
                  res = SWIG_AddCast(res);
                  ~~~ ^              ~~~
build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/_umfpack_wrap.c:2354:23: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign]
                  res = SWIG_AddCast(res);                  
                  ~~~ ^              ~~~
build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/_umfpack_wrap.c:6941:14: warning: explicitly assigning a variable of type 'void *' to itself [-Wself-assign]
  clientdata = clientdata;
  ~~~~~~~~~~ ^ ~~~~~~~~~~
3 warnings generated.
gcc -L/sw/lib -bundle -L/sw/lib/python2.6/config -lpython2.6 -I/sw/include build/temp.macosx-10.7-x86_64-2.6/build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/_umfpack_wrap.o -L/opt/local/lib -Lbuild/temp.macosx-10.7-x86_64-2.6 -lumfpack -lamd -o build/lib.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/__umfpack.so -Wl,-framework -Wl,Accelerate
Undefined symbols for architecture x86_64:
  "_cholmod_start", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_transpose", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_analyze", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_free_sparse", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_free_factor", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_print_common", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_finish", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_l_start", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_transpose", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_analyze", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_free_sparse", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_free_factor", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_print_common", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_finish", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Undefined symbols for architecture x86_64:
  "_cholmod_start", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_transpose", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_analyze", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_free_sparse", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_free_factor", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_print_common", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_finish", referenced from:
      _umf_i_cholmod in libumfpack.a(umf_i_cholmod.o)
  "_cholmod_l_start", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_transpose", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_analyze", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_free_sparse", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_free_factor", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_print_common", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
  "_cholmod_l_finish", referenced from:
      _umf_l_cholmod in libumfpack.a(umf_l_cholmod.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: Command "gcc -L/sw/lib -bundle -L/sw/lib/python2.6/config -lpython2.6 -I/sw/include build/temp.macosx-10.7-x86_64-2.6/build/src.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/_umfpack_wrap.o -L/opt/local/lib -Lbuild/temp.macosx-10.7-x86_64-2.6 -lumfpack -lamd -o build/lib.macosx-10.7-x86_64-2.6/scipy/sparse/linalg/dsolve/umfpack/__umfpack.so -Wl,-framework -Wl,Accelerate" failed with exit status 1
### execution of /var/tmp/tmp.1.p2OWF9 failed, exit code 1

FYI, the build patch we are using for suitesparse is...

diff -uNr SuiteSparse/KLU/Include/klu_internal.h SuiteSparse.patched/KLU/Include/klu_internal.h
--- SuiteSparse/KLU/Include/klu_internal.h      2009-03-24 14:55:04.000000000 -0400
+++ SuiteSparse.patched/KLU/Include/klu_internal.h      2011-07-24 09:50:47.000000000 -0400
@@ -9,7 +9,6 @@
 
 #include "klu.h" 
 #include "btf.h"
-#include "klu_version.h"
 
 /* ========================================================================== */
 /* make sure debugging and printing is turned off */
@@ -36,6 +35,8 @@
 #include <limits.h>
 #include <stdlib.h>
 #include <math.h>
+/* moved klu_version.h after math.h to circumvent compile error on ppc */
+#include "klu_version.h"
 
 #undef ASSERT
 #ifndef NDEBUG
diff -uNr SuiteSparse/UFconfig/UFconfig.mk SuiteSparse.patched/UFconfig/UFconfig.mk
--- SuiteSparse/UFconfig/UFconfig.mk    2011-05-10 16:47:15.000000000 -0400
+++ SuiteSparse.patched/UFconfig/UFconfig.mk    2011-07-24 09:53:37.000000000 -0400
@@ -54,7 +54,7 @@
 F77LIB =
 
 # C and Fortran libraries
-LIB = -lm
+# LIB = -lm
 
 # For compiling MATLAB mexFunctions (MATLAB 7.5 or later)
 MEX = mex -O -largeArrayDims -lmwlapack -lmwblas
@@ -91,8 +91,8 @@
 # naming the BLAS and LAPACK library (*.a or *.so) files.
 
 # This is probably slow ... it might connect to the Standard Reference BLAS:
-BLAS = -lblas -lgfortran
-LAPACK = -llapack
+# BLAS = -lblas -lgfortran
+# LAPACK = -llapack
 
 # NOTE: this next option for the "Goto BLAS" has nothing to do with a "goto"
 # statement.  Rather, the Goto BLAS is written by Dr. Kazushige Goto.
@@ -132,13 +132,13 @@
 # The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
 # You may wish to use an absolute path.  METIS is optional.  Compile
 # CHOLMOD with -DNPARTITION if you do not wish to use METIS.
-METIS_PATH = ../../metis-4.0
-METIS = ../../metis-4.0/libmetis.a
+# METIS_PATH = ../../metis-4.0
+# METIS = ../../metis-4.0/libmetis.a
 
 # If you use CHOLMOD_CONFIG = -DNPARTITION then you must use the following
 # options:
-# METIS_PATH =
-# METIS =
+METIS_PATH =
+METIS =
 
 #------------------------------------------------------------------------------
 # UMFPACK configuration:
@@ -194,7 +194,7 @@
 # -DNSUNPERF       for Solaris only.  If defined, do not use the Sun
 #                      Performance Library
 
-CHOLMOD_CONFIG =
+CHOLMOD_CONFIG = -DNPARTITION
 
 #------------------------------------------------------------------------------
 # SuiteSparseQR configuration:
@@ -208,7 +208,7 @@
 # -DHAVE_TBB        enable the use of Intel's Threading Building Blocks (TBB)
 
 # default, without timing, without TBB:
-SPQR_CONFIG =
+SPQR_CONFIG = -DNPARTITION
 # with timing and TBB:
 # SPQR_CONFIG = -DTIMING -DHAVE_TBB
 # with timing
@@ -328,11 +328,11 @@
 # Macintosh
 #------------------------------------------------------------------------------
 
-# CC = gcc
-# CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
-# LIB = -lstdc++
-# BLAS = -framework Accelerate
-# LAPACK = -framework Accelerate
+CC = gcc
+CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
+LIB = -lstdc++
+BLAS = -framework Accelerate
+LAPACK = -framework Accelerate
 
 #------------------------------------------------------------------------------
 # IBM RS 6000

What is the known versions of suitesparse that are compatible with scipy-0.90?
There seems to be a range of different suitesparse releases in use for Linux
these days but no distribution appears to be using the 3.6.x releases.
              Jack
ps On fink, scipy-0.90 builds fine against suitesparse-3.1.0. MacPorts is
building against suitesparse-3.4.0 which is the latest version that I see
any vendor shipping.



More information about the SciPy-Dev mailing list