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