1
1

Merge pull request #5304 from rhc54/topic/resync

Sync to updated PMIx v3.0.0rc
Этот коммит содержится в:
Gilles Gouaillardet 2018-06-20 14:21:03 +09:00 коммит произвёл GitHub
родитель 97d4e2b578 08707c9762
Коммит 6a504a1544
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 76 добавлений и 55 удалений

Просмотреть файл

@ -30,7 +30,7 @@ greek=
# command, or with the date (if "git describe" fails) in the form of
# "date<date>".
repo_rev=git88fa9a9
repo_rev=git7b5106a
# 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="Jun 17, 2018"
date="Jun 19, 2018"
# The shared library version of each of PMIx's public libraries.
# These versions are maintained in accordance with the "Library

Просмотреть файл

@ -25,52 +25,44 @@ dnl $HEADER$
dnl
AC_DEFUN([PMIX_CC_HELPER],[
PMIX_VAR_SCOPE_PUSH([pmix_prog_cc_c11_helper_tmp])
PMIX_VAR_SCOPE_PUSH([pmix_cc_helper_result])
AC_MSG_CHECKING([$1])
pmix_prog_cc_c11_helper_tmp=0
AC_LINK_IFELSE([AC_LANG_PROGRAM([$3],[$4])],
[$2=1
pmix_cc_helper_result=yes],
[$2=0
pmix_cc_helper_result=no])
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])
AC_MSG_RESULT([$pmix_cc_helper_result])
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_VAR_SCOPE_PUSH([pmix_prog_cc_c11_helper_CFLAGS_save])
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])
[],[[static _Thread_local int foo = 1;++foo;]])
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])
[[#include <stdatomic.h>]], [[static atomic_long foo = 1;++foo;]])
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])
[[#include <stdatomic.h>]],[[static _Atomic long foo = 1;++foo;]])
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])
[[#define FOO(x) (_Generic (x, int: 1))]], [[static int x, y; y = FOO(x);]])
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])
[[#include <stdint.h>]],[[_Static_assert(sizeof(int64_t) == 8, "WTH");]])
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])
AS_IF([test $pmix_prog_cc_c11_helper__Thread_local_available -eq 1 && test $pmix_prog_cc_c11_helper_atomic_var_available -eq 1],
[$2],
[$3])
CFLAGS=$pmix_prog_cc_c11_helper_CFLAGS_save
@ -136,6 +128,8 @@ AC_DEFUN([PMIX_SETUP_CC],[
AC_REQUIRE([_PMIX_PROG_CC])
AC_REQUIRE([AM_PROG_CC_C_O])
PMIX_VAR_SCOPE_PUSH([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__thread_available])
PMIX_PROG_CC_C11
if test $pmix_cv_c11_supported = no ; then
@ -157,11 +151,32 @@ AC_DEFUN([PMIX_SETUP_CC],[
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
[],[[static __thread int foo = 1;++foo;]])
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;]])
dnl At this time, PMIx only needs thread local and the atomic convenience tyes for C11 suport. These
dnl will likely be required in the future.
AC_DEFINE_UNQUOTED([PMIX_C_HAVE__THREAD_LOCAL], [$pmix_prog_cc_c11_helper__Thread_local_available],
[Whether C compiler supports __Thread_local])
AC_DEFINE_UNQUOTED([PMIX_C_HAVE_ATOMIC_CONV_VAR], [$pmix_prog_cc_c11_helper_atomic_var_available],
[Whether C compiler supports atomic convenience variables in stdatomic.h])
AC_DEFINE_UNQUOTED([PMIX_C_HAVE__ATOMIC], [$pmix_prog_cc_c11_helper__Atomic_available],
[Whether C compiler supports __Atomic keyword])
AC_DEFINE_UNQUOTED([PMIX_C_HAVE__GENERIC], [$pmix_prog_cc_c11_helper__Generic_available],
[Whether C compiler supports __Generic keyword])
AC_DEFINE_UNQUOTED([PMIX_C_HAVE__STATIC_ASSERT], [$pmix_prog_cc_c11_helper__static_assert_available],
[Whether C compiler supports _Static_assert keyword])
AC_DEFINE_UNQUOTED([PMIX_C_HAVE___THREAD], [$pmix_prog_cc__thread_available],
[Whether C compiler supports __thread])
PMIX_C_COMPILER_VENDOR([pmix_c_vendor])
@ -456,6 +471,7 @@ AC_DEFUN([PMIX_SETUP_CC],[
PMIX_ENSURE_CONTAINS_OPTFLAGS(["$CFLAGS"])
AC_MSG_RESULT([$co_result])
CFLAGS="$co_result"
PMIX_VAR_SCOPE_POP
])

Просмотреть файл

@ -21,7 +21,7 @@
# All rights reserved.
# Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
# Copyright (c) 2016 IBM Corporation. All rights reserved.
# Copyright (c) 2016 Research Organization for Information Science
# Copyright (c) 2016-2018 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# $COPYRIGHT$
#
@ -205,8 +205,6 @@ AS_IF([test -z "$CC_FOR_BUILD"],[
AC_SUBST([CC_FOR_BUILD], [$CC])
])
PMIX_SETUP_CC
# Cleanup duplicate flags
PMIX_FLAGS_UNIQ(CPPFLAGS)
PMIX_FLAGS_UNIQ(LDFLAGS)

Просмотреть файл

@ -32,12 +32,11 @@ AC_DEFUN([MCA_pmix_pnet_opa_CONFIG],[
AC_ARG_WITH([opamgt],
[AC_HELP_STRING([--with-opamgt(=DIR)],
[Build OmniPath Fabric Management support (optionally adding DIR/include, DIR/include/opamgt, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
[Build OmniPath Fabric Management support (optionally adding DIR/include, DIR/include/opamgt, DIR/lib, and DIR/lib64 to the search path for headers and libraries])], [], [with_opamgt=no])
AC_ARG_WITH([opamgt-libdir],
[AC_HELP_STRING([--with-opamgt-libdir=DIR],
[Search for OmniPath Fabric Management libraries in DIR])])
PMIX_CHECK_WITHDIR([opamgt-libdir], [$with_opamgt_libdir], [libopamgt.*])
pmix_check_opamgt_save_CPPFLAGS="$CPPFLAGS"
pmix_check_opamgt_save_LDFLAGS="$LDFLAGS"
@ -46,14 +45,19 @@ AC_DEFUN([MCA_pmix_pnet_opa_CONFIG],[
pmix_check_opamgt_libdir=
pmix_check_opamgt_dir=
AS_IF([test "$with_opamgt" != "no"],
[AS_IF([test ! -z "$with_opamgt" && test "$with_opamgt" != "yes"],
AC_MSG_CHECKING([if opamgt requested])
AS_IF([test "$with_opamgt" == "no"],
[AC_MSG_RESULT([no])
pmix_check_opamgt_happy=no],
[AC_MSG_RESULT([yes])
PMIX_CHECK_WITHDIR([opamgt-libdir], [$with_opamgt_libdir], [libopamgt.*])
AS_IF([test ! -z "$with_opamgt" && test "$with_opamgt" != "yes"],
[pmix_check_opamgt_dir="$with_opamgt"
AS_IF([test ! -d "$pmix_check_opamgt_dir" -o test ! -f "$pmix_check_opamgt_dir/opamgt.h"],
AS_IF([test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"],
[$pmix_check_opamgt_dir=$pmix_check_opamgt_dir/include
AS_IF([test ! -d "$pmix_check_opamgt_dir" -o test ! -f "$pmix_check_opamgt_dir/opamgt.h"],
AS_IF([test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"],
[$pmix_check_opamgt_dir=$pmix_check_opamgt_dir/opamgt
AS_IF([test ! -d "$pmix_check_opamgt_dir" -o test ! -f "$pmix_check_opamgt_dir/opamgt.h"],
AS_IF([test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"],
[AC_MSG_WARN([OmniPath Fabric Management support requested, but])
AC_MSG_WARN([required header file opamgt.h not found. Locations tested:])
AC_MSG_WARN([ $with_opamgt])
@ -65,21 +69,24 @@ AC_DEFUN([MCA_pmix_pnet_opa_CONFIG],[
AS_IF([test ! -z "$with_opamgt_libdir" && test "$with_opamgt_libdir" != "yes"],
[pmix_check_opamgt_libdir="$with_opamgt_libdir"])
PMIX_CHECK_PACKAGE([pnet_opamgt],
[opamgt.h],
[opamgt],
[omgt_query_sa],
[],
[$pmix_check_opamgt_dir],
[$pmix_check_opamgt_libdir],
[pmix_check_opamgt_happy="yes"],
[pmix_check_opamgt_happy="no"])],
[pmix_check_opamgt_happy="no"])
pnet_opa_CFLAGS="$pnet_opa_CFLAGS $pnet_opamgt_CFLAGS"
pnet_opa_CPPFLAGS="$pnet_opa_CPPFLAGS $pnet_opamgt_CPPFLAGS"
pnet_opa_LDFLAGS="$pnet_opa_LDFLAGS $pnet_opamgt_LDFLAGS"
pnet_opa_LIBS="$pnet_opa_LIBS $pnet_opamgt_LIBS"
# no easy way to check this, so let's ensure that the
# full opamgt install was done, including the iba support
AS_IF([test ! -d "$pmix_check_opamgt_dir/iba" || test ! -f "$pmix_check_opamgt_dir/iba/vpi.h"],
[pmix_check_opamgt_happy="no"],
[PMIX_CHECK_PACKAGE([pnet_opamgt],
[opamgt.h],
[opamgt],
[omgt_query_sa],
[],
[$pmix_check_opamgt_dir],
[$pmix_check_opamgt_libdir],
[pmix_check_opamgt_happy="yes"
pnet_opa_CFLAGS="$pnet_opa_CFLAGS $pnet_opamgt_CFLAGS"
pnet_opa_CPPFLAGS="$pnet_opa_CPPFLAGS $pnet_opamgt_CPPFLAGS"
pnet_opa_LDFLAGS="$pnet_opa_LDFLAGS $pnet_opamgt_LDFLAGS"
pnet_opa_LIBS="$pnet_opa_LIBS $pnet_opamgt_LIBS"],
[pmix_check_opamgt_happy="no"])])
])
AS_IF([test "$pmix_check_opamgt_happy" = "yes"],
[pmix_want_opamgt=1],