On Jan 29, 2015, at 9:11 PM, Paul Hargrove <phhargr...@lbl.gov> wrote:
> 
> If I understand one is (or will be soon) expected to have libtool-dev(el) 
> installed on the build system, even if one is not a OMPI developer.

No.  We don't want to raise the bar that high for simple user installations.

If you are installing an OMPI tarball from source (that is not a git clone):

1. If you have libltdl devel support installed (i.e., ltdl.h), then OMPI will 
build as it always has: with plugin support.

2. If you do not have libltdl devel support installed, then OMPI will 
effectively behave as if --disable-dlopen was specified.  I.e., there will be 
no plugin support and all OMPI plugins will be slurped up into their 
upper-level libraries (e.g., BTLs are slurped up into libmpi.so or libmpi.a).

Hence, from OMPI tarballs, *OMPI will always build and function correctly* -- 
regardless of whether you have libltdl / libltdl-devel.

I'm guessing that many user installations will now build without plugin support 
(because libltdl-devel is typically not installed in Linux distros / OS X by 
default).  However, after talking this through in Dallas this week, I'm not 
thinking that this is a problem.

> How does this plan to cease embedding libltdl align with the fact that 
> autogen.pl currently applies patches to the parts of the generated configure 
> from the *packager's* system?  Isn't there now going to be a disconnect 
> between the versions of libtool-related portions of the configure script 
> shipped in a tarball and the version (if any) of libltdl on the system 
> building from that tarball?

I think that's two questions:

1. Will OMPI continue to patch configure/etc. w.r.t. libltdl functionality?

No; there's no need, because we were effectively patching against the embedded 
libltdl.  Since we're not embedding, there's nothing to patch.

We will lose the "bug fix" that we were patching, however (there is a giant 
comment in this file that explains what it is for): 
https://github.com/open-mpi/ompi/blob/master/config/libltdl-preopen-error.diff

That may be a bit annoying.  ...but then again, if most users are going to end 
up not building plugin support, the need for that patch effectively goes away.

2. What happens if OMPI tries to build against an old libltdl?

We *should* be ok.  libltdl has been stable for a long time.  libltdl added the 
lt_dladvise functionality at one point, but we added configure tests to check 
for that a long time ago (i.e., the C code can handle whether or not your 
libltdl has support for lt_dladvise).

This PR actually adds the results of those lt_dladvise configury tests to 
ompi_info output.

> Also, I can still build v1.8 on an old Red Hat 8 system where the system 
> libtool/libltdl is 1.4.2, perhaps only because Open MPI embeds a recent 
> version.

Could be.  Would you mind testing the OMPI PR branch on this old system?  I can 
make you a tarball if it would help.

> What minimum version of libltdl is required after the proposed change?
> Will I need to install a libtool-2.x on that old system to be able to build 
> OpenMPI with dlopen support?

I don't know what the minimum Libtool/libltdl required version is; I didn't try 
to back track to find it.

I think that if we can still build on a sufficiently-old system (e.g., Red Hat 
8 with your LT 1.4.2), that is probably good enough.

Also, remember: libltdl has *never been required* for Open MPI.  Although 
building with libltdl has always been the default, you could always have 
disabled it.  This PR effectively now changes the default to 
build-it-if-we-got-it-and-skip-it-if-we-don't for users, and developers must 
specify --disable-dlopen if they don't have libltdl-devel (per the assumption 
that most developers will want to build with dlopen support).

-- 
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