dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #04355
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