I got your log files and looked at them, but am replying earlier in the thread 
in order to give more specific answers.  More below.


> On Feb 27, 2016, at 5:42 AM, Emmanuel Thomé <emmanuel.th...@gmail.com> wrote:
> 
> Hi,
> 
> Thanks for your answer.
> 
> I have no LD_LIBRARY_PATH. I am not sure it should matter anyway,
> though: the objdump command looks at what the object file requests,
> not necessarily what happens at runtime as if we were using ldd.
> 
> This seems to be related to the MOFED debian packages including a .la
> file for the stuff they install (which is against debian practice,
> although not exactly for the same reason:
> https://wiki.debian.org/ReleaseGoals/LAFileRemoval ).
> 
> Specifically, I have /usr/lib/libosmcomp.la. If I delete that file,
> then no -L/usr/lib shows up in the relink command for libmpi; libtool
> just emits -losmcomp alone, which is fine. Then the subsequent
> -lopen-rte finds the one installed for the library being build, not
> the /usr one.

I think that there are two issues here:

1. osmcomp should not have installed a .la file for a default linker location
2. Libtool is assuming that .la files are only available for non-default linker 
locations, and therefore adds a -L for each directory where it finds a .la file

#1 can probably easily be fixed by the packager.
#2 is probably not unreasonable to assume, but certainly could also benefit 
from a more rigorous check at run-time.

Neither of these are fixable by Open MPI, unfortunately.  Fortunately, you 
discovered what seems to be the correct workaround: delete the 
/usr/lib/libosmcomp.la file.

As noted, #1 is only fixable by the osmcomp package. #2 is really only fixable 
by the GNU Libtool project.  I don't know if they'll fix it, or just tell you 
"packages should not install .la files for linker-default locations" (because 
it may be an effectively impossible problem to portably determine 
linker-default locations).

> It still does not look good that the libmpi.la file has the following:
> 
> dependency_libs=' -losmcomp -libverbs
> /tmp/openmpi-1.10.2/orte/libopen-rte.la
> /tmp/openmpi-1.10.2/opal/libopen-pal.la -lnuma -ldl -lrt -lm -lutil'

Why does this not look good?

> I have the impression that having -losmcomp -libverbs *after* the opal
> and orte .la files would be better. I don't see how to achieve this,
> though (just playing with ompi/Makefile.am at the moment, to no avail
> so far).

I'm not sure that this would have any effect.

Note, too, that 1.10.2 has a bug that one of the core Open MPI libs has a 
dependency on libibverbs (only Open MPI's plugins are supposed to be dependent 
upon libibverbs).  This was a mistake that is fixed in the 1.10.3 nightly 
tarballs.  Indeed, fixing this bug may have the side-effect of fixing your 
issue.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to