f10305a49f
As discussed, a feature is being added to libpsm2 to correctly handle the case where the library is opened by multiple OMPI transports in the same process. (For example, the OFI BTL and the PSM2 MTL). * Improved error message to indicate required libpsm2 version. * Adds a test at autogen/configure time for the existence of PSM2_LIB_REFCOUNT_CAP. Signed-off-by: Jeff Squyres <jsquyres@cisco.com> Signed-off-by: Michael Heinz <michael.william.heinz@intel.com>
99 строки
4.2 KiB
Bash
99 строки
4.2 KiB
Bash
# -*- shell-script -*-
|
|
#
|
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
# University Research and Technology
|
|
# Corporation. All rights reserved.
|
|
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
# of Tennessee Research Foundation. All rights
|
|
# reserved.
|
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
# University of Stuttgart. All rights reserved.
|
|
# Copyright (c) 2004-2006 The Regents of the University of California.
|
|
# All rights reserved.
|
|
# Copyright (c) 2006 QLogic Corp. All rights reserved.
|
|
# Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved.
|
|
# Copyright (c) 2016 Intel Corporation. All rights reserved.
|
|
# Copyright (c) 2015 Research Organization for Information Science
|
|
# and Technology (RIST). All rights reserved.
|
|
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
|
# reserved.
|
|
# $COPYRIGHT$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
|
|
# OMPI_CHECK_PSM2(prefix, [action-if-found], [action-if-not-found])
|
|
# --------------------------------------------------------
|
|
# check if PSM2 support can be found. sets prefix_{CPPFLAGS,
|
|
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
|
# support, otherwise executes action-if-not-found
|
|
AC_DEFUN([OMPI_CHECK_PSM2],[
|
|
if test -z "$ompi_check_psm2_happy" ; then
|
|
AC_ARG_WITH([psm2],
|
|
[AC_HELP_STRING([--with-psm2(=DIR)],
|
|
[Build PSM2 (Intel PSM2) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
|
OPAL_CHECK_WITHDIR([psm2], [$with_psm2], [include/psm2.h])
|
|
AC_ARG_WITH([psm2-libdir],
|
|
[AC_HELP_STRING([--with-psm2-libdir=DIR],
|
|
[Search for PSM (Intel PSM2) libraries in DIR])])
|
|
OPAL_CHECK_WITHDIR([psm2-libdir], [$with_psm2_libdir], [libpsm2.*])
|
|
|
|
ompi_check_psm2_$1_save_CPPFLAGS="$CPPFLAGS"
|
|
ompi_check_psm2_$1_save_LDFLAGS="$LDFLAGS"
|
|
ompi_check_psm2_$1_save_LIBS="$LIBS"
|
|
|
|
AS_IF([test "$with_psm2" != "no"],
|
|
[AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "yes"],
|
|
[ompi_check_psm2_dir="$with_psm2"])
|
|
AS_IF([test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"],
|
|
[ompi_check_psm2_libdir="$with_psm2_libdir"])
|
|
|
|
OPAL_CHECK_PACKAGE([ompi_check_psm2],
|
|
[psm2.h],
|
|
[psm2],
|
|
[psm2_mq_irecv2],
|
|
[],
|
|
[$ompi_check_psm2_dir],
|
|
[$ompi_check_psm2_libdir],
|
|
[ompi_check_psm2_happy="yes"],
|
|
[ompi_check_psm2_happy="no"])],
|
|
[ompi_check_psm2_happy="no"])
|
|
|
|
CPPFLAGS="$ompi_check_psm2_$1_save_CPPFLAGS"
|
|
LDFLAGS="$ompi_check_psm2_$1_save_LDFLAGS"
|
|
LIBS="$ompi_check_psm2_$1_save_LIBS"
|
|
|
|
AS_IF([test "$ompi_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"],
|
|
[AC_MSG_WARN([PSM2 driver does not currently support progress threads. Disabling MTL.])
|
|
ompi_check_psm2_happy="no"])
|
|
|
|
AS_IF([test "$ompi_check_psm2_happy" = "yes"],
|
|
[AC_CHECK_HEADERS(
|
|
glob.h,
|
|
[],
|
|
[AC_MSG_WARN([glob.h not found. Can not build component.])
|
|
ompi_check_psm2_happy="no"])])
|
|
|
|
AS_IF([test "$ompi_check_psm2_happy" = "yes"],
|
|
[AC_CHECK_DECL([PSM2_LIB_REFCOUNT_CAP],
|
|
[],
|
|
[AC_MSG_WARN([PSM2 needs to be version 11.2.173 or later. Disabling MTL.])
|
|
ompi_check_psm2_happy="no"],
|
|
[#include <psm2.h>])
|
|
])
|
|
|
|
OPAL_SUMMARY_ADD([[Transports]],[[Intel Omnipath (PSM2)]],[$1],[$ompi_check_psm2_happy])
|
|
fi
|
|
|
|
AS_IF([test "$ompi_check_psm2_happy" = "yes"],
|
|
[$1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_psm2_LDFLAGS"
|
|
$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_psm2_CPPFLAGS"
|
|
$1_LIBS="[$]$1_LIBS $ompi_check_psm2_LIBS"
|
|
$2],
|
|
[AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "no"],
|
|
[AC_MSG_ERROR([PSM2 support requested but not found. Aborting])])
|
|
$3])
|
|
])
|