Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,8 @@ ompi/mca/io/romio314/romio/test/pfcoll_test.f
ompi/mca/io/romio314/romio/test/runtests
ompi/mca/io/romio314/romio/util/romioinstall

ompi/mca/osc/monitoring/osc_monitoring_template_gen.h

ompi/mca/pml/v/autogen.vprotocols
ompi/mca/pml/v/mca_vprotocol_config_output

Expand Down
17 changes: 15 additions & 2 deletions opal/mca/pmix/pmix2x/pmix/NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,20 @@ example, a bug might be fixed in the master, and then moved to the
current release as well as the "stable" bug fix release branch.


2.1.1 -- 23 Feb 2018
2.1.2 -- TBD
----------------------
- Added PMIX_VERSION_RELEASE string to pmix_version.h
- Added PMIX_SPAWNED and PMIX_PARENT_ID keys to all procs
started via PMIx_Spawn
- Fixed faulty compares in PMI/PMI2 tests
- Fixed bug in direct modex for data on remote node
- Correctly transfer all cached job info to the client's
shared memory region upon first connection
- Fix potential deadlock in PMIx_server_init in an error case
- Fix uninitialized variable


2.1.1 -- 5 Mar 2018
----------------------
- Fix direct modex when receiving new nspace
- Resolve direct modex of job-level info
Expand All @@ -42,7 +55,7 @@ current release as well as the "stable" bug fix release branch.
- Added cross-version communication support
- Enable reporting of contact URI to stdout, stderr, or file (PR #538)
- Enable support for remote tool connections (PR #540, #542)
- Cleanup libevent configure logi to support default install paths (PR #541)
- Cleanup libevent configure logic to support default install paths (PR #541)
- Debounce "unreachable" notifications for tools when they disconnect (PR #544)
- Enable the regex generator to support node names that include multiple
sets of numbers
Expand Down
10 changes: 5 additions & 5 deletions opal/mca/pmix/pmix2x/pmix/VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@

major=2
minor=1
release=1
release=2

# greek is used for alpha or beta release tags. If it is non-empty,
# it will be appended to the version number. It does not have to be
# numeric. Common examples include a1 (alpha release 1), b1 or (beta release 1).
# The only requirement is that it must be entirely printable ASCII
# characters and have no white space.

greek=
greek=rc1

# 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<date>".

repo_rev=git30cbf9f
repo_rev=gitc9312a8

# If tarball_version is not empty, it is used as the version string in
# the tarball filename, regardless of all other versions listed in
Expand All @@ -44,7 +44,7 @@ tarball_version=

# The date when this release was created

date="Feb 18, 2018"
date="Jun 18, 2018"

# The shared library version of each of PMIx's public libraries.
# These versions are maintained in accordance with the "Library
Expand Down Expand Up @@ -75,6 +75,6 @@ date="Feb 18, 2018"
# Version numbers are described in the Libtool current:revision:age
# format.

libpmix_so_version=3:11:1
libpmix_so_version=3:12:1
libpmi_so_version=1:0:0
libpmi2_so_version=1:0:0
16 changes: 9 additions & 7 deletions opal/mca/pmix/pmix2x/pmix/config/pmix.m4
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
dnl Copyright (c) 2009 IBM Corporation. All rights reserved.
dnl Copyright (c) 2009-2018 IBM Corporation. All rights reserved.
dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2009-2011 Oak Ridge National Labs. All rights reserved.
Expand Down Expand Up @@ -109,12 +109,6 @@ AC_DEFUN([PMIX_SETUP_CORE],[
AC_DEFINE_UNQUOTED([PMIX_MINOR_VERSION], [$PMIX_MINOR_VERSION],
[The library minor version is always available, contrary to VERSION])

pmixmajor=${PMIX_MAJOR_VERSION}L
pmixminor=${PMIX_MINOR_VERSION}L
AC_SUBST(pmixmajor)
AC_SUBST(pmixminor)
AC_CONFIG_FILES(pmix_config_prefix[include/pmix_version.h])

PMIX_RELEASE_VERSION="`$PMIX_top_srcdir/config/pmix_get_version.sh $PMIX_top_srcdir/VERSION --release`"
if test "$?" != "0"; then
AC_MSG_ERROR([Cannot continue])
Expand All @@ -123,6 +117,14 @@ AC_DEFUN([PMIX_SETUP_CORE],[
AC_DEFINE_UNQUOTED([PMIX_RELEASE_VERSION], [$PMIX_RELEASE_VERSION],
[The library release version is always available, contrary to VERSION])

pmixmajor=${PMIX_MAJOR_VERSION}L
pmixminor=${PMIX_MINOR_VERSION}L
pmixrelease=${PMIX_RELEASE_VERSION}L
AC_SUBST(pmixmajor)
AC_SUBST(pmixminor)
AC_SUBST(pmixrelease)
AC_CONFIG_FILES(pmix_config_prefix[include/pmix_version.h])

# Debug mode?
AC_MSG_CHECKING([if want pmix maintainer support])
pmix_debug=
Expand Down
194 changes: 177 additions & 17 deletions opal/mca/pmix/pmix2x/pmix/config/pmix_setup_cc.m4
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,153 @@ dnl Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2015 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl Copyright (c) 2015-2017 Intel, Inc. All rights reserved.
dnl Copyright (c) 2018 Intel, Inc. All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl

AC_DEFUN([PMIX_CC_HELPER],[
PMIX_VAR_SCOPE_PUSH([pmix_prog_cc_c11_helper_tmp])
AC_MSG_CHECKING([$1])

pmix_prog_cc_c11_helper_tmp=0

AC_LINK_IFELSE([AC_LANG_PROGRAM([$3],[$4])],[
$2=yes
pmix_prog_cc_c11_helper_tmp=1], [$2=no])

AC_DEFINE_UNQUOTED([$5], [$pmix_prog_cc_c11_helper_tmp], [$6])

AC_MSG_RESULT([$$2])
PMIX_VAR_SCOPE_POP
])


AC_DEFUN([PMIX_PROG_CC_C11_HELPER],[
PMIX_VAR_SCOPE_PUSH([pmix_prog_cc_c11_helper_CFLAGS_save pmix_prog_cc_c11_helper__Thread_local_available pmix_prog_cc_c11_helper_atomic_var_available pmix_prog_cc_c11_helper__Atomic_available pmix_prog_cc_c11_helper__static_assert_available pmix_prog_cc_c11_helper__Generic_available])

pmix_prog_cc_c11_helper_CFLAGS_save=$CFLAGS
CFLAGS="$CFLAGS $1"

PMIX_CC_HELPER([if $CC $1 supports C11 _Thread_local], [pmix_prog_cc_c11_helper__Thread_local_available],
[],[[static _Thread_local int foo = 1;++foo;]], [PMIX_C_HAVE__THREAD_LOCAL],
[Whether C compiler supports __Thread_local])

PMIX_CC_HELPER([if $CC $1 supports C11 atomic variables], [pmix_prog_cc_c11_helper_atomic_var_available],
[[#include <stdatomic.h>]], [[static atomic_long foo = 1;++foo;]], [PMIX_C_HAVE_ATOMIC_CONV_VAR],
[Whether C compiler support atomic convenience variables in stdatomic.h])

PMIX_CC_HELPER([if $CC $1 supports C11 _Atomic keyword], [pmix_prog_cc_c11_helper__Atomic_available],
[[#include <stdatomic.h>]],[[static _Atomic long foo = 1;++foo;]], [PMIX_C_HAVE__ATOMIC],
[Whether C compiler supports __Atomic keyword])

PMIX_CC_HELPER([if $CC $1 supports C11 _Generic keyword], [pmix_prog_cc_c11_helper__Generic_available],
[[#define FOO(x) (_Generic (x, int: 1))]], [[static int x, y; y = FOO(x);]], [PMIX_C_HAVE__GENERIC],
[Whether C compiler supports __Generic keyword])

PMIX_CC_HELPER([if $CC $1 supports C11 _Static_assert], [pmix_prog_cc_c11_helper__static_assert_available],
[[#include <stdint.h>]],[[_Static_assert(sizeof(int64_t) == 8, "WTH");]], [PMIX_C_HAVE__STATIC_ASSERT],
[Whether C compiler support _Static_assert keyword])

dnl At this time Open MPI only needs thread local and the atomic convenience types for C11 support. These
dnl will likely be required in the future.
AS_IF([test "x$pmix_prog_cc_c11_helper__Thread_local_available" = "xyes" && test "x$pmix_prog_cc_c11_helper_atomic_var_available" = "xyes"],
[$2], [$3])

CFLAGS=$pmix_prog_cc_c11_helper_CFLAGS_save

PMIX_VAR_SCOPE_POP
])

AC_DEFUN([PMIX_PROG_CC_C11],[
PMIX_VAR_SCOPE_PUSH([pmix_prog_cc_c11_flags])
if test -z "$pmix_cv_c11_supported" ; then
pmix_cv_c11_supported=no
pmix_cv_c11_flag_required=yes

AC_MSG_CHECKING([if $CC requires a flag for C11])

AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if __STDC_VERSION__ < 201112L
#error "Without any CLI flags, this compiler does not support C11"
#endif
]],[])],
[pmix_cv_c11_flag_required=no])

AC_MSG_RESULT([$pmix_cv_c11_flag_required])

if test "x$pmix_cv_c11_flag_required" = "xno" ; then
AC_MSG_NOTICE([verifying $CC supports C11 without a flag])
PMIX_PROG_CC_C11_HELPER([], [], [pmix_cv_c11_flag_required=yes])
fi

if test "x$pmix_cv_c11_flag_required" = "xyes" ; then
pmix_prog_cc_c11_flags="-std=gnu11 -std=c11 -c11"

AC_MSG_NOTICE([checking if $CC supports C11 with a flag])
pmix_cv_c11_flag=
for flag in $(echo $pmix_prog_cc_c11_flags | tr ' ' '\n') ; do
PMIX_PROG_CC_C11_HELPER([$flag],[pmix_cv_c11_flag=$flag],[])
if test "x$pmix_cv_c11_flag" != "x" ; then
CFLAGS="$CFLAGS $pmix_cv_c11_flag"
AC_MSG_NOTICE([using $flag to enable C11 support])
pmix_cv_c11_supported=yes
break
fi
done
else
AC_MSG_NOTICE([no flag required for C11 support])
pmix_cv_c11_supported=yes
fi
fi

PMIX_VAR_SCOPE_POP
])


# PMIX_SETUP_CC()
# ---------------
# Do everything required to setup the C compiler. Safe to AC_REQUIRE
# this macro.
AC_DEFUN([PMIX_SETUP_CC],[
# AM_PROG_CC_C_O AC_REQUIREs AC_PROG_CC, so we have to be a little
# careful about ordering here, and AC_REQUIRE these things so that
# they get stamped out in the right order.

AC_REQUIRE([_PMIX_START_SETUP_CC])
AC_REQUIRE([_PMIX_PROG_CC])
AC_REQUIRE([AM_PROG_CC_C_O])

PMIX_PROG_CC_C11

if test $pmix_cv_c11_supported = no ; then
# It is not currently an error if C11 support is not available. Uncomment the
# following lines and update the warning when we require a C11 compiler.
# AC_MSG_WARNING([Open MPI requires a C11 (or newer) compiler])
# AC_MSG_ERROR([Aborting.])
# From Open MPI 1.7 on we require a C99 compiant compiler
AC_PROG_CC_C99
# The result of AC_PROG_CC_C99 is stored in ac_cv_prog_cc_c99
if test "x$ac_cv_prog_cc_c99" = xno ; then
AC_MSG_WARN([Open MPI requires a C99 (or newer) compiler. C11 is recommended.])
AC_MSG_ERROR([Aborting.])
fi

# We require a C99 compliant compiler
# The result of AC_PROG_CC_C99 is stored in ac_cv_prog_cc_c99
if test "x$ac_cv_prog_cc_c99" = xno ; then
AC_MSG_WARN([PMIx requires a C99 compiler])
AC_MSG_ERROR([Aborting.])
# Get the correct result for C11 support flags now that the compiler flags have
# changed
PMIX_PROG_CC_C11_HELPER([],[],[])
fi

# Check if compiler support __thread
PMIX_VAR_SCOPE_PUSH([pmix_prog_cc__thread_available])
PMIX_CC_HELPER([if $CC $1 supports __thread], [pmix_prog_cc__thread_available],
[],[[static __thread int foo = 1;++foo;]], [PMIX_C_HAVE___THREAD],
[Whether C compiler supports __thread])
PMIX_VAR_SCOPE_POP

PMIX_C_COMPILER_VENDOR([pmix_c_vendor])

# Check for standard headers, needed here because needed before
Expand All @@ -59,6 +185,48 @@ AC_DEFUN([PMIX_SETUP_CC],[
#endif])
AC_DEFINE([_GNU_SOURCE])])

# Do we want code coverage
if test "$WANT_COVERAGE" = "1"; then
if test "$pmix_c_vendor" = "gnu" ; then
# For compilers > gcc-4.x, use --coverage for
# compiling and linking to circumvent trouble with
# libgcov.
CFLAGS_orig="$CFLAGS"
LDFLAGS_orig="$LDFLAGS"

CFLAGS="$CFLAGS_orig --coverage"
LDFLAGS="$LDFLAGS_orig --coverage"
PMIX_COVERAGE_FLAGS=

AC_CACHE_CHECK([if $CC supports --coverage],
[pmix_cv_cc_coverage],
[AC_TRY_COMPILE([], [],
[pmix_cv_cc_coverage="yes"],
[pmix_cv_cc_coverage="no"])])

if test "$pmix_cv_cc_coverage" = "yes" ; then
PMIX_COVERAGE_FLAGS="--coverage"
CLEANFILES="*.gcno ${CLEANFILES}"
CONFIG_CLEAN_FILES="*.gcda *.gcov ${CONFIG_CLEAN_FILES}"
else
PMIX_COVERAGE_FLAGS="-ftest-coverage -fprofile-arcs"
CLEANFILES="*.bb *.bbg ${CLEANFILES}"
CONFIG_CLEAN_FILES="*.da *.*.gcov ${CONFIG_CLEAN_FILES}"
fi
CFLAGS="$CFLAGS_orig $PMIX_COVERAGE_FLAGS"
LDFLAGS="$LDFLAGS_orig $PMIX_COVERAGE_FLAGS"

PMIX_FLAGS_UNIQ(CFLAGS)
PMIX_FLAGS_UNIQ(LDFLAGS)
AC_MSG_WARN([$PMIX_COVERAGE_FLAGS has been added to CFLAGS (--enable-coverage)])

WANT_DEBUG=1
else
AC_MSG_WARN([Code coverage functionality is currently available only with GCC])
AC_MSG_ERROR([Configure: Cannot continue])
fi
fi

# Do we want debugging?
if test "$WANT_DEBUG" = "1" && test "$enable_debug_symbols" != "no" ; then
CFLAGS="$CFLAGS -g"
Expand Down Expand Up @@ -288,21 +456,13 @@ AC_DEFUN([PMIX_SETUP_CC],[
PMIX_ENSURE_CONTAINS_OPTFLAGS(["$CFLAGS"])
AC_MSG_RESULT([$co_result])
CFLAGS="$co_result"

##################################
# C compiler characteristics
##################################
# Does the compiler support "ident"-like constructs?
PMIX_CHECK_IDENT([CC], [CFLAGS], [c], [C])

])


AC_DEFUN([_PMIX_START_SETUP_CC],[
pmix_show_subtitle "C compiler and preprocessor"

AC_REQUIRE([AC_PROG_CC])
# $%@#!@#% AIX!! This has to be called before anything invokes the C
# $%@#!@#% AIX!! This has to be called before anything invokes the C
# compiler.
dnl AC_AIX
])
Expand All @@ -314,10 +474,10 @@ AC_DEFUN([_PMIX_PROG_CC],[
#
PMIX_VAR_SCOPE_PUSH([pmix_cflags_save dummy pmix_cc_arvgv0])
pmix_cflags_save="$CFLAGS"
AC_PROG_CC_C99
AC_PROG_CC
BASECC="`basename $CC`"
CFLAGS="$pmix_cflags_save"
AC_DEFINE_UNQUOTED(PMIX_CC, "$CC", [PMIx underlying C compiler])
AC_DEFINE_UNQUOTED(PMIX_CC, "$CC", [OMPI underlying C compiler])
set dummy $CC
pmix_cc_argv0=[$]2
PMIX_WHICH([$pmix_cc_argv0], [PMIX_CC_ABSOLUTE])
Expand Down
2 changes: 1 addition & 1 deletion opal/mca/pmix/pmix2x/pmix/contrib/pmix.spec
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@

Summary: An extended/exascale implementation of PMI
Name: %{?_name:%{_name}}%{!?_name:pmix}
Version: 2.1.1
Version: 2.1.2rc1
Release: 1%{?dist}
License: BSD
Group: Development/Libraries
Expand Down
Loading