Skip to content

Commit e68a639

Browse files
committed
README: Update --enable-mca-dso|static docs
Document/clarify the --enable-mca-dso and --enable-mca-static behavior, and also clarify the --enable-dlopen behavior. Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
1 parent 3830582 commit e68a639

File tree

1 file changed

+89
-13
lines changed

1 file changed

+89
-13
lines changed

README

Lines changed: 89 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -966,20 +966,25 @@ INSTALLATION OPTIONS
966966
--disable-wrapper-runpath.
967967

968968
--enable-dlopen
969-
Build all of Open MPI's components as standalone Dynamic Shared
970-
Objects (DSO's) that are loaded at run-time (this is the default).
971-
The opposite of this option, --disable-dlopen, causes two things:
969+
Enable Open MPI to search for additional components at run time
970+
(i.e., components outside of the core Open MPI libraries). This is
971+
the default.
972972

973-
1. All of Open MPI's components will be built as part of Open MPI's
974-
normal libraries (e.g., libmpi).
975-
2. Open MPI will not attempt to open any DSO's at run-time.
973+
The opposite of this option, --disable-dlopen, causes the following:
974+
975+
1. Open MPI will not attempt to open any DSO's at run-time.
976+
2. configure behaves as if --enable-mca-static was passed on the
977+
command line.
978+
3. configure will ignore the --enable-mca-dso command line flag.
979+
980+
See the descriptions of --enable-mca-static / --enable-mca-dso for
981+
more information.
976982

977983
Note that this option does *not* imply that OMPI's libraries will be
978984
built as static objects (e.g., libmpi.a). It only specifies the
979-
location of OMPI's components: standalone DSOs or folded into the
980-
Open MPI libraries. You can control whether Open MPI's libraries
981-
are build as static or dynamic via --enable|disable-static and
982-
--enable|disable-shared.
985+
behavior described above. You can control whether Open MPI's
986+
libraries are build as static or dynamic via --enable|disable-static
987+
and --enable|disable-shared.
983988

984989
--disable-show-load-errors-by-default
985990
Set the default value of the mca_base_component_show_load_errors MCA
@@ -1022,9 +1027,80 @@ INSTALLATION OPTIONS
10221027
typical users of Open MPI.
10231028

10241029
--enable-mca-no-build=LIST
1025-
Comma-separated list of <type>-<component> pairs that will not be
1026-
built. For example, "--enable-mca-no-build=btl-portals,oob-ud" will
1027-
disable building the portals BTL and the ud OOB component.
1030+
Comma-separated list of <framework>-<component> pairs that will not
1031+
be built. For example, "--enable-mca-no-build=btl-portals,oob-ud"
1032+
will disable building the portals BTL and the ud OOB component.
1033+
1034+
--enable-mca-dso[=LIST]
1035+
--enable-mca-static[=LIST]
1036+
These two options govern the behavior of how Open MPI's frameworks
1037+
and components are built.
1038+
1039+
The --enable-mca-dso option specifies which frameworks and/or
1040+
components are built as Dynamic Shared Objects (DSOs).
1041+
Specifically, DSOs are built as "plugins" outside of the core Open
1042+
MPI libraries, and are loaded by Open MPI at run time.
1043+
1044+
The --enable-mca-static option specifies which frameworks and/or
1045+
components are built as part of the core Open MPI libraries (i.e.,
1046+
they are not built as DSOs, and therefore do not need to be
1047+
separately discovered and opened at run time).
1048+
1049+
Both options can be used one of three ways:
1050+
1051+
1. --enable-mca-OPTION (with no value)
1052+
2. --enable-mca-OPTION=LIST
1053+
3. --disable-mca-OPTION (with no value)
1054+
1055+
LIST is a comma-delimited list of Open MPI frameworks and/or
1056+
framework+component tuples. Examples:
1057+
1058+
* "btl" specifies the entire BTL framework
1059+
* "btl-tcp" specifies just the TCP component in the BTL framework
1060+
* "mtl,btl-tcp" specifies the entire MTL framework and the TCP
1061+
component in the BTL framework
1062+
1063+
Open MPI's configure script uses the values of these two options
1064+
when evaluating each component to determine how it should be built
1065+
by evaluating these conditions in order:
1066+
1067+
1. If an individual component's build behavior has been specified
1068+
via these two options, configure uses that behavior.
1069+
2. Otherwise, if the component is in a framework whose build
1070+
behavior has been specified via these two options, configure uses
1071+
that behavior.
1072+
3. Otherwise, configure uses the global default build behavior.
1073+
1074+
Note that as of Open MPI v5.0.0, configure's global default is to
1075+
build all components as static (i.e., part of the Open MPI core
1076+
libraries, not as DSO's). Prior to Open MPI v5.0.0, the global
1077+
default behavior was to build most components as DSOs.
1078+
1079+
Also note that if the --disable-dlopen option is specified, then
1080+
Open MPI will not be able to search for DSOs at run time, and the
1081+
value of the --enable-mca-dso option will be silently ignored.
1082+
1083+
Some examples:
1084+
1085+
1. Default to building all components as static (i.e., as part of
1086+
the Open MPI core libraries -- no DSOs):
1087+
1088+
$ ./configure
1089+
1090+
2. Build all components as static, except the TCP BTL, which will be
1091+
built as a DSO:
1092+
1093+
$ ./configure --enable-mca-dso=btl-tcp
1094+
1095+
3. Build all components as static, except all BTL components, which
1096+
will be built as DSOs:
1097+
1098+
$ ./configure --enable-mca-dso=btl
1099+
1100+
4. Build all components as static, except all MTL components and the
1101+
TCP BTL component, which will be built as DSOs:
1102+
1103+
$ ./configure --enable-mca-dso=mtl,btl-tcp
10281104

10291105
NETWORKING SUPPORT / OPTIONS
10301106

0 commit comments

Comments
 (0)