1
1

build: Move PMIx to a 3rd-party package

With Open MPI 5.0, the decision was made to stop building
3rd-party packages, such as Libevent, HWLOC, PMIx, and PRRTE as
MCA components and instead 1) start relying on external libraries
whenever possible and 2) Open MPI builds the 3rd party
libraries (if needed) as independent libraries, rather than
linked into libopen-pal.

This patch moves the PMIx library bundled with Open MPI from a
MCA framework to a stand-alone library built outside of OPAL.  Due
to the amount of code in the MCA base (and its assumptions about
being part of an MCA framework), the framework is left with no
active components.  Any pre-installed version of PMIx 3.0.0 or
newer is preferred over the internal version.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Этот коммит содержится в:
Brian Barrett 2020-04-27 17:32:56 +00:00
родитель 0e9581d478
Коммит 8f89d15d31
26 изменённых файлов: 344 добавлений и 640 удалений

9
.gitignore поставляемый
Просмотреть файл

@ -45,12 +45,13 @@
Makefile
Makefile.in
# hwloc has been de-modularized, but still uses parts of the MCA
# system due to the amount of glue code that ended up in the framework
# base. Until that is cleaned up, do not ignore the hard-coded
# static-components.h file.
# hwloc and pmix have been de-modularized, but still uses parts of the
# MCA system due to the amount of glue code that ended up in the
# framework base. Until that is cleaned up, do not ignore the
# hard-coded static-components.h file.
static-components.h
!opal/mca/hwloc/base/static-components.h
!opal/mca/pmix/base/static-components.h
*\\#
config.cache

2
.gitmodules поставляемый
Просмотреть файл

@ -3,6 +3,6 @@
url = https://github.com/openpmix/prrte
branch = master
[submodule "openpmix"]
path = opal/mca/pmix/pmix4x/openpmix
path = 3rd-party/openpmix
url = https://github.com/openpmix/openpmix.git
branch = master

1
3rd-party/openpmix поставляемый Подмодуль

@ -0,0 +1 @@
Subproject commit 952a986999027667b4d83bd257ea0efd9f908520

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

@ -1477,6 +1477,19 @@ if ("hwloc" ~~ @disabled_3rdparty_packages) {
verbose "--- hwloc enabled\n";
}
verbose "=== PMIx\n";
if ("pmix" ~~ @disabled_3rdparty_packages) {
verbose "--- PMIx disabled\n";
} else {
# sanity check pmix files exist
if (! -f "3rd-party/openpmix/configure.ac") {
my_die("Could not find pmix files\n");
}
push(@subdirs, "3rd-party/openpmix/");
$m4 .= "m4_define([package_pmix], [1])\n";
verbose "--- PMIx enabled\n";
}
$m4 .= "\n";
#---------------------------------------------------------------------------

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

@ -26,7 +26,7 @@
#
AC_DEFUN([OMPI_SETUP_PRRTE],[
OPAL_VAR_SCOPE_PUSH([opal_prrte_save_CPPFLAGS opal_prrte_save_CFLAGS opal_prrte_save_LDFLAGS opal_prrte_save_LIBS opal_prrte_args opal_prrte_save_enable_dlopen opal_prrte_save_enable_mca_dso opal_prrte_save_enable_mca_static opal_prrte_extra_libs opal_prrte_extra_ltlibs opal_prrte_extra_ldflags opal_prrte_save_with_pmix])
OPAL_VAR_SCOPE_PUSH([opal_prrte_save_CPPFLAGS opal_prrte_save_CFLAGS opal_prrte_save_LDFLAGS opal_prrte_save_LIBS opal_prrte_args opal_prrte_save_enable_dlopen opal_prrte_save_enable_mca_dso opal_prrte_save_enable_mca_static opal_prrte_extra_libs opal_prrte_extra_ltlibs opal_prrte_extra_ldflags])
opal_prrte_save_CFLAGS=$CFLAGS
opal_prrte_save_CPPFLAGS=$CPPFLAGS
@ -35,7 +35,6 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
opal_prrte_save_enable_dlopen=enable_dlopen
opal_prrte_save_enable_mca_dso=enable_mca_dso
opal_prrte_save_enable_mca_static=enable_mca_static
opal_prrte_save_with_pmix=with_pmix
AC_ARG_ENABLE([internal-rte],
[AC_HELP_STRING([--enable-internal-rte],
@ -49,21 +48,12 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
[AC_HELP_STRING([--enable-prte-prefix-by-default],
[Make "mpirun ..." behave exactly the same as "mpirun --prefix \$prefix" (where \$prefix is the value given to --prefix in configure) (default:enabled)])])
AS_IF([test "$opal_external_pmix_happy" = "yes" && test $opal_numerical_pmix_version -lt 4 && test "$enable_internal_rte" != "no"],
[AC_MSG_WARN([OMPI's internal runtime environment "PRRTE" does not support])
AC_MSG_WARN([PMIx versions less than v4.x as they lack adequate tool])
AC_MSG_WARN([support. You can, if desired, build OMPI against an earlier])
AC_MSG_WARN([version of PMIx for strictly direct-launch purposes - e.g., using)])
AC_MSG_WARN([Slurm's srun to launch the job - by configuring with the])
AC_MSG_WARN([--disable-internal-rte option.])
AC_MSG_ERROR([Cannot continue])])
AC_MSG_CHECKING([if RTE support is enabled])
if test "$enable_internal_rte" != "no"; then
AC_MSG_RESULT([yes])
AS_IF([test "$enable_internal_rte" != "no"],
[AC_MSG_RESULT([yes])
ompi_want_prrte=yes
opal_prrte_extra_libs=$OMPI_TOP_BUILDDIR/opal/libopen-pal.la
opal_prrte_extra_ltlibs=$OMPI_TOP_BUILDDIR/opal/libopen-pal.la
opal_prrte_extra_libs=
opal_prrte_extra_ltlibs=
AS_IF([test "$opal_libevent_mode" = "internal"],
[opal_prrte_extra_libs="$opal_prrte_extra_libs $opal_libevent_LIBS"
@ -85,15 +75,39 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
AS_IF([test ! -z "$with_hwloc_libdir"],
[opal_prrte_hwloc_arg="$opal_prrte_hwloc_arg --with-hwloc-libdir=$with_hwloc_libdir"])])
if test -z $with_pmix || test "$with_pmix" = "internal" || test "$with_pmix" = "yes"; then
opal_prrte_pmix_arg="--with-pmix-header=$OMPI_TOP_SRCDIR/opal/mca/pmix/pmix-internal.h"
else
if test "$with_pmix" = "external"; then
opal_prrte_pmix_arg="--with-pmix"
else
opal_prrte_pmix_arg="--with-pmix=$with_pmix"
fi
fi
AS_IF([test "$opal_pmix_mode" = "internal"],
[opal_prrte_extra_libs="$opal_prrte_extra_libs $opal_pmix_LIBS"
opal_prrte_extra_ltlibs="$opal_prrte_extra_ltlibs $opal_pmix_LIBS"
AS_IF([test ! -z "$opal_pmix_header"],
[opal_prrte_pmix_arg="--with-pmix-header=$opal_pmix_header"])],
[OPAL_VAR_SCOPE_PUSH([opal_prrte_CPPFLAGS_save])
opal_prrte_CPPFLAGS_save=$CPPFLAGS
AC_MSG_CHECKING([if external PMIx version is 3.0.0 or greater])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <pmix_version.h>]],
[[
#if PMIX_VERSION_MAJOR < 4L
#error "pmix API version is less than 4.0.0"
#endif
]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_WARN([OMPI's internal runtime environment "PRRTE" does not support])
AC_MSG_WARN([PMIx versions less than v4.x as they lack adequate tool])
AC_MSG_WARN([support. You can, if desired, build OMPI against an earlier])
AC_MSG_WARN([version of PMIx for strictly direct-launch purposes - e.g., using)])
AC_MSG_WARN([Slurm's srun to launch the job - by configuring with the])
AC_MSG_WARN([--disable-internal-rte option.])
AC_MSG_ERROR([Cannot continue])])
CPPFLAGS=$opal_prrte_CPPFLAGS_save
OPAL_VAR_SCOPE_POP
opal_prrte_pmix_arg="--with-pmix=$with_pmix"
AS_IF([test ! -z "$with_pmix_libdir"],
[opal_prrte_pmix_arg="$opal_prrte_pmix_arg --with-pmix-libdir=$with_pmix_libdir"])])
if test -z $enable_prte_prefix_by_default || test "$enable_prte_prefix_by_default" = "yes" ||
test "$enable_orterun_prefix_given" = "yes"; then
@ -124,13 +138,10 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
[$opal_prrte_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS'],
[opal_prrte_happy=1], [opal_prrte_happy=0])
OPAL_SUMMARY_ADD([[Miscellaneous]],[[PRRTE]],[prrte],[yes])
else
OPAL_SUMMARY_ADD([[Miscellaneous]],[[PRRTE]],[prrte],[no (disabled)])
OPAL_SUMMARY_ADD([[Miscellaneous]],[[PRRTE]],[prrte],[yes])],
[OPAL_SUMMARY_ADD([[Miscellaneous]],[[PRRTE]],[prrte],[no (disabled)])
AC_MSG_RESULT([no (disabled)])
ompi_want_prrte=no
fi
ompi_want_prrte=no])
CFLAGS=$opal_prrte_save_CFLAGS
CPPFLAGS=$opal_prrte_save_CPPFLAGS

200
config/opal_config_pmix.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,200 @@
dnl -*- autoconf -*-
dnl
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
dnl University Research and Technology
dnl Corporation. All rights reserved.
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
dnl of Tennessee Research Foundation. All rights
dnl reserved.
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2009-2019 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2014-2019 Intel, Inc. All rights reserved.
dnl Copyright (c) 2014-2018 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl Copyright (c) 2016 IBM Corporation. All rights reserved.
dnl Copyright (c) 2020 Triad National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2020 Amazon.com, Inc. or its affiliates. All Rights
dnl reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl
dnl Check for / configure PMIx package. Prefer finding an
dnl external PMIx, build our internal one if required. If we can
dnl not find an external PMIx and the internal one fails to
dnl configure, abort.
dnl
dnl This macro will change the environment in the following way:
dnl
dnl * opal_pmix_header [legacy] - will be set if building
dnl internally, to the header file that should be included for
dnl embedded builds. This is used by PRRTE, but should not
dnl be used by new code.
dnl * opal_pmix_mode - either external or internal. If internal,
dnl --with-pmix should be ignored by other packages
dnl * opal_pmix_CPPFLAGS - the C Preprocessor flags necessary to
dnl run the preprocessor on a file which relies on PMIx
dnl headers. This will be folded into the global CPPFLAGS,
dnl so most people should never need this.
dnl * opal_pmix_LDFLAGS - the linker flags necessary to run the
dnl linker on a file which relies on PMIx libraries. This
dnl will be folded into the global CPPFLAGS, so most people
dnl should never need this.
dnl * opal_pmix_LIBS - the libraries necessary to link source which
dnl uses PMIx. Cannot be added to LIBS yet, because then
dnl other execution tests later in configure (there are sadly
dnl some) would fail if the path in LDFLAGS was not added to
dnl LD_LIBRARY_PATH.
dnl * CPPFLAGS, LDFLAGS - Updated opal_pmix_CPPFLAGS and
dnl opal_pmix_LDFLAGS.
AC_DEFUN([OPAL_CONFIG_PMIX], [
OPAL_VAR_SCOPE_PUSH([external_pmix_happy internal_pmix_happy internal_pmix_args internal_pmix_libs])
opal_show_subtitle "Configuring PMIx"
OPAL_3RDPARTY_WITH([pmix], [pmix], [package_pmix])
opal_pmix_header=""
internal_pmix_happy=0
m4_ifdef([package_pmix],
[# always configure the internal pmix, so that
# make dist always works.
internal_pmix_args="--without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility"
internal_pmix_libs=
AS_IF([test "$opal_libevent_mode" = "internal"],
[internal_pmix_args="$internal_pmix_args --with-libevent=cobuild"
internal_pmix_libs="$internal_pmix_libs $opal_libevent_LIBS"])
AS_IF([test "$opal_hwloc_mode" = "internal"],
[internal_pmix_args="$internal_pmix_args --with-hwloc=cobuild"
internal_pmix_libs="$internal_pmix_libs $opal_hwloc_LIBS"])
AS_IF([test ! -z "$internal_pmix_libs"],
[internal_pmix_args="$internal_pmix_args --with-prte-extra-lib=\"$internal_pmix_libs\""])
# Pass all our compiler/linker flags to PMIx, so that it
# picks up how to build an internal HWLOC and libevent, plus
# picks up any user-specified compiler flags from the master
# configure run.
export CFLAGS CPPFLAGS LDFLAGS
PAC_CONFIG_SUBDIR_ARGS([3rd-party/openpmix], [$internal_pmix_args],
[[--with-libevent=internal], [--with-hwloc=internal],
[--with-libevent=external], [--with-hwloc=external],
[--with-pmix=.*], [--with-platform=.*]],
[internal_pmix_happy=1])
OPAL_3RDPARTY_DIST_SUBDIRS="$OPAL_3RDPARTY_DIST_SUBDIRS openpmix"])
# unless internal specifically requested by the user, try to find
# an external that works.
external_pmix_happy=0
AS_IF([test "opal_pmix_mode" != "internal"],
[_OPAL_CONFIG_PMIX_EXTERNAL(
[external_pmix_happy=1
opal_pmix_mode="external"],
[AS_IF([test "$opal_pmix_mode" = "external"],
[AC_MSG_ERROR([External PMIx requested but not found.])])])])
# external did not work out and customer did not specify external,
# so try the internal version.
AS_IF([test "$external_pmix_happy" = "0" -a "$internal_pmix_happy" = "1"],
[opal_pmix_mode="internal"
_OPAL_CONFIG_PMIX_INTERNAL_POST()])
AS_IF([test "$external_pmix_happy" = "0" -a "$internal_pmix_happy" = "0"],
[AC_MSG_ERROR([Could not find viable pmix build.])])
AC_SUBST(opal_pmix_CPPFLAGS)
AC_SUBST(opal_pmix_LDFLAGS)
AC_SUBST(opal_pmix_LIBS)
OPAL_SUMMARY_ADD([[Miscellaneous]], [[pmix]], [pmix], [$opal_pmix_mode])
OPAL_VAR_SCOPE_POP
])
dnl _OPAL_CONFIG_PMIX_EXTERNAL(action-if-happy, action-if-not-happy)
dnl
dnl only safe to call from OPAL_CONFIG_PMIX, assumes variables from
dnl there are set.
AC_DEFUN([_OPAL_CONFIG_PMIX_EXTERNAL], [
OPAL_VAR_SCOPE_PUSH([opal_pmix_CPPFLAGS_save opal_pmix_LDFLAGS_save opal_pmix_LIBS_save opal_pmix_external_support])
opal_pmix_CPPFLAGS_save=$CPPFLAGS
opal_pmix_LDFLAGS_save=$LDFLAGS
opal_pmix_LIBS_save=$LIBS
opal_pmix_external_support="yes"
AS_IF([test "$opal_libevent_mode" = "internal" -o "$opal_hwloc_mode" = "internal"],
[opal_pmix_external_support="no"
AS_IF([test "$opal_pmix_mode" = "external"],
[AC_MSG_ERROR([Building against an external PMIx with an internal Libevent or HWLOC is unsupported. Cannot continue.])])],
[AS_IF([test ! -z "$with_pmix_libdir"],
[OPAL_CHECK_WITHDIR([pmix-libdir], [$with_pmix_libdir],
[libpmix.*])])
OPAL_CHECK_PACKAGE([opal_pmix],
[pmix.h],
[pmix],
[PMIx_Init],
[],
[$with_pmix],
[$with_pmix_libdir],
[],
[opal_pmix_external_support=no])
# need these set for the tests below. If things fail, will undo at the end.
CPPFLAGS="$opal_pmix_CPPFLAGS_save $opal_pmix_CPPFLAGS"
LDFLAGS="$opal_pmix_LDFLAGS_save $opal_pmix_LDFLAGS"
LIBS="$opal_pmix_LIBS_save $opal_pmix_LIBS"
AS_IF([test "$opal_pmix_external_support" = "yes"],
[AC_MSG_CHECKING([if external PMIx version is 3.0.0 or greater])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <pmix_version.h>]],
[[
#if PMIX_VERSION_MAJOR < 3L
#error "pmix API version is less than 3.0.0"
#endif
]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
opal_pmix_external_support=no])])
LDFLAGS="$opal_pmix_LDFLAGS_save"
LIBS="$opal_pmix_LIBS_save"
AS_IF([test "$opal_pmix_external_support" = "yes"],
[$1],
[CPPFLAGS="$opal_pmix_CPPFLAGS_save"
$2])])
OPAL_VAR_SCOPE_POP
])
dnl _OPAL_CONFIG_PMIX_INTERNAL_POST()
dnl
dnl Expectation is that this is called only if external fails, the
dnl caller configured libpmix configure, and the configure script
dnl succeeded.
AC_DEFUN([_OPAL_CONFIG_PMIX_INTERNAL_POST], [
opal_pmix_CPPFLAGS="-I$OMPI_TOP_BUILDDIR/3rd-party/openpmix/include -I$OMPI_TOP_SRCDIR/3rd-party/openpmix/include"
opal_pmix_LDFLAGS=""
opal_pmix_LIBS="$OMPI_TOP_BUILDDIR/3rd-party/openpmix/src/libpmix.la"
CPPFLAGS="$CPPFLAGS $opal_pmix_CPPFLAGS"
opal_pmix_header="$OMPI_TOP_SRCDIR/opal/mca/pmix/pmix-3rdparty.h"
OPAL_3RDPARTY_SUBDIRS="$OPAL_3RDPARTY_SUBDIRS openpmix"
])

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

@ -255,7 +255,7 @@ m4_ifdef([project_oshmem],
OPAL_CONFIGURE_OPTIONS
OPAL_CHECK_OS_FLAVORS
OPAL_CHECK_CUDA
OPAL_CHECK_PMIX
m4_ifdef([project_ompi], [OMPI_CONFIGURE_OPTIONS])
m4_ifdef([project_oshmem], [OSHMEM_CONFIGURE_OPTIONS])
@ -1110,6 +1110,7 @@ OPAL_3RDPARY_DISTCLEAN_DIRS=
OPAL_CONFIG_LIBEVENT
OPAL_CONFIG_HWLOC
OPAL_CONFIG_PMIX
AC_SUBST(OPAL_3RDPARTY_SUBDIRS)
AC_SUBST(OPAL_3RDPARTY_DIST_SUBDIRS)

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

@ -55,7 +55,8 @@ lib@OPAL_LIB_PREFIX@open_pal_la_LIBADD = \
util/libopalutil.la \
$(MCA_opal_FRAMEWORK_LIBS) \
$(opal_libevent_LIBS) \
$(opal_hwloc_LIBS)
$(opal_hwloc_LIBS) \
$(opal_pmix_LIBS)
lib@OPAL_LIB_PREFIX@open_pal_la_DEPENDENCIES = \
datatype/libdatatype.la \
mca/base/libmca_base.la \
@ -63,7 +64,8 @@ lib@OPAL_LIB_PREFIX@open_pal_la_DEPENDENCIES = \
$(MCA_opal_FRAMEWORK_LIBS)
lib@OPAL_LIB_PREFIX@open_pal_la_LDFLAGS = -version-info $(libopen_pal_so_version) \
$(opal_libevent_LDFLAGS) \
$(opal_hwloc_LDFLAGS)
$(opal_hwloc_LDFLAGS) \
$(opal_pmix_LDFLAGS)
# included subdirectory Makefile.am's and appended-to variables
headers =

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

@ -15,7 +15,8 @@ noinst_LTLIBRARIES = libmca_pmix.la
libmca_pmix_la_SOURCES =
# local files
headers = pmix-internal.h
headers = pmix-internal.h \
pmix-3rdparty.h
libmca_pmix_la_SOURCES += $(headers)
# Conditionally install the header files
@ -25,6 +26,3 @@ nobase_opal_HEADERS = $(headers)
endif
include base/Makefile.am
distclean-local:
rm -f base/static-components.h

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

@ -12,7 +12,8 @@
dist_opaldata_DATA += base/help-pmix-base.txt
headers += \
base/base.h
base/base.h \
base/static-components.h
libmca_pmix_la_SOURCES += \
base/pmix_base_frame.c \

18
opal/mca/pmix/base/static-components.h Обычный файл
Просмотреть файл

@ -0,0 +1,18 @@
/*
* $HEADER$
*/
#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
extern const mca_base_component_t mca_pmix_pmix4x_component;
const mca_base_component_t *mca_pmix_base_static_components[] = {
NULL
};
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif

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

@ -2,6 +2,8 @@ dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2010-2017 Cisco Systems, Inc. All rights reserved
dnl Copyright (c) 2019 Intel, Inc. All rights reserved.
dnl Copyright (c) 2020 Amazon.com, Inc. or its affiliates. All Rights
dnl reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
@ -9,101 +11,19 @@ dnl
dnl $HEADER$
dnl
# There will only be one component used in this framework, and it will
# be selected at configure time by priority. Components must set
# their priorities in their configure.m4 files. They must also set
# the shell variable $opal_pmix_base_include to a header file
# name (relative to the top OMPI source directory) that will be
# included in opal/mca/pmix/pmix-internal.h.
dnl We only want one winning component (vs. STOP_AT_FIRST_PRIORITY,
dnl which will allow all components of the same priority who succeed to
dnl win)
m4_define(MCA_opal_pmix_CONFIGURE_MODE, STOP_AT_FIRST)
#
# In days of old, pmix was packaged as multiple MCA components, and
# grew an extensive set of base code to support Open MPI's use of
# pmix. When internal builds of libevent, hwloc, and pmix were moved
# out of components into base code so that they could be shared
# between Open MPI and PRRTE without incurring linking hell, we left
# the base code active. This MCA framework is essentially defunct;
# its only purpose is to allow continued use of the base code.
#
# We do not expect to find any components, nor do we allow any to be
# configured. The top-level configure will set all the flags in all
# the right places needed to link pmix.
#
AC_DEFUN([MCA_opal_pmix_CONFIG],[
opal_pmix_base_include=
# See if we want internal vs external pmix
AC_ARG_WITH(pmix,
AC_HELP_STRING([--with-pmix(=DIR)],
[Build pmix support. DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of pmix. "external" forces Open MPI to use an external installation of pmix. Supplying a valid directory name also forces Open MPI to use an external installation of pmix, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries. Note that Open MPI no longer supports --without-pmix.]))
# check for error
AS_IF([test "$with_pmix" = "no"],
[AC_MSG_WARN([Open MPI requires PMIX support. It can be built])
AC_MSG_WARN([with either its own internal copy of PMIX, or with])
AC_MSG_WARN([an external copy that you supply.])
AC_MSG_ERROR([Cannot continue])])
# Configure all the components - always have to do this. Note that
# instead of passing in
# the traditional $1 and $2 as the first arguments, we hard-code
# "opal" and "pmix", because this macro is invoked via AC
# REQUIRE.
MCA_CONFIGURE_FRAMEWORK([opal], [pmix], 1)
# Give a blank line to separate these messages from the last
# component's configure.m4 output.
echo " "
# If we aren't given a specific component, then we must find one
AS_IF([test "$with_pmix" = ""], [],
[ # STOP_AT_FIRST_PRIORITY will guarantee that we find at most
# one. We need to check here that we found *at least* one.
AS_IF([test "$MCA_opal_pmix_STATIC_COMPONENTS" = ""],
[AC_MSG_WARN([Did not find a suitable static opal pmix component])
AC_MSG_ERROR([Cannot continue])])
])
# If we have a winning component, do some more logic
AS_IF([test "$MCA_opal_pmix_STATIC_COMPONENTS" != ""],
[ # We had a winner -- w00t!
# The winning component will have told us where their header file
# is located
AC_MSG_CHECKING([for winning pmix component header file])
AS_IF([test "$opal_pmix_base_include" = ""],
[AC_MSG_RESULT([missing])
AC_MSG_WARN([Missing implementation header])
AC_MSG_ERROR([Cannot continue])])
AC_MSG_RESULT([$opal_pmix_base_include])
AC_DEFINE_UNQUOTED([MCA_pmix_IMPLEMENTATION_HEADER],
["$opal_pmix_base_include"],
[Header to include for pmix implementation])
# If we added any -L flags to ADD_LDFLAGS, then we (might)
# need to add those directories to LD_LIBRARY_PATH.
# Otherwise, if we try to AC RUN_IFELSE anything here in
# configure, it might die because it can't find the libraries
# we just linked against.
OPAL_VAR_SCOPE_PUSH([opal_pmix_base_found_l opal_pmix_base_token opal_pmix_base_tmp opal_pmix_base_dir])
opal_pmix_base_found_l=0
eval "opal_pmix_base_tmp=\$opal_pmix_${opal_pmix_winner}_ADD_LIBS"
for opal_pmix_base_token in $opal_pmix_base_tmp; do
case $opal_pmix_base_token in
-l*) opal_pmix_base_found_l=1 ;;
esac
done
AS_IF([test $opal_pmix_base_found_l -eq 1],
[eval "opal_pmix_base_tmp=\$opal_pmix_${opal_pmix_winner}_ADD_LDFLAGS"
for opal_pmix_base_token in $opal_pmix_base_tmp; do
case $opal_pmix_base_token in
-L*)
opal_pmix_base_dir=`echo $opal_pmix_base_token | cut -c3-`
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$opal_pmix_base_dir
AC_MSG_WARN([Adding to LD_LIBRARY_PATH: $opal_pmix_base_dir])
;;
esac
done])
OPAL_VAR_SCOPE_POP
])
# Similar to above, if this m4 is being invoked "early" via AC
# REQUIRE, print out a nice banner that we have now finished
# pre-emption and are returning to the Normal Order Of Things.
AS_IF([test "$opal_pmix_its_time_to_configure" != "1"],
[echo " "
echo "<== Pre-emptive pmix framework configuration complete."
echo "<== We now return you to your regularly scheduled programming."
echo " "]);
AC_CONFIG_FILES([$1/mca/$2/Makefile])
])

34
opal/mca/pmix/external/Makefile.am поставляемый
Просмотреть файл

@ -1,34 +0,0 @@
#
# Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2016-2019 Intel, Inc. All rights reserved.
# Copyright (c) 2020 Triad National Security, LLC. All rights
# reserved.
#
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This is a special component -- its main purpose in life is to have
# its configure.m4 add some things to CPPFLAGS, LDFLAGS, and
# LIBS. Hence, there's nothing to build here. :-)
# We only ever build this component statically
noinst_LTLIBRARIES = libmca_pmix_external.la
libmca_pmix_external_la_SOURCES = \
external.h \
pmix_external_component.c
libmca_pmix_external_la_LIBADD = $(opal_external_pmix_LIBS)
libmca_pmix_external_la_LDFLAGS = \
-module -avoid-version $(opal_external_pmix_LDFLAGS)
# Conditionally install the header files
if WANT_INSTALL_HEADERS
opaldir = $(opalincludedir)/$(subdir)
nobase_opal_HEADERS = external.h
endif

65
opal/mca/pmix/external/configure.m4 поставляемый
Просмотреть файл

@ -1,65 +0,0 @@
# -*- shell-script -*-
#
# Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved
# Copyright (c) 2014-2018 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
#
# Copyright (c) 2018-2019 Intel, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# Priority
#
AC_DEFUN([MCA_opal_pmix_external_PRIORITY], [90])
#
# Force this component to compile in static-only mode
#
AC_DEFUN([MCA_opal_pmix_external_COMPILE_MODE], [
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
$4="static"
AC_MSG_RESULT([$$4])
])
# MCA_pmix_external_POST_CONFIG()
# ---------------------------------
AC_DEFUN([MCA_opal_pmix_external_POST_CONFIG],[
OPAL_VAR_SCOPE_PUSH([opal_pmix_external_basedir])
# If we won, then do all the rest of the setup
AS_IF([test "$1" = "1"],
[ # Set this variable so that the framework m4 knows what
# file to include in opal/mca/pmix/pmix-internal.h
# The CPPFLAGS, LDFLAGS, and LIBS were already set
# by the configury
opal_pmix_external_basedir=opal/mca/pmix/external
opal_pmix_base_include="$opal_pmix_external_basedir/external.h"
])
OPAL_VAR_SCOPE_POP
])dnl
# MCA_pmix_external_CONFIG([action-if-found], [action-if-not-found])
# --------------------------------------------------------------------
AC_DEFUN([MCA_opal_pmix_external_CONFIG],[
AC_CONFIG_FILES([opal/mca/pmix/external/Makefile])
AS_IF([test "$opal_external_pmix_happy" = "yes"],
[$1], [$2])
AS_IF([test "$opal_external_pmix_happy" = "yes"],
[AS_IF([test "$opal_event_external_support" != "yes" || test "$opal_hwloc_external_support" != "yes"],
[AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT AND HWLOC])
AC_MSG_WARN([LIBRARIES. THESE LIBRARIES MUST POINT TO THE SAME ONES USED])
AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT])
AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])])
])
OPAL_VAR_SCOPE_POP
])dnl

46
opal/mca/pmix/external/external.h поставляемый
Просмотреть файл

@ -1,46 +0,0 @@
/*
* Copyright (c) 2011-2019 Cisco Systems, Inc. All rights reserved
* Copyright (c) 2016-2019 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
*
* Copyright (c) 2016-2019 Intel, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*
* When this component is used, this file is included in the rest of
* the OPAL/OMPI code base via opal/mca/pmix/pmix-internal.h. As such,
* this header represents the public interface to this static component.
*/
#ifndef MCA_OPAL_PMIX_EXTERNAL_H
#define MCA_OPAL_PMIX_EXTERNAL_H
BEGIN_C_DECLS
#include <opal_config.h>
/* Top-level configure will always configure the embedded pmix
* component, even if we already know that we'll be using an external
* pmix (because of complicated reasons). A side-effect of this is
* that the embedded pmix will AC_DEFINE PMIX_VERSION (and friends)
* in opal_config.h. If the external pmix defines a different value
* of PMIX_VERSION (etc.), we'll get zillions of warnings about the
* two PMIX_VERSION values not matching. Hence, we undefined all of
* them here (so that the external <pmix.h> can define them to
* whatever it wants). */
#undef PMIX_VERSION
#undef PMIX_VERSION_MAJOR
#undef PMIX_VERSION_MINOR
#undef PMIX_VERSION_RELEASE
#undef PMIX_VERSION_GREEK
#include "pmix_common.h"
#include "pmix.h"
END_C_DECLS
#endif /* MCA_OPAL_PMIX_EXTERNAL_H */

7
opal/mca/pmix/external/owner.txt поставляемый
Просмотреть файл

@ -1,7 +0,0 @@
#
# owner/status file
# owner: institution that is responsible for this package
# status: e.g. active, maintenance, unmaintained
#
owner:Intel
status: maintenance

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

@ -1,65 +0,0 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2011-2017 Cisco Systems, Inc. All rights reserved
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
* reserved.
*
* Copyright (c) 2019 Intel, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "opal_config.h"
#include "opal/constants.h"
#include "opal/mca/pmix/pmix-internal.h"
/*
* Public string showing the sysinfo ompi_linux component version number
*/
const char *opal_pmix_external_component_version_string =
"OPAL pmix_external pmix MCA component version " OPAL_VERSION;
/*
* Local function
*/
static int pmix_external_open(void);
/*
* Instantiate the public struct with all of our public information
* and pointers to our public functions in it
*/
const opal_pmix_component_t mca_pmix_external_component = {
/* First, the mca_component_t struct containing meta information
about the component itself */
.base_version = {
OPAL_PMIX_BASE_VERSION_2_0_0,
/* Component name and version */
.mca_component_name = "external",
MCA_BASE_MAKE_VERSION(component, OPAL_MAJOR_VERSION, OPAL_MINOR_VERSION,
OPAL_RELEASE_VERSION),
/* Component open and close functions */
.mca_open_component = pmix_external_open,
},
.base_data = {
/* The component is checkpoint ready */
MCA_BASE_METADATA_PARAM_CHECKPOINT
},
};
static int pmix_external_open(void)
{
/* Must have some code in this file, or the OS X linker may
eliminate the whole file */
return OPAL_SUCCESS;
}

30
opal/mca/pmix/pmix-3rdparty.h Обычный файл
Просмотреть файл

@ -0,0 +1,30 @@
/*
* Copyright (c) 2020 Amazon.com, Inc. or its affiliates.
* All Rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
/*
* TODO: UGLY HACK ALERT!
*
* PRRTE uses --with-pmix-header as a key that it is using an internal
* PMIx build (same with libevent/hwloc), and that header has to
* include all the files that the prrte source expects. This is a
* pain and the long term fix is to add the "cobuild" support to PRRTE
* similar to what was done for PMIx. Until those patches land, this
* header includes all the right pieces required.
*/
#ifndef OPAL_PMIX_3RDPARTY_H
#define OPAL_PMIX_3RDPARTY_H
#include <pmix.h>
#include <pmix_server.h>
#include <pmix_tool.h>
#include <pmix_version.h>
#endif

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

@ -14,6 +14,14 @@
* Additional copyrights may follow
*
* $HEADER$
*
* In days of old, pmix was packaged as multiple MCA components, and
* grew an extensive set of base code to support Open MPI's use of
* pmix. When internal builds of libevent, hwloc, and pmix were moved
* out of components into base code so that they could be shared
* between Open MPI and PRRTE without incurring linking hell, we left
* the base code active. This MCA framework is essentially defunct;
* its only purpose is to allow continued use of the base code.
*/
#ifndef OPAL_PMIX_H
@ -33,8 +41,7 @@
#include "opal/util/error.h"
#include "opal/hash_string.h"
/* include implementation to call */
#include MCA_pmix_IMPLEMENTATION_HEADER
#include <pmix.h>
BEGIN_C_DECLS

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

@ -1,27 +0,0 @@
#
# Copyright (c) 2014-2019 Intel, Inc. All rights reserved.
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2015 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2017 IBM Corporation. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
EXTRA_DIST = autogen.subdirs
SUBDIRS = openpmix
sources = \
pmix4x.h \
pmix4x_component.c
# We only ever build this component statically
noinst_LTLIBRARIES = libmca_pmix_pmix4x.la
libmca_pmix_pmix4x_la_SOURCES =$(sources)
nodist_libmca_pmix_pmix4x_la_SOURCES = $(nodist_headers)
libmca_pmix_pmix4x_la_LDFLAGS = -module -avoid-version $(opal_pmix_pmix4x_LDFLAGS)
libmca_pmix_pmix4x_la_LIBADD = $(opal_pmix_pmix4x_LIBS)

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

@ -1 +0,0 @@
openpmix

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

@ -1,6 +0,0 @@
# Ignore symbols in this component that are auto-generated and we
# can't do anything about them (e.g., flex/bison symbols).
pmix_util_keyval_yyleng
pmix_util_keyval_yytext
pmix_show_help_yyleng
pmix_show_help_yytext

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

@ -1,165 +0,0 @@
# -*- 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-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2011-2013 Los Alamos National Security, LLC.
# All rights reserved.
# Copyright (c) 2010-2017 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2013-2020 Intel, Inc. All rights reserved.
# Copyright (c) 2015-2016 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2020 Amazon.com, Inc. or its affiliates.
# All Rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# Priority
#
AC_DEFUN([MCA_opal_pmix_pmix4x_PRIORITY], [80])
#
# Force this component to compile in static-only mode
#
AC_DEFUN([MCA_opal_pmix_pmix4x_COMPILE_MODE], [
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
$4="static"
AC_MSG_RESULT([$$4])
])
# MCA_pmix_pmix4x_POST_CONFIG()
# ---------------------------------
AC_DEFUN([MCA_opal_pmix_pmix4x_POST_CONFIG],[
OPAL_VAR_SCOPE_PUSH([opal_pmix_pmix4x_basedir])
# If we won, then do all the rest of the setup
AS_IF([test "$1" = "1" && test "$opal_pmix_pmix4x_happy" = "1"],
[
# Set this variable so that the framework m4 knows what
# file to include in opal/mca/pmix/pmix-internal.h
opal_pmix_pmix4x_basedir=opal/mca/pmix/pmix4x
opal_pmix_base_include="$opal_pmix_pmix4x_basedir/pmix4x.h"
# Add some stuff to CPPFLAGS so that the rest of the source
# tree can be built
file=$opal_pmix_pmix4x_basedir/openpmix
CPPFLAGS="-I$OPAL_TOP_SRCDIR/$file/include $CPPFLAGS"
AS_IF([test "$OPAL_TOP_BUILDDIR" != "$OPAL_TOP_SRCDIR"],
[CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$file/include $CPPFLAGS"])
unset file
])
OPAL_VAR_SCOPE_POP
# This must be run unconditionally
# PMIX_DO_AM_CONDITIONALS
])dnl
# MCA_pmix_pmix4x_CONFIG([action-if-found], [action-if-not-found])
# -----------------------------------------------------------
AC_DEFUN([MCA_opal_pmix_pmix4x_CONFIG],[
AC_CONFIG_FILES([opal/mca/pmix/pmix4x/Makefile])
OPAL_VAR_SCOPE_PUSH([PMIX_VERSION opal_pmix_pmix4x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix4x_save_LDFLAGS opal_pmix_pmix4x_save_LIBS opal_pmix_pmix4x_basedir opal_pmix_pmix4x_args pmix_pmix4x_status_filename])
opal_pmix_pmix4x_basedir=opal/mca/pmix/pmix4x
opal_pmix_pmix4x_save_CFLAGS=$CFLAGS
opal_pmix_pmix4x_save_CPPFLAGS=$CPPFLAGS
opal_pmix_pmix4x_save_LDFLAGS=$LDFLAGS
opal_pmix_pmix4x_save_LIBS=$LIBS
AC_ARG_ENABLE([pmix-timing],
[AC_HELP_STRING([--enable-pmix-timing],
[Enable PMIx timing measurements (default: disabled)])])
AC_ARG_WITH([pmix-platform],
[AC_HELP_STRING([--with-pmix-platform],
[Platform file to use when building the internal PMIx support])])
AC_MSG_CHECKING([if PMIx timing is enabled])
if test "$enable_pmix_timing" = "yes"; then
AC_MSG_RESULT([yes])
opal_pmix_pmix4x_timing_flag=--enable-pmix-timing
else
AC_MSG_RESULT([no (disabled)])
opal_pmix_pmix4x_timing_flag=--disable-pmix-timing
fi
opal_pmix_pmix4x_args="$opal_pmix_pmix4x_timing_flag --without-tests-examples --with-pmix-symbol-rename=OPAL_MCA_PMIX4X_ --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-mode --with-libevent-header=\\\"opal/util/event.h\\\" --with-hwloc-header=\\\"opal/mca/hwloc/hwloc-internal.h\\\""
AS_IF([test "$enable_debug" = "yes"],
[opal_pmix_pmix4x_args="--enable-debug $opal_pmix_pmix4x_args"
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g"],
[opal_pmix_pmix4x_args="--disable-debug $opal_pmix_pmix4x_args"
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"])
AS_IF([test "$with_devel_headers" = "yes"],
[opal_pmix_pmix4x_args="--with-devel-headers $opal_pmix_pmix4x_args"])
if test ! -z $with_pmix_platform && test "$with_pix_platform" != "yes"; then
opal_pmix_pmix4x_args="$opal_pmix_pmix4x_args --with-platform=$with_pmix_platform"
fi
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_pmix4x_basedir/openpmix],
[$opal_pmix_pmix4x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS'],
[opal_pmix_pmix4x_happy=1], [opal_pmix_pmix4x_happy=0])
CFLAGS=$opal_pmix_pmix4x_save_CFLAGS
CPPFLAGS=$opal_pmix_pmix4x_save_CPPFLAGS
LDFLAGS=$opal_pmix_pmix4x_save_LDFLAGS
LIBS=$opal_pmix_pmix4x_save_LIBS
# See if we are using the internal version. NOTE: we still did all the
# above configury so that all the proper GNU Autotools
# infrastructure is setup properly (e.g., w.r.t. SUBDIRS=pmix in
# this directory's Makefile.am, we still need the Autotools "make
# distclean" infrastructure to work properly).
AC_MSG_CHECKING([if v4.x component is to be used])
AS_IF([test "$opal_external_pmix_happy" = "yes"],
[AC_MSG_RESULT([no - disqualifying this component])
opal_pmix_pmix4x_happy=0],
[AC_MSG_RESULT([yes - using the internal v4.x library])
AS_IF([test "$opal_pmix_pmix4x_happy" = "0"],
[AC_MSG_WARN([INTERNAL PMIX FAILED TO CONFIGURE])
AC_MSG_ERROR([CANNOT CONTINUE])])
# Build flags for our Makefile.am
opal_pmix_pmix4x_LDFLAGS=
opal_pmix_pmix4x_LIBS="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/openpmix/src/libpmix.la"
opal_pmix_pmix4x_CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/openpmix/include -I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/openpmix -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix4x_basedir/openpmix/include -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix4x_basedir/openpmix"
opal_pmix_pmix4x_DEPENDENCIES="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/openpmix/src/libpmix.la"])
AC_SUBST([opal_pmix_pmix4x_LIBS])
AC_SUBST([opal_pmix_pmix4x_CPPFLAGS])
AC_SUBST([opal_pmix_pmix4x_LDFLAGS])
AC_SUBST([opal_pmix_pmix4x_DEPENDENCIES])
# Finally, add some flags to the wrapper compiler so that our
# headers can be found.
pmix_pmix4x_status_filename="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/openpmix/config.status"
pmix_pmix4x_WRAPPER_EXTRA_CPPFLAGS=`egrep PMIX_EMBEDDED_CPPFLAGS $pmix_pmix4x_status_filename | cut -d\" -f4`
pmix_pmix4x_WRAPPER_EXTRA_LDFLAGS=`egrep PMIX_EMBEDDED_LDFLAGS $pmix_pmix4x_status_filename | cut -d\" -f4`
pmix_pmix4x_WRAPPER_EXTRA_LIBS=`egrep PMIX_EMBEDDED_LIBS $pmix_pmix4x_status_filename | cut -d\" -f4`
AC_MSG_CHECKING([PMIx extra wrapper CPPFLAGS])
AC_MSG_RESULT([$pmix_pmix4x_WRAPPER_EXTRA_CPPFLAGS])
AC_MSG_CHECKING([PMIx extra wrapper LDFLAGS])
AC_MSG_RESULT([$pmix_pmix4x_WRAPPER_EXTRA_LDFLAGS])
AC_MSG_CHECKING([PMIx extra wrapper LIBS])
AC_MSG_RESULT([$pmix_pmix4x_WRAPPER_EXTRA_LIBS])
AS_IF([test $opal_pmix_pmix4x_happy -eq 1],
[$1],
[$2])
OPAL_VAR_SCOPE_POP
])dnl

@ -1 +0,0 @@
Subproject commit 415a4e34869ad0430ac7af7ff04a3520370aa59e

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

@ -1,25 +0,0 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2014-2019 Intel, Inc. All rights reserved.
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
* All rights reserved.
* Copyright (c) 2016-2019 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2017 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef MCA_PMIX_PMIX4X_H
#define MCA_PMIX_PMIX4X_H
#include "pmix_common.h"
#include "pmix_tool.h"
#include "pmix_server.h"
#include "pmix.h"
#endif /* MCA_PMIX_PMIX4X_H */

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

@ -1,57 +0,0 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2011-2017 Cisco Systems, Inc. All rights reserved
* Copyright (c) 2014-2019 Intel, Inc. All rights reserved.
* Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
*
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*
* These symbols are in a file by themselves to provide nice linker
* semantics. Since linkers generally pull in symbols by object
* files, keeping these symbols as the only symbols in this file
* prevents utility programs such as "ompi_info" from having to import
* entire components just to query their version and parameters.
*/
#include "opal_config.h"
#include "opal/constants.h"
#include "opal/mca/pmix/pmix-internal.h"
#include "pmix4x.h"
/*
* Public string showing the sysinfo ompi_linux component version number
*/
const char *opal_pmix_pmix4x_component_version_string =
"OPAL pmix4x pmix MCA component version " OPAL_VERSION;
/*
* Instantiate the public struct with all of our public information
* and pointers to our public functions in it
*/
const opal_pmix_component_t mca_pmix_pmix4x_component = {
/* First, the mca_component_t struct containing meta information
about the component itself */
.base_version = {
OPAL_PMIX_BASE_VERSION_2_0_0,
/* Component name and version */
.mca_component_name = "pmix4",
MCA_BASE_MAKE_VERSION(component, OPAL_MAJOR_VERSION, OPAL_MINOR_VERSION,
OPAL_RELEASE_VERSION),
},
.base_data = {
/* The component is checkpoint ready */
MCA_BASE_METADATA_PARAM_CHECKPOINT
}
};