Trying to rebuild scipy after updating to the latest superlu. I got the following: x86_64-pc-linux-gnu-gcc: scipy/sparse/linalg/dsolve/_superlu_utils.c x86_64-pc-linux-gnu-gcc: scipy/sparse/linalg/dsolve/_superluobject.c scipy/sparse/linalg/dsolve/_superluobject.c: In function 'SciPyLU_getattr': scipy/sparse/linalg/dsolve/_superluobject.c:151:29: warning: initialization from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:153:26: warning: assignment from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:155:5: warning: return from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:158:29: warning: initialization from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:160:26: warning: assignment from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:162:5: warning: return from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c: In function 'iterrefine_cvt': scipy/sparse/linalg/dsolve/_superluobject.c:592:5: error: 'SINGLE' undeclared (first use in this function) scipy/sparse/linalg/dsolve/_superluobject.c:592:5: note: each undeclared identifier is reported only once for each function it appears in scipy/sparse/linalg/dsolve/_superluobject.c:593:5: error: 'DOUBLE' undeclared (first use in this function) scipy/sparse/linalg/dsolve/_superluobject.c:594:5: error: 'EXTRA' undeclared (first use in this function) scipy/sparse/linalg/dsolve/_superluobject.c: In function 'SciPyLU_getattr': scipy/sparse/linalg/dsolve/_superluobject.c:151:29: warning: initialization from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:153:26: warning: assignment from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:155:5: warning: return from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:158:29: warning: initialization from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:160:26: warning: assignment from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c:162:5: warning: return from incompatible pointer type scipy/sparse/linalg/dsolve/_superluobject.c: In function 'iterrefine_cvt': scipy/sparse/linalg/dsolve/_superluobject.c:592:5: error: 'SINGLE' undeclared (first use in this function) scipy/sparse/linalg/dsolve/_superluobject.c:592:5: note: each undeclared identifier is reported only once for each function it appears in scipy/sparse/linalg/dsolve/_superluobject.c:593:5: error: 'DOUBLE' undeclared (first use in this function) scipy/sparse/linalg/dsolve/_superluobject.c:594:5: error: 'EXTRA' undeclared (first use in this function) error: Command "x86_64-pc-linux-gnu-gcc -pthread -O1 -march=native -pipe -ggdb -fPIC -DNO_ATLAS_INFO=1 -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c scipy/sparse/linalg/dsolve/_superluobject.c -o build-2.7/temp.linux-x86_64-2.7/scipy/sparse/linalg/dsolve/_superluobject.o" failed with exit status 1 * ERROR: sci-libs/scipy-0.9.0-r2 failed (compile phase): * Building failed with CPython 2.7 in distutils_building() function I am guessing superlu has changed in a non-trivial way since we patched scipy with jlec. Reproducible: Always
There may be more to it than this but superlu changed some of their definitions. It should compile if you add these lines to superlu.patch. --- scipy/sparse/linalg/dsolve/_superluobject.c.orig 2011-11-28 19:20:47.190117191 -0800 +++ scipy/sparse/linalg/dsolve/_superluobject.c 2011-11-28 19:21:11.034117954 -0800 @@ -589,9 +589,9 @@ { ENUM_CHECK_INIT; ENUM_CHECK(NOREFINE); - ENUM_CHECK(SINGLE); - ENUM_CHECK(DOUBLE); - ENUM_CHECK(EXTRA); + ENUM_CHECK(SLU_SINGLE); + ENUM_CHECK(SLU_DOUBLE); + ENUM_CHECK(SLU_EXTRA); ENUM_CHECK_FINISH("invalid value for 'IterRefine' parameter"); }
THanks for that tip. I will fix that soonish.
+*scipy-0.9.0-r3 (13 Dec 2011) + + 13 Dec 2011; Justin Lecher <jlec@gentoo.org> +scipy-0.9.0-r3.ebuild, + +files/scipy-0.9.0-superlu-4.3.patch: + Add fix for changes in superlu-4.3, #392227 +