← Back to team overview

dolfin team mailing list archive

Re: Undefined symbols when compiled with umfpack using external BLAS

 

Garth N. Wells wrote:
> LUK ShunTim wrote:
>> Hello fellow dolfins,
>>
>> I compiled dolfin 0.6.4 (successfully) using the umfpack package
>> supplied by
>> debian/sid which does not come with its own BLAS. When testing
>> pydolfin with
>> "python -i meshdemo.py", it gives this traceback:
>>
>> <quote>
>> Traceback (most recent call last):
>>   File "meshdemo.py", line 1, in ?
>>     from dolfin import *
>>   File
>> "/home/test/dolfin/lib/python2.4/site-packages/dolfin/__init__.py", line
>> 3, in ?
>>     from dolfin import *
>>   File
>> "/home/test/dolfin/lib/python2.4/site-packages/dolfin/dolfin.py", line 7,
>> in ?
>>     import _dolfin
>> ImportError: /usr/lib/libumfpack.so.1: undefined symbol: dscal_
>> </quote>
>>
>> It appears dscal from BLAS routines which is required by umfpack was
>> some how
>> not linked/imported. I did have ATLAS installed.
>>
>> The same problem occurred when compiling the c++ examples but it can
>> be worked
>> around by adding the required flags "-L/usr/lib/atlas/sse2 -lblas" to
>> link
>> explicitly against ALTAS.
>>
>> I beg your pardon if this is not really a dolfin problem (I don't know
>> whether
>> dolfin should do the import or not) but I would be grateful for your
>> help.
>>
> 
> I've seen this problem before. Something has changed in the way the
> Debian libufsparse packages are built.
> 
> With Ubunutu 6.10, the package libumfpack4 works fine, but libufsparse
> needs -lblas. I don't like this as it means DOLFIN has to test for BLAS,
> and add options for non-standard BLAS installations (yet another
> dependency). I might add a test for BLAS in the future.

In debian/sid, "nm -D /usr/lib/libumfpack.so |grep dscal_" returns
"U dscal_"

I'm not an expert in programming but, if program A links against libB
which in turns uses libC, libD and libE, say, it would not make very
much sense to *require* A to link against all these dependent libraries
explicitly. Maybe I should file a bug report to debian?

> 
> If you grab the "SuiteSparse" (which includes UMFPACK)  and build it
> yourself, it creates static libraries by default, so you won't have to
> tell DOLFIN where the BLAS libraries are.

Will try that.

> 
> Garth
> 

Thanks,
ST
--


Follow ups

References