diff --git a/opal/mca/hwloc/base/hwloc_base_util.c b/opal/mca/hwloc/base/hwloc_base_util.c index b89081158e..935f791638 100644 --- a/opal/mca/hwloc/base/hwloc_base_util.c +++ b/opal/mca/hwloc/base/hwloc_base_util.c @@ -2232,6 +2232,9 @@ char* opal_hwloc_base_get_locality_string(hwloc_topology_t topo, /* get the width of the topology at this depth */ width = hwloc_get_nbobjs_by_depth(topo, d); + if (0 == width) { + continue; + } /* scan all objects at this depth to see if * the location overlaps with them diff --git a/opal/mca/pmix/pmix2x/configure.m4 b/opal/mca/pmix/pmix2x/configure.m4 index 5bb5d60ff8..5ab3a9bba6 100644 --- a/opal/mca/pmix/pmix2x/configure.m4 +++ b/opal/mca/pmix/pmix2x/configure.m4 @@ -49,14 +49,14 @@ AC_DEFUN([MCA_opal_pmix_pmix2x_CONFIG],[ opal_pmix_pmix2x_sm_flag=--disable-dstore fi - opal_pmix_pmix2x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX2X_ $opal_pmix_pmix2x_sm_flag --without-tests-examples --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\"" + opal_pmix_pmix2x_args="--enable-embedded-mode --with-pmix-symbol-rename=OPAL_MCA_PMIX2X_ $opal_pmix_pmix2x_sm_flag --without-tests-examples --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\"" 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="--enable-embedded-mode $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], diff --git a/opal/mca/pmix/pmix2x/pmix/VERSION b/opal/mca/pmix/pmix2x/pmix/VERSION index 0088699fbf..1ccdcd0cd0 100644 --- a/opal/mca/pmix/pmix2x/pmix/VERSION +++ b/opal/mca/pmix/pmix2x/pmix/VERSION @@ -23,14 +23,14 @@ release=0 # The only requirement is that it must be entirely printable ASCII # characters and have no white space. -greek= +greek=a1 # If repo_rev is empty, then the repository version number will be # obtained during "make dist" via the "git describe --tags --always" # command, or with the date (if "git describe" fails) in the form of # "date". -repo_rev=gitbf86f3a +repo_rev=git3b5c9b7 # If tarball_version is not empty, it is used as the version string in # the tarball filename, regardless of all other versions listed in @@ -44,7 +44,7 @@ tarball_version= # The date when this release was created -date="Feb 13, 2017" +date="Feb 14, 2017" # The shared library version of each of PMIx's public libraries. # These versions are maintained in accordance with the "Library diff --git a/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 b/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 index 0bd8dcfc93..b06e57c918 100644 --- a/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 +++ b/opal/mca/pmix/pmix2x/pmix/config/pmix.m4 @@ -746,21 +746,12 @@ AC_DEFUN([PMIX_DEFINE_ARGS],[ [Using --enable-embedded-mode causes PMIx to skip a few configure checks and install nothing. It should only be used when building PMIx within the scope of a larger package.])]) AS_IF([test ! -z "$enable_embedded_mode" && test "$enable_embedded_mode" = "yes"], [pmix_mode=embedded + pmix_install_primary_headers=no AC_MSG_RESULT([yes])], [pmix_mode=standalone + pmix_install_primary_headers=yes AC_MSG_RESULT([no])]) - # Install tests and examples? - AC_MSG_CHECKING([if tests and examples are to be installed]) - AC_ARG_WITH([tests-examples], - [AC_HELP_STRING([--with-tests-examples], - [Whether or not to install the tests and example programs.])]) - AS_IF([test ! -z "$with_tests_examples" && test "$with_tests_examples" = "no"], - [pmix_tests=no - AC_MSG_RESULT([no])], - [pmix_tests=yes - AC_MSG_RESULT([yes])]) - # # Is this a developer copy? # @@ -836,11 +827,31 @@ AC_ARG_WITH(devel-headers, if test "$with_devel_headers" = "yes"; then AC_MSG_RESULT([yes]) WANT_INSTALL_HEADERS=1 + pmix_install_primary_headers=yes else AC_MSG_RESULT([no]) WANT_INSTALL_HEADERS=0 fi -AM_CONDITIONAL(WANT_INSTALL_HEADERS, test "$WANT_INSTALL_HEADERS" = 1) + +# Install tests and examples? +AC_MSG_CHECKING([if tests and examples are to be installed]) +AC_ARG_WITH([tests-examples], + [AC_HELP_STRING([--with-tests-examples], + [Whether or not to install the tests and example programs.])]) +AS_IF([test "$pmix_install_primary_headers" = "no"], + [AS_IF([test -z "$with_tests_examples" || test "$with_tests_examples" = "no"], + [pmix_tests=no + AC_MSG_RESULT([no])], + [AC_MSG_RESULT([no]) + AC_MSG_WARN([Cannot install tests/examples without installing primary headers.]) + AC_MSG_WARN([This situation arises when configured in embedded mode]) + AC_MSG_WARN([and without devel headers.]) + AC_MSG_ERROR([Please correct the configure line and retry])])], + [AS_IF([test ! -z "$with_tests_examples" && test "$with_tests_examples" = "no"], + [pmix_tests=no + AC_MSG_RESULT([no])], + [pmix_tests=yes + AC_MSG_RESULT([yes])])]) # # Support per-user config files? @@ -979,7 +990,9 @@ AC_DEFUN([PMIX_DO_AM_CONDITIONALS],[ AM_CONDITIONAL([PMIX_COMPILE_TIMING], [test "$WANT_TIMING" = "1"]) AM_CONDITIONAL([PMIX_WANT_MUNGE], [test "$pmix_munge_support" = "1"]) AM_CONDITIONAL([PMIX_WANT_SASL], [test "$pmix_sasl_support" = "1"]) - AM_CONDITIONAL([WANT_DSTORE],[test "x$enable_dstore" != "xno"]) + AM_CONDITIONAL([WANT_DSTORE], [test "x$enable_dstore" != "xno"]) + AM_CONDITIONAL([WANT_PRIMARY_HEADERS], [test "x$pmix_install_primary_headers" = "xyes"]) + AM_CONDITIONAL(WANT_INSTALL_HEADERS, test "$WANT_INSTALL_HEADERS" = 1) ]) pmix_did_am_conditionals=yes ])dnl diff --git a/opal/mca/pmix/pmix2x/pmix/include/Makefile.am b/opal/mca/pmix/pmix2x/pmix/include/Makefile.am index efb748695f..7a59803e51 100644 --- a/opal/mca/pmix/pmix2x/pmix/include/Makefile.am +++ b/opal/mca/pmix/pmix2x/pmix/include/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright 2015-2016 Intel, Inc. All rights reserved +# Copyright (c) 2015-2017 Intel, Inc. All rights reserved. # # $COPYRIGHT$ # @@ -10,7 +10,7 @@ # Only install the headers if we're in standalone mode -if ! PMIX_EMBEDDED_MODE +if WANT_PRIMARY_HEADERS include_HEADERS = \ pmix.h \ pmix_common.h \ @@ -23,4 +23,4 @@ nodist_include_HEADERS = \ pmix_version.h \ pmix_rename.h -endif ! PMIX_EMBEDDED_MODE +endif diff --git a/opal/mca/pmix/pmix2x/pmix/src/client/pmix_client.c b/opal/mca/pmix/pmix2x/pmix/src/client/pmix_client.c index 663aa78c8a..ea039c534b 100644 --- a/opal/mca/pmix/pmix2x/pmix/src/client/pmix_client.c +++ b/opal/mca/pmix/pmix2x/pmix/src/client/pmix_client.c @@ -236,21 +236,6 @@ static void evhandler_reg_callbk(pmix_status_t status, *active = status; } -static void _destruct_my_server_fn(int sd, short args, void *cbdata) -{ - pmix_cb_t *cb= (pmix_cb_t *)cbdata; - PMIX_DESTRUCT(&pmix_client_globals.myserver); - cb->active = false; -} - - -static void pmix_destruct_my_server(void) -{ - pmix_cb_t cb; - PMIX_THREADSHIFT(&cb, _destruct_my_server_fn); - PMIX_WAIT_FOR_COMPLETION(cb.active); -} - PMIX_EXPORT pmix_status_t PMIx_Init(pmix_proc_t *proc, pmix_info_t info[], size_t ninfo) { @@ -473,7 +458,12 @@ PMIX_EXPORT pmix_status_t PMIx_Finalize(const pmix_info_t info[], size_t ninfo) "pmix:client finalize sync received"); } - pmix_destruct_my_server(); + if (!pmix_globals.external_evbase) { + /* stop the progress thread */ + (void)pmix_progress_thread_stop(NULL); + } + + PMIX_DESTRUCT(&pmix_client_globals.myserver); #if defined(PMIX_ENABLE_DSTORE) && (PMIX_ENABLE_DSTORE == 1) if (0 > (rc = pmix_dstore_nspace_del(pmix_globals.myid.nspace))) { diff --git a/opal/mca/pmix/pmix2x/pmix/src/runtime/pmix_finalize.c b/opal/mca/pmix/pmix2x/pmix/src/runtime/pmix_finalize.c index 12843a02f5..c804f0e2b9 100644 --- a/opal/mca/pmix/pmix2x/pmix/src/runtime/pmix_finalize.c +++ b/opal/mca/pmix/pmix2x/pmix/src/runtime/pmix_finalize.c @@ -12,7 +12,7 @@ * Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010-2015 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2013-2016 Intel, Inc. All rights reserved + * Copyright (c) 2013-2017 Intel, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -68,11 +68,6 @@ void pmix_rte_finalize(void) return; } - if (!pmix_globals.external_evbase) { - /* stop the progress thread */ - (void)pmix_progress_thread_stop(NULL); - } - /* cleanup communications */ (void)pmix_mca_base_framework_close(&pmix_ptl_base_framework); #if defined(PMIX_ENABLE_DSTORE) && (PMIX_ENABLE_DSTORE == 1) diff --git a/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server.c b/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server.c index 97bc0fcc16..749a16c11e 100644 --- a/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server.c +++ b/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server.c @@ -268,6 +268,11 @@ PMIX_EXPORT pmix_status_t PMIx_server_finalize(void) pmix_output_verbose(2, pmix_globals.debug_output, "pmix:server finalize called"); + if (!pmix_globals.external_evbase) { + /* stop the progress thread */ + (void)pmix_progress_thread_stop(NULL); + } + pmix_ptl_base_stop_listening(); cleanup_server_state(); diff --git a/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server_ops.c b/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server_ops.c index c52c03e7ff..b8dbbaaf13 100644 --- a/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server_ops.c +++ b/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server_ops.c @@ -1636,7 +1636,9 @@ static void lmcon(pmix_dmdx_local_t *p) } static void lmdes(pmix_dmdx_local_t *p) { - PMIX_INFO_FREE(p->info, p->ninfo); + if (NULL != p->info) { + PMIX_INFO_FREE(p->info, p->ninfo); + } PMIX_LIST_DESTRUCT(&p->loc_reqs); } PMIX_CLASS_INSTANCE(pmix_dmdx_local_t, diff --git a/opal/mca/pmix/pmix2x/pmix/src/tool/pmix_tool.c b/opal/mca/pmix/pmix2x/pmix/src/tool/pmix_tool.c index 13189e41c4..ca317e2194 100644 --- a/opal/mca/pmix/pmix2x/pmix/src/tool/pmix_tool.c +++ b/opal/mca/pmix/pmix2x/pmix/src/tool/pmix_tool.c @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. * Copyright (c) 2014-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . @@ -517,6 +517,11 @@ PMIX_EXPORT pmix_status_t PMIx_tool_finalize(void) pmix_output_verbose(2, pmix_globals.debug_output, "pmix:tool finalize sync received"); + if (!pmix_globals.external_evbase) { + /* stop the progress thread */ + (void)pmix_progress_thread_stop(NULL); + } + /* shutdown services */ pmix_rte_finalize();