← Back to team overview

dolfin team mailing list archive

Re: scons / dorsal

 

On Tue, Jun 2, 2009 at 10:47 AM, Johan Hake <hake@xxxxxxxxx> wrote:
> On Tuesday 02 June 2009 10:28:11 Martin Sandve Alnæs wrote:
>> I've tried to use dorsal on my home laptop which I just upgraded to Jaunty.
>> I got some problems with trilinos (Harish: same as on my work laptop),
>> and will recompile now after removing all trilinos.pc files around the
>> system.
>>
>> I see from scons --help in dolfin that the path has been set correctly
>> there:
>>
>> withTrilinosDir: Specify path to Trilinos ( /path/to/withTrilinosDir )
>>     default: None
>>     actual: /opt/fenics904
>>
>> I've found two issues I will call bugs:
>>
>> 1) dolfin scons didn't copy the trilinos.pc it generated to the
>> installation directory. Should be an easy fix in dolfin scons.
>
> This sounds strange. This line in the SConstruct file should do that:
>
>  # We also like to install all generated pkg-config files.
>  buildDataHash["pkgconfig"] +=
>    scons.globFiles(Dir("#/scons/pkgconfig/").srcnode().abspath, "*.pc")

I can find no such line:

martinal@martinal-znote:~/dev/fenics904/dolfin-0.9.2$ find -name SConscript
./data/SConscript
./doc/SConscript
./dolfin/SConscript
./demo/SConscript
./test/SConscript
./sandbox/ilmarw/assembler_bench/Stokes_2D_TH/SConscript
./sandbox/ilmarw/assembler_bench/Laplace_2D/SConscript
./sandbox/ilmarw/assembler_bench/ICNS_3D_Momentum/SConscript
./sandbox/ilmarw/assembler_bench/Elasticity_3D/SConscript
./sandbox/ilmarw/assembler_bench/Stokes_2D_Stab/SConscript
martinal@martinal-znote:~/dev/fenics904/dolfin-0.9.2$ find -name
SConscript | xargs egrep buildData

> Where is your trilinos.pc situated?

Which one? I had several before, one in the path.
scons made a new one placed in the repository,
now I've copied that manually to the installation directory.
The libgaleri problem is now gone after the rebuild.


Compiling C++ demos works fine now, but "import dolfin" gives:

ImportError: /opt/fenics904/lib/libdolfin.so.0: undefined symbol:
_Z26KSPMonitorTrueResidualNormP6_p_KSPidPv

In [2]:
Do you really want to exit ([y]/n)?
martinal@martinal-znote:~$ c++filt _Z26KSPMonitorTrueResidualNormP6_p_KSPidPv
KSPMonitorTrueResidualNorm(_p_KSP*, int, double, void*)



Turns out that petsc isn't handled correctly either. It's built and
installed by dorsal,
and dolfin scons gets the right directory for it,

withPetscDir: Specify path to PETSc ( /path/to/withPetscDir )
    default: None
    actual: /opt/fenics904

But no pkg-config file has even been generated in this case:
martinal@martinal-znote:~/dev/fenics904/dolfin-0.9.2$ ls scons/pkgconfig/
boost.pc  gmp.pc  mtl4.pc  parmetis.pc  scotch.pc  trilinos.pc

martinal@martinal-znote:~/dev/fenics904/dolfin-0.9.2$ pkg-config --cflags petsc
-I/usr/lib/petscdir/2.3.3/bmake/linux-gnu-c-opt
-I/usr/lib/petscdir/2.3.3/include -I/usr/lib/openmpi/include
-I/usr/lib/openmpi/lib -I.

Martin


Follow ups

References