← Back to team overview

dolfin team mailing list archive

Re: scons / dorsal

 

Johannes Ring wrote:
> 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.

I recall all three (PETSC_ARCH, withPetscDir, withSlepcDir) being set
when I ran into this, but I will check it more carefully.

Harish


References