[Numpy-discussion] New Linux build problem

Brian Granger ellisonbg.net at gmail.com
Wed May 30 15:23:19 EDT 2007


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



More information about the NumPy-Discussion mailing list