On Sep 5, 2012, at 11:36 AM, Samuel Thibault wrote: >> 1. We do not allow "./configure --enable-static --enable-shared". Even >> though that's valid Automake/Libtool (i.e., it'll generate libhwloc.a *and* >> libhwloc.so), we don't allow it. > > Well, actually for instance Debian builds once with -static, and once > with -shared, and installs both...
That scenario is fine. It's just the "build both at once" scenario that isn't allowed. > BTW, I guess it wasn't attempted to make OMPI plugins work on windows? > The nightmare is even worse there... I don't know if Shiqing (the main OMPI Windows maintainer) allows plugins on Windows, or if he slurps the plugins into libmpi.dll. >> 2. If --enable-shared (which is OMPI's default), we build plugins as DSOs >> and do not link them against libmpi.so (and friends). >> >> 3. If --enable-static, we build plugins are part of libmpi.a (and friends). >> Issues #9 and #12 from table 1 on the wiki are avoided, as are >> >> 4. However: in both libmpi.so / libmpi.a cases, we can still allow the use >> of DSOs -- e.g., if a vendor drops in another DSO plugin that OMPI will just >> find/load/use at run time. This is cases #2, #5, #8, and #11 in table 1. > > Don't these vendor-provided DSO need to use some OMPI functions? Yes. And they work fine for #2 (above). > That said it looks a not too bad solution: avoiding loading plugins in > the static case, but still allowing third-party plugins, and it's up to > the user to make it work :) That's generally the conclusion we came to. The "need to open (hwloc|OMPI) as a plugin itself" case is not common. Specifically, it came up in the case of Python, Perl, and R MPI bindings. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/