← Back to team overview

dolfin team mailing list archive

Re: scons / dorsal

 

Martin Sandve Alnæs wrote:
> On Tue, Jun 2, 2009 at 12:34 PM, Johannes Ring <johannr@xxxxxxxxx> wrote:
>> On Tue, June 2, 2009 12:24, Martin Sandve Alnæs wrote:
>>> 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
>> In DOLFIN 0.9.2 buildDataHash is called ret and the line you are looking
>> for is 381 in dolfin/SConscript.
>>
>>>> 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
>> No, because you already have one that is found in $PKG_CONFIG_PATH.
> 
> I consider this behaviour a significant bug. A new one should be generated if
> the $PKG_CONFIG_PATH version doesn't match the manually specified version.

Recall this (fairly epic) thread from earlier this year:
http://www.mail-archive.com/dolfin-dev@xxxxxxxxxx/msg08416.html

As a result of this discussion, Johannes implemented the current DOLFIN
build sequence that goes:

scons configure
scons
scons install

But I am still running into something like the original issue.

When I call scons with a withPetscdir=/foo/bar, it creates a petsc
pkgconfig file that looks correct (i.e., it points to /foo/bar).
However, when it attempts to test for slepc while configuring, the
compilation+link command (as reported in simula_scons.log) points to a
different system petsc path. I am not sure where it is picking this up
from, but I think this is a problem in the slepc pkgconfig generator.

Could a scons guru look into this?

Harish


Follow ups

References