From 435f70751276804fafb7d9b3e21d24200f9739ab Mon Sep 17 00:00:00 2001 From: Alexei Colin Date: Sun, 11 Apr 2021 06:09:56 +0000 Subject: [PATCH] config: default to DSO for plugins with external deps With the new default to link all plugins as static, the dependencies of all the plugins (e.g. transport plugins) become direct dependencies of top-level binaries (e.g. opal_wrapper aka mpicc). These direct dependencies are simply bad, because the dependency is false, it is unnecessary for running most binaries. But if that's not sufficient justification, the current default behavior is different from old behavior in a user-unfriendly way: mpicc --version mpicc: error while loading shared libraries: libugni.so.0: cannot open shared object file: No such file or directory The workaround the user needs to figure out is to build with `--enable-mca-dso` set, either for all or for a specific set of components. In PRRTE #871 it was decided that a behavior that's more user friendly than this can be provided by implementing a smart default for which components should default to DSO compile mode. One more component that also should default to DSO is `btl-sm` but only when Cray `xpmem` is found (it is enabled by default). This would require some kind of conditional logic. See this issue for rationale: https://github.com/openpmix/prrte/issues/871 This patch to OMPI is a twin to the patches that were already committed to PRRTE and PMIX: PRRTE e3914b0ad0df30939d329fe615a0ec37e64dcf2a PMIX 0b8f747cdc0d2a76ab727e2a18edde2870246521 Signed-off-by: Alexei Colin --- config/opal_mca.m4 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/opal_mca.m4 b/config/opal_mca.m4 index e8be7ca9f4d..c0df8ed85d1 100644 --- a/config/opal_mca.m4 +++ b/config/opal_mca.m4 @@ -68,7 +68,8 @@ AC_DEFUN([OPAL_MCA],[ type-component pairs that will be built as run-time loadable components (as opposed to statically linked in), if supported on this - platform.])]) + platform.])], + [], [enable_mca_dso=btl-ugni,rcache-udreg]) AC_ARG_ENABLE([mca-static], [AS_HELP_STRING([--enable-mca-static=LIST], [Comma-separated list of types and/or