#231 OpenMPI uses different library directory on OpenSUSE

OpenSUSE 12

Compilation of the parallel Pstream-library fail on OpenSUSE 12 because libmpi.so etc are in $MPI_ARCH_PATH/lib64 instead of the expected $MPI_ARCH_PATH/lib

That is by compiling OpenMPI via ThirdParty/Allmake.stage2 . Ubuntu 14.04 and Centos6.5 move the library into the correct directory

This problem also breaks compilation of scotch and other libraries that depend on MPI

Possible solutions
- "Who uses Susi anyway?"
- symbolic link in $MPI_ARCH_PATH (current fix)
- hope that it gets better in OpenSUSE 13
---- steps_to_reproduce ----
cd vagrantSandbox
vagrant up opensuse12
vagrant ssh opensuse12


  • Bernhard Gschaider

    Just created a OpenSuse 13.1 box (that is the LTR). If the problem does not exist there I will retire this ticket

  • Bernhard Gschaider

    Symbolic link has to be created on OpenSUSe 13.1Πas well

  • Martin Beaudoin

    Martin Beaudoin - 2014-06-05

    This strangely rings a bell....
    Let me check if I don't have a proper fix for this, outside of creating a symlink.

  • Martin Beaudoin

    Martin Beaudoin - 2014-06-05

    Here is a possible solution:

    In all the wmake rules' files mplib* (mplibOPENMPI, etc), we initialize the PINC and PLIBS "wmake variables" like this:

    PINC = $(PINC)
    PLIBS = $(PLIBS)

    Then, in the file etc/settings.sh or settings.csh, we assign default values to the two env. variables PINC and PLIBS like this:

    export PINC="-I$MPI_ARCH_PATH/include"ŒŒŒ # Default value
    export PLIBS="-L$MPI_ARCH_PATH/lib -lmpi"Π# Default value

    When using OpenMPI, both the PINC and PLIBS env. variables will be properly re-initialized using the "showme" option of mpicc, which should be very robust across various OSes. See the file etc/settings.shΠfor the details.

    I guess this can be adapted accordingly if one uses HPMPI, IntelMPI, MPICH, etc., and special care needs to be taken for the compiler or linker flags,

    This, I think, would be a very portable solution.

  • Bernhard Gschaider

    BTW: I worked around this for the time beeing in the bootstrap-script for the vagrant machines (generate a symlink)

    Some configurations (the wmake/rules/darwin* to be specific. I forgot about that) use their switches from "mpicc --showme:link" (incdirs, linkdirs) etc. Don't know if this is OpenMPI-specific

    I'd propose to make such a rules standard behaviour, but AFTER the release (it's OK to break the dev-version)


Log in to post a comment.