petsc4py fails to configure with my own lapack/blas

Ondrej Certik ondrej at certik.cz
Thu Jun 4 18:28:24 CDT 2009


On Thu, Jun 4, 2009 at 5:18 PM, Ondrej Certik<ondrej at certik.cz> wrote:
> On Thu, Jun 4, 2009 at 5:14 PM, Lisandro Dalcin<dalcinl at gmail.com> wrote:
>> On Thu, Jun 4, 2009 at 7:59 PM, Ondrej Certik <ondrej at certik.cz> wrote:
>>> On Thu, Jun 4, 2009 at 4:13 PM, Lisandro Dalcin<dalcinl at gmail.com> wrote:
>>>> This smells to a 32/64 bit libs mismatch, or a g77/g95/gfortran
>>>> mismatch. Addionally, could you try to run 'ldd' on core PETSc libs
>>>> and on the PETSc.so extension module?
>>>
>>> So those core PETSc libs are just .a libraries (not dynamic
>>> executables). Could that be a problem?
>>>
>>
>> That could be a BIG problem. petsc4py does not "officially" support
>> PETSc builds with static libs, though it could work on some scenarios.
>> Moreover, even if you get it working, you will not be able to use let
>> say slepc4py, or any other C code depending on the PETSc libraries
>> (think of a fast, Cython-implemented Function()/Jacobian() routine for
>> a nonlinear problem solved with SNES).
>>
>> I really recommend you to pass '--with-shared' to PETSc's configure.
>
> Ah, I didn't know I have to pass it. I thought petsc will do the right
> thing. Let me do it right now and I'll report back.

Ok, so now everything is built as an .so library, but it still fails
in exactly the same way as here:

http://code.google.com/p/femhub/issues/detail?id=30

Here is the ldd on petsc libraries:

$ ldd lib/libpetsc.so
	linux-vdso.so.1 =>  (0x00007fff32bfe000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fc62a372000)
	liblapack.so.3gf => /usr/lib/liblapack.so.3gf (0x00007fc6298ac000)
	libcblas.so.3gf => /usr/lib/libcblas.so.3gf (0x00007fc62968e000)
	libf77blas.so.3gf => /usr/lib/libf77blas.so.3gf (0x00007fc62946f000)
	libatlas.so.3gf => /usr/lib/libatlas.so.3gf (0x00007fc628ae8000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007fc6288e4000)
	libmpi.so.0 => /usr/lib/libmpi.so.0 (0x00007fc628641000)
	libopen-rte.so.0 => /usr/lib/libopen-rte.so.0 (0x00007fc6283f8000)
	libopen-pal.so.0 => /usr/lib/libopen-pal.so.0 (0x00007fc62818d000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x00007fc627f73000)
	libutil.so.1 => /lib/libutil.so.1 (0x00007fc627d6f000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fc627b57000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007fc62793b000)
	libmpi_f90.so.0 => /usr/lib/libmpi_f90.so.0 (0x00007fc627736000)
	libmpi_f77.so.0 => /usr/lib/libmpi_f77.so.0 (0x00007fc6274fe000)
	libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007fc627222000)
	libm.so.6 => /lib/libm.so.6 (0x00007fc626f9c000)
	libc.so.6 => /lib/libc.so.6 (0x00007fc626c2a000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fc626a0e000)
	libblas.so.3gf => /usr/lib/libblas.so.3gf (0x00007fc62677d000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc62a9ec000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fc62657a000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fc626374000)



and here on the PETSc.so:

$ ldd lib/python2.5/site-packages/petsc4py/lib/linux-gnu-c-debug/PETSc.so
	linux-vdso.so.1 =>  (0x00007fff899ff000)
	libpetscts.so =>
/home/ondrej/ext/spd-3.4.2spd3-ubuntu-64bit/local/lib/libpetscts.so
(0x00007f2881264000)
	libpetscsnes.so =>
/home/ondrej/ext/spd-3.4.2spd3-ubuntu-64bit/local/lib/libpetscsnes.so
(0x00007f2880ffb000)
	libpetscksp.so =>
/home/ondrej/ext/spd-3.4.2spd3-ubuntu-64bit/local/lib/libpetscksp.so
(0x00007f2880b68000)
	libpetscdm.so =>
/home/ondrej/ext/spd-3.4.2spd3-ubuntu-64bit/local/lib/libpetscdm.so
(0x00007f28808a4000)
	libpetscmat.so =>
/home/ondrej/ext/spd-3.4.2spd3-ubuntu-64bit/local/lib/libpetscmat.so
(0x00007f28802f9000)
	libpetscvec.so =>
/home/ondrej/ext/spd-3.4.2spd3-ubuntu-64bit/local/lib/libpetscvec.so
(0x00007f287ffff000)
	libpetsc.so =>
/home/ondrej/ext/spd-3.4.2spd3-ubuntu-64bit/local/lib/libpetsc.so
(0x00007f287fc8f000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f287f987000)
	libcblas.so.3gf => /usr/lib/libcblas.so.3gf (0x00007f287f769000)
	libf77blas.so.3gf => /usr/lib/libf77blas.so.3gf (0x00007f287f54a000)
	libatlas.so.3gf => /usr/lib/libatlas.so.3gf (0x00007f287ebc3000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007f287e9bf000)
	libmpi.so.0 => /usr/lib/libmpi.so.0 (0x00007f287e71c000)
	libopen-rte.so.0 => /usr/lib/libopen-rte.so.0 (0x00007f287e4d3000)
	libopen-pal.so.0 => /usr/lib/libopen-pal.so.0 (0x00007f287e268000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x00007f287e04e000)
	libutil.so.1 => /lib/libutil.so.1 (0x00007f287de4a000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f287dc32000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007f287da16000)
	libmpi_f90.so.0 => /usr/lib/libmpi_f90.so.0 (0x00007f287d811000)
	libmpi_f77.so.0 => /usr/lib/libmpi_f77.so.0 (0x00007f287d5d9000)
	libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007f287d2fd000)
	libm.so.6 => /lib/libm.so.6 (0x00007f287d077000)
	libc.so.6 => /lib/libc.so.6 (0x00007f287cd05000)
	liblapack.so.3gf => /usr/lib/liblapack.so.3gf (0x00007f287c240000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f287c023000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f28818b0000)
	libblas.so.3gf => /usr/lib/libblas.so.3gf (0x00007f287bd92000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f287bb8f000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f287b989000)



I also noticed that the -fPIC flags are now put there several times,
but I guess this can't hurt, that's not a problem for now.

Ondrej


More information about the petsc-users mailing list