diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c
index 69c5191112..1d0080dd77 100644
--- a/src/plugins/mpi/pmix/mpi_pmix.c
+++ b/src/plugins/mpi/pmix/mpi_pmix.c
@@ -87,6 +87,8 @@ const char plugin_type[] = "mpi/pmix_v1";
const char plugin_type[] = "mpi/pmix_v2";
#elif (HAVE_PMIX_VER == 3)
const char plugin_type[] = "mpi/pmix_v3";
+#elif (HAVE_PMIX_VER == 4)
+const char plugin_type[] = "mpi/pmix_v4";
#endif
const uint32_t plugin_version = SLURM_VERSION_NUMBER;
@@ -112,8 +114,10 @@ static void *_libpmix_open(void)
xstrfmtcat(full_path, "%s/", PMIXP_V2_LIBPATH);
#elif defined PMIXP_V3_LIBPATH
xstrfmtcat(full_path, "%s/", PMIXP_V3_LIBPATH);
+#elif defined PMIXP_V4_LIBPATH
+ xstrfmtcat(full_path, "%s/", PMIXP_V4_LIBPATH);
#endif
- xstrfmtcat(full_path, "libpmix.so");
+ xstrfmtcat(full_path, "libpmix.so.2");
lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
xfree(full_path);
diff --git a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
index 44013246e3..96c40b5c3a 100644
--- a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
+++ b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
@@ -169,7 +169,7 @@ static int _load_ucx_lib()
* we have from autoconf
*/
char *full_path = NULL;
- xstrfmtcat(full_path, "%s/libucp.so", PMIXP_UCX_LIBPATH);
+ xstrfmtcat(full_path, "%s/libucp.so.0", PMIXP_UCX_LIBPATH);
_ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
xfree(full_path);
if (_ucx_lib_handler) {
@@ -180,7 +180,7 @@ static int _load_ucx_lib()
* known by dynamic linker.
*/
#endif
- _ucx_lib_handler = dlopen("libucp.so", RTLD_LAZY | RTLD_GLOBAL);
+ _ucx_lib_handler = dlopen("libucp.so.0", RTLD_LAZY | RTLD_GLOBAL);
if (!_ucx_lib_handler) {
char *err = dlerror();
PMIXP_ERROR("Cannot open UCX lib: %s", (err) ? err : "unknown");