Use the 'module' system to support multiple installations on a cluster.

Garth

On Fri, 1 Aug, 2014 at 3:36 PM, Jan Blechta <[email protected]> wrote:
On Fri, 1 Aug 2014 16:16:38 +0200
Mikael Mortensen <[email protected]> wrote:

 Hi,

 I'm trying to install master version of fenics on top of a stable
 version installed by Johannes on the Abel cluster. Johannes has more
 or less everything, including dolfin, installed under
/usit/abel/u1/johannr/nobackup/src/hashstack/default/, which is on my
 path. The stable version here works just fine. I now want to use all
the dependencies here and build a master version, so I'm using dorsal with unstable for fiat/ffc/ufl/instant, and install in my own folder.
 I then clone dolfin in a different directory and run cmake.local. It
 stops at MultiMeshAssembler.cpp because for some reason it picks up
 ufc.h from the stable and not the unstable branch, even though the
 unstable is sourced last. From my .bashrc:

 source /usit/abel/u1/johannr/fenics-1.4.0-gcc.conf  # stable
 everything
source /usit/abel/u1/mikaem/Fenics/fenics-1.4/share/fenics/fenics.conf
 # unstable fiat/ffc/ufl/instant/ufc.h

 With some hacking of paths I am able to fix MultiMeshAssembler and
everything compiles just fine. However, the python version still does
 not work and I find that it is because the module-libraries are
 picking up the stable dolfin version. Here is ldd of
 dolfin/cpp/_common.so:

 [mikaem@login-0-0 ~]$ ldd
/usit/abel/u1/mikaem/Fenics/dolfin/local.master/lib/python2.7/site-packages/dolfin/cpp/_common.so
     linux-vdso.so.1 =>  (0x00007fff7816d000)
     libdolfin.so.1.4 =>
/usit/abel/u1/johannr/nobackup/src/hashstack/default/lib/libdolfin.so.1.4
 (0x00007fb14c5ee000)
     libpython2.7.so.1.0 =>
/usit/abel/u1/johannr/nobackup/src/hashstack/default/lib/libpython2.7.so.1.0
 (0x00007fb14c1e7000)
 ...

 Evidently _common.so has picked up the stable libdolfin.so.1.4. Any
 hints at how this can be fixed? An alternative I don't like is to
 give up Johannes' dependencies all together and install everything
 for myself.

You should not use Johannes' fenics.conf, it probably sets
LD_LIBRARY_PATH. Linker can't distinguish between stable and unstable as they have same name libdolfin.so.1.4. Rather you should tell to DOLFIN's
CMake about all the dependencies which you want to use from Johannes.

Or maybe try a little bit messy solution, keep the build you have and
then get rid of Johannes' LD_LIBRARY_PATH in your own fenics.conf a
check what linker says.

Generally, it will be everytime tricky. You should convince Johannes to install dependencies you need separately from stable FEniCS. (You could
simulate this with symlinks.)

Jan


 Thanks for any help.

 Best regards

 Mikael

_______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support

_______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support

Reply via email to