@@ -956,20 +956,116 @@ Additionally, if a search directory is specified in the form
956956 ` --disable-wrapper-runpath ` .
957957
958958* ` --enable-dlopen ` :
959- Build all of Open MPI's components as standalone Dynamic Shared
960- Objects (DSO's ) that are loaded at run-time (this is the default).
961- The opposite of this option, ` --disable-dlopen ` , causes two things:
959+ Enable loading of Open MPI components as standalone Dynamic
960+ Shared Objects (DSOs ) that are loaded at run-time. This option is
961+ enabled by default.
962962
963- 1 . All of Open MPI's components will be built as part of Open MPI's
964- normal libraries (e.g., ` libmpi ` ).
965- 1 . Open MPI will not attempt to open any DSO's at run-time.
963+ The opposite of this option, --disable-dlopen, causes the following:
966964
967- Note that this option does * not* imply that OMPI's libraries will be
968- built as static objects (e.g., ` libmpi.a ` ). It only specifies the
969- location of OMPI's components: standalone DSOs or folded into the
970- Open MPI libraries. You can control whether Open MPI's libraries
971- are build as static or dynamic via ` --enable|disable-static ` and
972- ` --enable|disable-shared ` .
965+ 1 . Open MPI will not attempt to open any DSOs at run-time.
966+ 1 . configure behaves as if the --enable-mca-static argument was set.
967+ 1 . configure will ignore the --enable-mca-dso argument.
968+
969+ See the description of --enable-mca-static / --enable-mca-dso for
970+ more information.
971+
972+ Note that this option does * not* change how Open MPI's libraries
973+ (libmpi, for example) will be built. You can change whether Open
974+ MPI builds static or dynamic libraries via the
975+ --enable|disable-static and --enable|disable-shared arguments.
976+
977+ * ` --enable-mca-dso[=LIST] ` and ` --enable-mca-static[=LIST] `
978+ These two options, along with --enable-mca-no-build, govern the
979+ behavior of how Open MPI's frameworks and components are built.
980+
981+ The --enable-mca-dso option specifies which frameworks and/or
982+ components are built as Dynamic Shared Objects (DSOs).
983+ Specifically, DSOs are built as "plugins" outside of the core Open
984+ MPI libraries, and are loaded by Open MPI at run time.
985+
986+ The --enable-mca-static option specifies which frameworks and/or
987+ components are built as part of the core Open MPI libraries (i.e.,
988+ they are not built as DSOs, and therefore do not need to be
989+ separately discovered and opened at run time).
990+
991+ Both options can be used one of two ways:
992+
993+ 1 . --enable-mca-OPTION (with no value)
994+ 1 . --enable-mca-OPTION=LIST
995+
996+ --enable-mca-OPTION=no or --disable-mca-OPTION are both legal
997+ options, but have no impact on the selection logic described below.
998+ Only affirmative options change the selection process.
999+
1000+ LIST is a comma-delimited list of Open MPI frameworks and/or
1001+ framework+component tuples. Examples:
1002+
1003+ * "btl" specifies the entire BTL framework
1004+ * "btl-tcp" specifies just the TCP component in the BTL framework
1005+ * "mtl,btl-tcp" specifies the entire MTL framework and the TCP
1006+ component in the BTL framework
1007+
1008+ Open MPI's configure script uses the values of these two options
1009+ when evaluating each component to determine how it should be built
1010+ by evaluating these conditions in order:
1011+
1012+ 1 . If an individual component's build behavior has been specified
1013+ via these two options, configure uses that behavior.
1014+ 1 . Otherwise, if the component is in a framework whose build
1015+ behavior has been specified via these two options, configure uses
1016+ that behavior.
1017+ 1 . Otherwise, configure uses the global default build behavior.
1018+
1019+ At each level of the selection process, if the component is
1020+ specified to be built as both a static and dso component, the static
1021+ option will win.
1022+
1023+ Note that as of Open MPI v5.0.0, configure's global default is to
1024+ build all components as static (i.e., part of the Open MPI core
1025+ libraries, not as DSO's). Prior to Open MPI v5.0.0, the global
1026+ default behavior was to build most components as DSOs.
1027+
1028+ Also note that if the --disable-dlopen option is specified, then
1029+ Open MPI will not be able to search for DSOs at run time, and the
1030+ value of the --enable-mca-dso option will be silently ignored.
1031+
1032+ Some examples:
1033+
1034+ 1 . Default to building all components as static (i.e., as part of
1035+ the Open MPI core libraries -- no DSOs):
1036+
1037+ $ ./configure
1038+
1039+ 1 . Build all components as static, except the TCP BTL, which will be
1040+ built as a DSO:
1041+
1042+ $ ./configure --enable-mca-dso=btl-tcp
1043+
1044+ 1 . Build all components as static, except all BTL components, which
1045+ will be built as DSOs:
1046+
1047+ $ ./configure --enable-mca-dso=btl
1048+
1049+ 1 . Build all components as static, except all MTL components and the
1050+ TCP BTL component, which will be built as DSOs:
1051+
1052+ $ ./configure --enable-mca-dso=mtl,btl-tcp
1053+
1054+ 1 . Build all BTLs as static, except the TCP BTL, as the
1055+ <framework-component > option is more specific than the
1056+ <framework > option:
1057+
1058+ $ ./configure --enable-mca-dso=btl --enable-mca-static=btl-tcp
1059+
1060+ 1 . Build the TCP BTL as static, because the static option at the
1061+ same level always wins:
1062+
1063+ $ ./configure --enable-mca-dso=btl-tcp --enable-mca-static=btl-tcp
1064+
1065+ * ` --enable-mca-no-build=LIST ` :
1066+ Comma-separated list of ` <framework>-<component> ` pairs that will not be
1067+ built. For example, ` --enable-mca-no-build=btl-portals,oob-ud ` will
1068+ disable building the portals BTL and the ud OOB component.
9731069
9741070* ` --disable-show-load-errors-by-default ` :
9751071 Set the default value of the ` mca_base_component_show_load_errors `
@@ -1012,11 +1108,6 @@ Additionally, if a search directory is specified in the form
10121108 these libraries for their own purposes. This option is * not*
10131109 intended for typical users of Open MPI.
10141110
1015- * ` --enable-mca-no-build=LIST ` :
1016- Comma-separated list of ` <type>-<component> ` pairs that will not be
1017- built. For example, ` --enable-mca-no-build=btl-portals,oob-ud ` will
1018- disable building the portals BTL and the ud OOB component.
1019-
10201111
10211112### Networking support / options
10221113
0 commit comments