From 77c8b0343f7a858de71a6bb77524d8c6ead721e2 Mon Sep 17 00:00:00 2001 From: Ralph Castain Date: Mon, 7 Aug 2017 09:36:16 -0700 Subject: [PATCH 1/3] When we specify --with-devel-headers, we also emit a copy of libpmix. However, that library was built against the OPAL libevent component, which means all the libevent functions are prefixed with OPAL names. So ensure that the emitted libpmix is linked back against libopen-pal so those symbols will be resolved. Signed-off-by: Ralph Castain (cherry picked from commit d593e5a4cee4684e74ecfd758781b77a84caf593) --- opal/mca/pmix/pmix2x/configure.m4 | 19 +++---------------- opal/mca/pmix/pmix2x/pmix/config/pmix.m4 | 12 ++++++++++++ opal/mca/pmix/pmix2x/pmix/src/Makefile.am | 3 ++- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/opal/mca/pmix/pmix2x/configure.m4 b/opal/mca/pmix/pmix2x/configure.m4 index 6fc5baa1a0e..c092465f0f0 100644 --- a/opal/mca/pmix/pmix2x/configure.m4 +++ b/opal/mca/pmix/pmix2x/configure.m4 @@ -28,7 +28,7 @@ AC_DEFUN([MCA_opal_pmix_pmix2x_CONFIG],[ AC_CONFIG_FILES([opal/mca/pmix/pmix2x/Makefile]) - OPAL_VAR_SCOPE_PUSH([PMIX_VERSION opal_pmix_pmix2x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix2x_save_LDFLAGS opal_pmix_pmix2x_save_LIBS opal_pmix_pmix2x_basedir opal_pmix_pmix2x_args opal_pmix_pmix2x_happy opal_pmix_pmix2x_sm_flag pmix_pmix2x_status_filename]) + OPAL_VAR_SCOPE_PUSH([PMIX_VERSION opal_pmix_pmix2x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix2x_save_LDFLAGS opal_pmix_pmix2x_save_LIBS opal_pmix_pmix2x_basedir opal_pmix_pmix2x_args opal_pmix_pmix2x_happy pmix_pmix2x_status_filename]) opal_pmix_pmix2x_basedir=opal/mca/pmix/pmix2x @@ -37,18 +37,6 @@ AC_DEFUN([MCA_opal_pmix_pmix2x_CONFIG],[ opal_pmix_pmix2x_save_LDFLAGS=$LDFLAGS opal_pmix_pmix2x_save_LIBS=$LIBS - AC_ARG_ENABLE([pmix-dstore], - [AC_HELP_STRING([--enable-pmix-dstore], - [Enable PMIx shared memory data store (default: enabled)])]) - AC_MSG_CHECKING([if PMIx shared memory data store is enabled]) - if test "$enable_pmix_dstore" != "no"; then - AC_MSG_RESULT([yes]) - opal_pmix_pmix2x_sm_flag=--enable-dstore - else - AC_MSG_RESULT([no (disabled)]) - opal_pmix_pmix2x_sm_flag=--disable-dstore - fi - AC_ARG_ENABLE([pmix-timing], [AC_HELP_STRING([--enable-pmix-timing], [Enable PMIx timing measurements (default: disabled)])]) @@ -61,15 +49,14 @@ AC_DEFUN([MCA_opal_pmix_pmix2x_CONFIG],[ opal_pmix_pmix2x_timing_flag=--disable-pmix-timing fi - opal_pmix_pmix2x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX2X_ $opal_pmix_pmix2x_sm_flag $opal_pmix_pmix2x_timing_flag --without-tests-examples --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\" --enable-embedded-mode" + opal_pmix_pmix2x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX2X_ $opal_pmix_pmix2x_timing_flag --without-tests-examples --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\" --enable-embedded-mode" AS_IF([test "$enable_debug" = "yes"], [opal_pmix_pmix2x_args="--enable-debug $opal_pmix_pmix2x_args" CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g"], [opal_pmix_pmix2x_args="--disable-debug $opal_pmix_pmix2x_args" CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"]) AS_IF([test "$with_devel_headers" = "yes"], - [opal_pmix_pmix2x_args="--with-devel-headers $opal_pmix_pmix2x_args"], - [opal_pmix_pmix2x_args=$opal_pmix_pmix2x_args]) + [opal_pmix_pmix2x_args="--with-devel-headers --with-pmix-extra-lib=$OPAL_TOP_BUILDDIR/opal/lib${OPAL_LIB_PREFIX}open-pal.la $opal_pmix_pmix2x_args"]) CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include -I$OPAL_TOP_BUILDDIR/opal/include $CPPFLAGS" OPAL_CONFIG_SUBDIR([$opal_pmix_pmix2x_basedir/pmix], diff --git a/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 b/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 index 9431599e78a..6f9548589b0 100644 --- a/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 +++ b/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 @@ -156,6 +156,18 @@ AC_DEFUN([PMIX_SETUP_CORE],[ AC_SUBST(PMIX_RENAME) AC_CONFIG_FILES(pmix_config_prefix[include/pmix_rename.h]) + # Add any extra lib? + AC_ARG_WITH([pmix-extra-lib], + AC_HELP_STRING([--with-pmix-extra-lib=LIB], + [Link the output PMIx library to this extra lib (used in embedded mode)])) + AC_MSG_CHECKING([for extra lib]) + AS_IF([test ! -z "$with_pmix_extra_lib"], + [AC_MSG_RESULT([$with_pmix_extra_lib]) + PMIX_EXTRA_LIB=$with_pmix_extra_lib], + [AC_MSG_RESULT([no]) + PMIX_EXTRA_LIB=]) + AC_SUBST(PMIX_EXTRA_LIB) + # GCC specifics. if test "x$GCC" = "xyes"; then PMIX_GCC_CFLAGS="-Wall -Wmissing-prototypes -Wundef" diff --git a/opal/mca/pmix/pmix2x/pmix/src/Makefile.am b/opal/mca/pmix/pmix2x/pmix/src/Makefile.am index 63370390848..de47aad4c26 100644 --- a/opal/mca/pmix/pmix2x/pmix/src/Makefile.am +++ b/opal/mca/pmix/pmix2x/pmix/src/Makefile.am @@ -47,7 +47,8 @@ dist_pmixdata_DATA = libpmix_la_LIBADD = \ mca/base/libpmix_mca_base.la \ - $(MCA_pmix_FRAMEWORK_LIBS) + $(MCA_pmix_FRAMEWORK_LIBS) \ + $(PMIX_EXTRA_LIB) libpmix_la_DEPENDENCIES = $(libpmix_la_LIBADD) if PMIX_EMBEDDED_MODE From f9f49e57ecfae0243459e3f007f36b70496c0709 Mon Sep 17 00:00:00 2001 From: Ralph Castain Date: Tue, 15 Aug 2017 10:51:35 -0700 Subject: [PATCH 2/3] Fix the --disable-dlopen --with-devel-headers case by not having libpmix link back to libopen-pal as the latter won't exist in time during this build case Signed-off-by: Ralph Castain (cherry picked from commit 033a0eb3735bb36301a65906fed39eacae54c888) (cherry picked from commit 1af5e8aec16979a85fcb2be3f940d935e706267f) --- opal/mca/pmix/pmix2x/configure.m4 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opal/mca/pmix/pmix2x/configure.m4 b/opal/mca/pmix/pmix2x/configure.m4 index c092465f0f0..73621203163 100644 --- a/opal/mca/pmix/pmix2x/configure.m4 +++ b/opal/mca/pmix/pmix2x/configure.m4 @@ -56,7 +56,9 @@ AC_DEFUN([MCA_opal_pmix_pmix2x_CONFIG],[ [opal_pmix_pmix2x_args="--disable-debug $opal_pmix_pmix2x_args" CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"]) AS_IF([test "$with_devel_headers" = "yes"], - [opal_pmix_pmix2x_args="--with-devel-headers --with-pmix-extra-lib=$OPAL_TOP_BUILDDIR/opal/lib${OPAL_LIB_PREFIX}open-pal.la $opal_pmix_pmix2x_args"]) + [AS_IF([test "$enable_dlopen" = "yes"], + [opal_pmix_pmix2x_args="--with-pmix-extra-lib=$OPAL_TOP_BUILDDIR/opal/lib${OPAL_LIB_PREFIX}open-pal.la $opal_pmix_pmix2x_args"]) + opal_pmix_pmix2x_args="--with-devel-headers $opal_pmix_pmix2x_args"]) CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include -I$OPAL_TOP_BUILDDIR/opal/include $CPPFLAGS" OPAL_CONFIG_SUBDIR([$opal_pmix_pmix2x_basedir/pmix], From 21014594c5df24728a7132c70231ca71fac63e0e Mon Sep 17 00:00:00 2001 From: Ralph Castain Date: Wed, 16 Aug 2017 11:19:15 -0700 Subject: [PATCH 3/3] Change test per recommendation of @jsquyres Signed-off-by: Ralph Castain (cherry picked from commit c4d5dbfcdc35a3a44bba0df8d332e9dae292851c) --- opal/mca/pmix/pmix2x/configure.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opal/mca/pmix/pmix2x/configure.m4 b/opal/mca/pmix/pmix2x/configure.m4 index 73621203163..372a2db43fa 100644 --- a/opal/mca/pmix/pmix2x/configure.m4 +++ b/opal/mca/pmix/pmix2x/configure.m4 @@ -56,7 +56,7 @@ AC_DEFUN([MCA_opal_pmix_pmix2x_CONFIG],[ [opal_pmix_pmix2x_args="--disable-debug $opal_pmix_pmix2x_args" CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"]) AS_IF([test "$with_devel_headers" = "yes"], - [AS_IF([test "$enable_dlopen" = "yes"], + [AS_IF([test "$enable_dlopen" != "no"], [opal_pmix_pmix2x_args="--with-pmix-extra-lib=$OPAL_TOP_BUILDDIR/opal/lib${OPAL_LIB_PREFIX}open-pal.la $opal_pmix_pmix2x_args"]) opal_pmix_pmix2x_args="--with-devel-headers $opal_pmix_pmix2x_args"]) CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include -I$OPAL_TOP_BUILDDIR/opal/include $CPPFLAGS"