← Back to team overview

dolfin team mailing list archive

Re: scons / dorsal

 

On Sun, August 2, 2009 23:41, Harish Narayanan wrote:
> 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.

Does it work as expected if you specify both withPetscDir and withSlepcDir
in the configure step? Note: You should also define the PETSC_ARCH
variable.

Johannes




Follow ups

References