
Hi,
I am building numpy on a 32 bit Linux system (Scientific Linux). Numpy used to build fine on this system, but as I have moved to the new 1.0.3 versions, I have run into problems building. Basically, I get lots of things like:
undefined reference to `cblas_sdot'
and
undefined reference to `PyArg_ParseTuple'
Here are some highlight of the build process:
lapack_info: libraries lapack not found in /home2/dechow/work/txp/txpython-0.2-linux/local/lib libraries lapack not found in /usr/local/lib FOUND: libraries = ['lapack'] library_dirs = ['/usr/lib'] language = f77
FOUND: libraries = ['lapack', 'blas'] library_dirs = ['/usr/lib'] define_macros = [('NO_ATLAS_INFO', 1)] language = f77
And later:
creating build/temp.linux-i686-2.5/numpy/core/blasdot compile options: '-DNO_ATLAS_INFO=1 -Inumpy/core/blasdot -Inumpy/core/include -Ibuild/src.linux-i686-2.5/numpy/core -Inumpy/core/src -Inumpy/core/include -I/home2/dechow/work/txp/txpython-0.2-linux/local/include/python2.5 -c' gcc: numpy/core/blasdot/_dotblas.c /usr/bin/gfortran build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o -L/usr/lib -lblas -lgfortran -o build/lib.linux-i686-2.5/numpy/core/_dotblas.so build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x9a): In function `FLOAT_dot': numpy/core/blasdot/_dotblas.c:24: undefined reference to `cblas_sdot' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x14a): In function `DOUBLE_dot': numpy/core/blasdot/_dotblas.c:39: undefined reference to `cblas_ddot' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x201): In function `CFLOAT_dot': numpy/core/blasdot/_dotblas.c:54: undefined reference to `cblas_cdotu_sub' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x2ad): In function `CDOUBLE_dot': numpy/core/blasdot/_dotblas.c:68: undefined reference to `cblas_zdotu_sub' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x2e3): In function `dotblas_alterdot': numpy/core/blasdot/_dotblas.c:83: undefined reference to `PyArg_ParseTuple' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x2f8):numpy/core/blasdot/_dotblas.c:107: undefined reference to `_Py_NoneStruct' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x3e3): In function `dotblas_restoredot': numpy/core/blasdot/_dotblas.c:118: undefined reference to `PyArg_ParseTuple' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x3f8):numpy/core/blasdot/_dotblas.c:144: undefined reference to `_Py_NoneStruct' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x57c): In function `dotblas_matrixproduct': numpy/core/blasdot/_dotblas.c:196: undefined reference to `PyArg_ParseTuple' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x758):numpy/core/blasdot/_dotblas.c:226: undefined reference to `PyTuple_New' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x76c):numpy/core/blasdot/_dotblas.c:83: undefined reference to `PyArg_ParseTuple' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x785):numpy/core/blasdot/_dotblas.c:107: undefined reference to `_Py_NoneStruct' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0xbde):numpy/core/blasdot/_dotblas.c:321: undefined reference to `PyExc_ValueError' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0xbf2):numpy/core/blasdot/_dotblas.c:321: undefined reference to `PyErr_SetString' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0xca8):numpy/core/blasdot/_dotblas.c:539: undefined reference to `PyEval_SaveThread' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0xd30):numpy/core/blasdot/_dotblas.c:696: undefined reference to `PyEval_RestoreThread' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0xfca):numpy/core/blasdot/_dotblas.c:365: undefined reference to `PyEval_SaveThread' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x108f):numpy/core/blasdot/_dotblas.c:589: undefined reference to `PyEval_SaveThread' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1129):numpy/core/blasdot/_dotblas.c:495: undefined reference to `PyEval_SaveThread' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x11ff):numpy/core/blasdot/_dotblas.c:657: undefined reference to `PyEval_SaveThread' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x131c):numpy/core/blasdot/_dotblas.c:373: undefined reference to `cblas_daxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x13b1):numpy/core/blasdot/_dotblas.c:406: undefined reference to `cblas_zaxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x146c):numpy/core/blasdot/_dotblas.c:435: undefined reference to `cblas_saxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x14f4):numpy/core/blasdot/_dotblas.c:550: undefined reference to `cblas_dgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1629):numpy/core/blasdot/_dotblas.c:389: undefined reference to `cblas_daxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x16a6):numpy/core/blasdot/_dotblas.c:507: undefined reference to `cblas_ddot' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x171f):numpy/core/blasdot/_dotblas.c:468: undefined reference to `cblas_caxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x17a0):numpy/core/blasdot/_dotblas.c:556: undefined reference to `cblas_sgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x17db):numpy/core/blasdot/_dotblas.c:512: undefined reference to `cblas_sdot' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x188d):numpy/core/blasdot/_dotblas.c:562: undefined reference to `cblas_zgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x19a7):numpy/core/blasdot/_dotblas.c:422: undefined reference to `cblas_zaxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1a31):numpy/core/blasdot/_dotblas.c:517: undefined reference to `cblas_zdotu_sub' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1ab2):numpy/core/blasdot/_dotblas.c:569: undefined reference to `cblas_cgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1b6f):numpy/core/blasdot/_dotblas.c:669: undefined reference to `cblas_dgemm' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1bb7):numpy/core/blasdot/_dotblas.c:521: undefined reference to `cblas_cdotu_sub' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1c3f):numpy/core/blasdot/_dotblas.c:605: undefined reference to `cblas_dgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1d14):numpy/core/blasdot/_dotblas.c:676: undefined reference to `cblas_sgemm' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1dda):numpy/core/blasdot/_dotblas.c:451: undefined reference to `cblas_saxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1eaf):numpy/core/blasdot/_dotblas.c:611: undefined reference to `cblas_sgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x1f37):numpy/core/blasdot/_dotblas.c:690: undefined reference to `cblas_cgemm' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x2020):numpy/core/blasdot/_dotblas.c:617: undefined reference to `cblas_zgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x20ea):numpy/core/blasdot/_dotblas.c:484: undefined reference to `cblas_caxpy' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x21c6):numpy/core/blasdot/_dotblas.c:683: undefined reference to `cblas_zgemm' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x2255):numpy/core/blasdot/_dotblas.c:623: undefined reference to `cblas_cgemv' build/temp.linux-i686-2.5/numpy/core/blasdot/_dotblas.o(.text+0x22ec): In function `dotblas_innerproduct': numpy/core/blasdot/_dotblas.c:729: undefined reference to `PyArg_ParseTuple'
Have there been recent changes to distutils that would cause these undefined references to appear?
Thanks
Brian

Brian Granger wrote:
Hi,
I am building numpy on a 32 bit Linux system (Scientific Linux). Numpy used to build fine on this system, but as I have moved to the new 1.0.3 versions, I have run into problems building. Basically, I get lots of things like:
undefined reference to `cblas_sdot'
This looks like numpy.distutils has found ATLAS's FORTRAN BLAS library but not its libcblas library. Do you have a correct site.cfg file? From Chris Hanley's earlier post, it looks like the tarball on the SF site mistakenly includes a site.cfg. Delete it or correct it.
and
undefined reference to `PyArg_ParseTuple'
This usually comes from having an LDFLAGS environment variable defined. It overwrites the linker information.

This looks like numpy.distutils has found ATLAS's FORTRAN BLAS library but not its libcblas library. Do you have a correct site.cfg file? From Chris Hanley's earlier post, it looks like the tarball on the SF site mistakenly includes a site.cfg. Delete it or correct it.
I will look at this.
and
undefined reference to `PyArg_ParseTuple'
This usually comes from having an LDFLAGS environment variable defined. It overwrites the linker information.
Unsetting LDFLAGS before building didn't help. Hmmm, the odd thing is that the stock numpy used to build just fine on this system (about a month ago)
Brian
-- Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion

Take that back, unsetting LDFLAGS did work!!!
Thanks
Brian
On 5/30/07, Brian Granger ellisonbg.net@gmail.com wrote:
This looks like numpy.distutils has found ATLAS's FORTRAN BLAS library but not its libcblas library. Do you have a correct site.cfg file? From Chris Hanley's earlier post, it looks like the tarball on the SF site mistakenly includes a site.cfg. Delete it or correct it.
I will look at this.
and
undefined reference to `PyArg_ParseTuple'
This usually comes from having an LDFLAGS environment variable defined. It overwrites the linker information.
Unsetting LDFLAGS before building didn't help. Hmmm, the odd thing is that the stock numpy used to build just fine on this system (about a month ago)
Brian
-- Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
participants (2)
-
Brian Granger
-
Robert Kern