Skip to content

Commit 639dbdb

Browse files
author
Ralph Castain
committed
For maintainability, fold the external PMIx 2.x integration into the internal PMIx 2.x library component. This ensures that we always stay in sync with the two as that is becoming a problem.
1 parent 871bedb commit 639dbdb

14 files changed

+324
-5065
lines changed

config/opal_check_pmi.m4

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ AC_DEFUN([OPAL_CHECK_PMI],[
227227

228228
AC_DEFUN([OPAL_CHECK_PMIX],[
229229
230+
OPAL_VAR_SCOPE_PUSH([opal_external_pmix_save_CPPFLAGS opal_external_pmix_save_LDFLAGS opal_external_pmix_save_LIBS])
231+
230232
AC_ARG_WITH([pmix],
231233
[AC_HELP_STRING([--with-pmix(=DIR)],
232234
[Build PMIx support. DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of PMIx. "external" forces Open MPI to use an external installation of PMIx. Supplying a valid directory name also forces Open MPI to use an external installation of PMIx, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries. Note that Open MPI does not support --without-pmix.])])
@@ -241,14 +243,38 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
241243
AS_IF([test -z "$with_pmix" || test "$with_pmix" = "yes" || test "$with_pmix" = "internal"],
242244
[AC_MSG_RESULT([no])
243245
opal_external_pmix_happy=no],
246+
244247
[AC_MSG_RESULT([yes])
245248
# check for external pmix lib */
246249
AS_IF([test "$with_pmix" = "external"],
247250
[pmix_ext_install_dir=/usr],
248251
[pmix_ext_install_dir=$with_pmix])
252+
249253
# Make sure we have the headers and libs in the correct location
250254
OPAL_CHECK_WITHDIR([external-pmix], [$pmix_ext_install_dir/include], [pmix.h])
251255
OPAL_CHECK_WITHDIR([external-libpmix], [$pmix_ext_install_dir/lib], [libpmix.*])
256+
257+
# check the version
258+
opal_external_pmix_save_CPPFLAGS=$CPPFLAGS
259+
opal_external_pmix_save_LDFLAGS=$LDFLAGS
260+
opal_external_pmix_save_LIBS=$LIBS
261+
262+
LDFLAGS="-L$pmix_ext_install_dir/lib $LDFLAGS"
263+
AC_SEARCH_LIBS([PMIx_Register_event_handler], [pmix],
264+
[opal_external_pmix_version=2],
265+
[opal_external_pmix_version=1])
266+
267+
AC_MSG_CHECKING([PMIx version])
268+
AC_MSG_RESULT([$opal_external_pmix_version])
269+
270+
CPPFLAGS=$opal_external_pmix_save_CPPFLAGS
271+
LDFLAGS=$opal_external_pmix_save_LDFLAGS
272+
LIBS=$opal_external_pmix_save_LIBS
273+
274+
opal_external_pmix_CPPFLAGS="-I$pmix_ext_install_dir/include"
275+
opal_external_pmix_LDFLAGS=-L$pmix_ext_install_dir/lib
276+
opal_external_pmix_LIBS=-lpmix
252277
opal_external_pmix_happy=yes])
253278
279+
OPAL_VAR_SCOPE_POP
254280
])

opal/mca/pmix/ext114/configure.m4

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43,31 +43,29 @@ AC_DEFUN([MCA_opal_pmix_ext114_CONFIG],[
4343
AC_MSG_WARN([LIBRARY THIS LIBRARY MUST POINT TO THE SAME ONE USED ])
4444
AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT])
4545
AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])])
46-
external_WRAPPER_EXTRA_CPPFLAGS='-I${includedir}/openmpi/$opal_pmix_external_basedir/pmix -I${includedir}/openmpi/$opal_pmix_external_basedir/pmix/include'
47-
# check for the 1.1.4 version by looking for a function
48-
# which was later removed
49-
AC_MSG_CHECKING([if external component is version 1.1.4])
50-
OPAL_CHECK_PACKAGE([opal_pmix_ext114],
51-
[pmix.h],
52-
[pmix],
53-
[PMIx_Register_errhandler],
54-
[-lpmix],
55-
[$pmix_ext_install_dir],
56-
[$pmix_ext_install_dir/lib],
57-
[AC_MSG_RESULT([yes])
58-
opal_pmix_external_114_happy=yes],
59-
[AC_MSG_RESULT([no])
60-
opal_pmix_external_114_happy=no])
6146

62-
AC_SUBST(opal_pmix_ext114_CPPFLAGS)
63-
AC_SUBST(opal_pmix_ext114_LDFLAGS)
64-
AC_SUBST(opal_pmix_ext114_LIBS)
47+
# check for the 1.1.4 version
48+
AC_MSG_CHECKING([if external component is version 1.x])
49+
AS_IF([test "$opal_external_pmix_version" = "1"],
50+
[AC_MSG_RESULT([yes])
51+
opal_pmix_external_114_happy=yes],
52+
[AC_MSG_RESULT([no])
53+
opal_pmix_external_114_happy=no])
6554

6655
AS_IF([test "$opal_pmix_external_114_happy" = "yes"],
6756
[$1
68-
# need to set the wrapper flags for static builds
69-
pmix_ext114_WRAPPER_EXTRA_LDFLAGS="$opal_pmix_ext114_LDFLAGS"
70-
pmix_ext114_WRAPPER_EXTRA_LIBS="$opal_pmix_ext114_LIBS"],
57+
# need to set the wrapper flags for static builds
58+
pmix_ext114_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS
59+
pmix_ext114_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS],
7160
[$2])],
7261
[$2])
62+
63+
opal_pmix_ext114_CPPFLAGS=$opal_external_pmix_CPPFLAGS
64+
opal_pmix_ext114_LDFLAGS=$opal_external_pmix_LDFLAGS
65+
opal_pmix_ext114_LIBS=$opal_external_pmix_LIBS
66+
67+
AC_SUBST([opal_pmix_ext114_CPPFLAGS])
68+
AC_SUBST([opal_pmix_ext114_LDFLAGS])
69+
AC_SUBST([opal_pmix_ext114_LIBS])
70+
7371
])dnl

0 commit comments

Comments
 (0)