Uuuurggghhh. More below.
> On Feb 2, 2015, at 1:04 PM, Ralph Castain <r...@open-mpi.org> wrote: > > Returning to the libltdl question: I think we may have a problem here. If we > remove libltdl and default to disable-dlopen, then the user will - without > warning - slurp all components that are able to build into libompi. This > includes everything they specified, BUT because of our "build if you can" > policy, it also includes a lot of stuff that they didn't specify and may not > even realize is present. Yes, this is true -- the size of libmpi.so (etc.) will actually go up. <digression> It would be an interesting experiment to see if the process size actually increases. When you dlopen() a DSO, it's loaded into distinct pages -- even components that are fairly small (e.g., mca_btl_self.so is 63726 bytes on my system) are automatically inflated to be multiples of 4K. When all the components are packed into libmpi.so (etc), the end result is actually smaller. That being said, when built as DSOs, OMPI can (and likely does) dlclose components that you don't use at run time. You obviously can't do that when all the components are in libmpi.so (etc.). Meaning: there's forces pulling both ways here -- I wonder whether users will typically grow or shrink their process sizes...? The answer may be an obvious "your process will grow", but it may not be. If someone has some spare cycles (hah!), this would be an interesting experiment. :-) </digression> We've had these discussions before; the conclusion of which was to ensure that we provide "--disable" and "--without" options for those people who know exactly what they want, and don't want anything else. So Ralph -- I hear the cautionary warning that you're raising. Are the --disable/--without options no longer viable? > As a result, they not only will have a bloated memory footprint, but they > also may very well have slurped in GPL libraries (e.g., if Slurm is present) > that could potentially impact their legal situation. We may need to > reconsider our build policy in light of this situation. IANAL and all that. If you're distributing binaries, my understanding is that this doesn't change your legal situation. I.e., if you're a) building an OMPI component that links against GPL libraries, and then b) distributing those binaries, it doesn't matter if you built the component as a DSO or as part of (for example) libmpi.so. ----- All that being said, yes, removing our default model of plugins is a *big* change. There are many subtle issues involved (including those that Ralph brought up in this mail). If we want to keep this model (plugins by default), the only way I can think of to do that is to manually embed libltdl ourselves. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/