Skip to content

Commit b85a5e6

Browse files
author
rhc54
committed
Merge pull request #1739 from rhc54/topic/pmix
Split the pmix external component into one for the 1.1.4 release, and…
2 parents d844442 + 12ecf97 commit b85a5e6

18 files changed

+3571
-176
lines changed

config/opal_check_pmi.m4

Lines changed: 2 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,6 @@ AC_DEFUN([OPAL_CHECK_PMI],[
227227

228228
AC_DEFUN([OPAL_CHECK_PMIX],[
229229
230-
opal_pmix_ext_CPPFLAGS=
231-
opal_pmix_ext_LDFLAGS=
232-
opal_pmix_ext_LIBS=
233-
234-
OPAL_VAR_SCOPE_PUSH([pmix_ext_install_dir opal_pmix_CPPFLAGS_save opal_pmix_LDFLAGS_save opal_pmix_LIBS_save opal_pmix_LD_LIBRARY_PATH_save])
235-
236230
AC_ARG_WITH([pmix],
237231
[AC_HELP_STRING([--with-pmix(=DIR)],
238232
[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 does not support --without-pmix.])])
@@ -246,7 +240,7 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
246240
AC_MSG_CHECKING([if user requested external PMIx support($with_pmix)])
247241
AS_IF([test -z "$with_pmix" || test "$with_pmix" = "yes" || test "$with_pmix" = "internal"],
248242
[AC_MSG_RESULT([no])
249-
opal_external_pmix_happy="no"],
243+
opal_external_pmix_happy=no],
250244
[AC_MSG_RESULT([yes])
251245
# check for external pmix lib */
252246
AS_IF([test "$with_pmix" = "external"],
@@ -255,80 +249,6 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
255249
# Make sure we have the headers and libs in the correct location
256250
OPAL_CHECK_WITHDIR([external-pmix], [$pmix_ext_install_dir/include], [pmix.h])
257251
OPAL_CHECK_WITHDIR([external-libpmix], [$pmix_ext_install_dir/lib], [libpmix.*])
258-
AC_MSG_CHECKING([if external component can be used])
259-
OPAL_CHECK_PACKAGE([opal_pmix_ext],
260-
[pmix.h],
261-
[pmix],
262-
[PMIx_Init],
263-
[],
264-
[$pmix_ext_install_dir],
265-
[$pmix_ext_install_dir/lib],
266-
[AC_MSG_RESULT([PMIx external support will be built])
267-
opal_external_pmix_happy=yes],
268-
[opal_external_pmix_happy="no"
269-
AC_MSG_RESULT([no])
270-
AC_MSG_WARN([External PMIx support was requested but failed])
271-
AC_MSG_WARN([as explained above.])
272-
AC_MSG_ERROR([Cannot continue])])
273-
# Check the version
274-
opal_external_pmix_version="unknown"
275-
opal_pmix_CPPFLAGS_save=$CPPFLAGS
276-
opal_pmix_LDFLAGS_save=$LDFLAGS
277-
opal_pmix_LIBS_save=$LIBS
278-
LD_LIBRARY_PATH_orig=$opal_pmix_LD_LIBRARY_PATH_save
279-
280-
CPPFLAGS=$opal_pmix_ext_CPPFLAGS
281-
LDFLAGS=$opal_pmix_ext_LDFLAGS
282-
LIBS=$opal_pmix_ext_LIBS
283-
LD_LIBRARY_PATH=$pmix_ext_install_dir/lib:$LD_LIBRARY_PATH
284-
export LD_LIBRARY_PATH
285-
286-
AC_MSG_CHECKING([PMIx library version])
287-
AC_RUN_IFELSE([
288-
AC_LANG_SOURCE([
289-
#include <stdio.h>
290-
#include <stdlib.h>
291-
#include <pmix.h>
292-
#include <pmix/pmix_common.h>
293-
294-
int main(int argc, char **argv)
295-
{
296-
const char * version = NULL;
297-
FILE *f = NULL;
252+
opal_external_pmix_happy=yes])
298253
299-
f = fopen("conftestval", "w");
300-
if( !f ) exit(1);
301-
version = PMIx_Get_version();
302-
fprintf(f, "%s", version);
303-
fclose(f);
304-
305-
return 0;
306-
}
307-
])], [
308-
eval opal_external_pmix_version=`cat conftestval`
309-
AC_MSG_RESULT([$opal_external_pmix_version])
310-
], [
311-
LD_LIBRARY_PATH=$opal_pmix_LD_LIBRARY_PATH_save
312-
export LD_LIBRARY_PATH
313-
opal_external_pmix_happy="no"
314-
AC_MSG_ERROR([External PMIx support requested but could not build/run a test program. Aborting])
315-
], [
316-
LD_LIBRARY_PATH=$opal_pmix_LD_LIBRARY_PATH_save
317-
export LD_LIBRARY_PATH
318-
opal_external_pmix_happy="no"
319-
AC_MSG_ERROR([External PMIx disabled for cross compile. Aborting])
320-
])
321-
CPPFLAGS=$opal_pmix_CPPFLAGS_save
322-
LDFLAGS=$opal_pmix_LDFLAGS_save
323-
LIBS=$opal_pmix_LIBS_save
324-
LD_LIBRARY_PATH=$opal_pmix_LD_LIBRARY_PATH_save
325-
326-
opal_external_pmix_happy="yes"
327-
])
328-
329-
AC_SUBST(opal_pmix_ext_CPPFLAGS)
330-
AC_SUBST(opal_pmix_ext_LDFLAGS)
331-
AC_SUBST(opal_pmix_ext_LIBS)
332-
333-
OPAL_VAR_SCOPE_POP
334254
])

opal/mca/pmix/external/Makefile.am renamed to opal/mca/pmix/ext114/Makefile.am

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
2+
# Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
33
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
44
# Copyright (c) 2014-2015 Mellanox Technologies, Inc.
55
# All rights reserved.
@@ -22,25 +22,25 @@ sources = \
2222
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
2323
# (for static builds).
2424

25-
if MCA_BUILD_opal_pmix_external_DSO
25+
if MCA_BUILD_opal_pmix_ext114_DSO
2626
component_noinst =
27-
component_install = mca_pmix_external.la
27+
component_install = mca_pmix_ext114.la
2828
else
29-
component_noinst = libmca_pmix_external.la
29+
component_noinst = libmca_pmix_ext114.la
3030
component_install =
3131
endif
3232

3333
mcacomponentdir = $(opallibdir)
3434
mcacomponent_LTLIBRARIES = $(component_install)
35-
mca_pmix_external_la_SOURCES = $(sources)
36-
mca_pmix_external_la_CFLAGS =
37-
mca_pmix_external_la_CPPFLAGS = $(opal_pmix_ext_CPPFLAGS)
38-
mca_pmix_external_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext_LDFLAGS)
39-
mca_pmix_external_la_LIBADD = $(opal_pmix_ext_LIBS)
35+
mca_pmix_ext114_la_SOURCES = $(sources)
36+
mca_pmix_ext114_la_CFLAGS =
37+
mca_pmix_ext114_la_CPPFLAGS = $(opal_pmix_ext114_CPPFLAGS)
38+
mca_pmix_ext114_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext114_LDFLAGS)
39+
mca_pmix_ext114_la_LIBADD = $(opal_pmix_ext114_LIBS)
4040

4141
noinst_LTLIBRARIES = $(component_noinst)
42-
libmca_pmix_external_la_SOURCES =$(sources)
43-
libmca_pmix_external_la_CFLAGS =
44-
libmca_pmix_external_la_CPPFLAGS = $(opal_pmix_ext_CPPFLAGS)
45-
libmca_pmix_external_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext_LDFLAGS)
46-
libmca_pmix_external_la_LIBADD = $(opal_pmix_ext_LIBS)
42+
libmca_pmix_ext114_la_SOURCES =$(sources)
43+
libmca_pmix_ext114_la_CFLAGS =
44+
libmca_pmix_ext114_la_CPPFLAGS = $(opal_pmix_ext114_CPPFLAGS)
45+
libmca_pmix_ext114_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext114_LDFLAGS)
46+
libmca_pmix_ext114_la_LIBADD = $(opal_pmix_ext114_LIBS)

opal/mca/pmix/ext114/configure.m4

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# -*- shell-script -*-
2+
#
3+
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
4+
# University Research and Technology
5+
# Corporation. All rights reserved.
6+
# Copyright (c) 2004-2005 The University of Tennessee and The University
7+
# of Tennessee Research Foundation. All rights
8+
# reserved.
9+
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10+
# University of Stuttgart. All rights reserved.
11+
# Copyright (c) 2004-2005 The Regents of the University of California.
12+
# All rights reserved.
13+
# Copyright (c) 2011-2013 Los Alamos National Security, LLC.
14+
# All rights reserved.
15+
# Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
16+
# Copyright (c) 2013-2016 Intel, Inc. All rights reserved.
17+
# Copyright (c) 2015 Research Organization for Information Science
18+
# and Technology (RIST). All rights reserved.
19+
# Copyright (c) 2014-2015 Mellanox Technologies, Inc.
20+
# All rights reserved.
21+
# $COPYRIGHT$
22+
#
23+
# Additional copyrights may follow
24+
#
25+
# $HEADER$
26+
#
27+
28+
# MCA_pmix_ext114_CONFIG([action-if-found], [action-if-not-found])
29+
# -----------------------------------------------------------
30+
AC_DEFUN([MCA_opal_pmix_ext114_CONFIG],[
31+
AC_CONFIG_FILES([opal/mca/pmix/ext114/Makefile])
32+
33+
AC_REQUIRE([OPAL_CHECK_PMIX])
34+
35+
AS_IF([test "$opal_external_pmix_happy" = "yes"],
36+
[AS_IF([test "$opal_event_external_support" != "yes"],
37+
[AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT])
38+
AC_MSG_WARN([LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED])
39+
AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT])
40+
AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])])
41+
AS_IF([test "$opal_hwloc_external_support" != "yes"],
42+
[AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL HWLOC])
43+
AC_MSG_WARN([LIBRARY THIS LIBRARY MUST POINT TO THE SAME ONE USED ])
44+
AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT])
45+
AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])])
46+
external_WRAPPER_EXTRA_CPPFLAGS='-I${includedir}/openmpi/$opal_pmix_external_basedir/pmix -I${includedir}/openmpi/$opal_pmix_external_basedir/pmix/include'
47+
# check for the 1.1.4 version by looking for a function
48+
# which was later removed
49+
AC_MSG_CHECKING([if external component is version 1.1.4])
50+
OPAL_CHECK_PACKAGE([opal_pmix_ext114],
51+
[pmix.h],
52+
[pmix],
53+
[PMIx_Register_errhandler],
54+
[-lpmix],
55+
[$pmix_ext_install_dir],
56+
[$pmix_ext_install_dir/lib],
57+
[AC_MSG_RESULT([yes])
58+
opal_pmix_external_114_happy=yes],
59+
[AC_MSG_RESULT([no])
60+
opal_pmix_external_114_happy=no])
61+
62+
AC_SUBST(opal_pmix_ext114_CPPFLAGS)
63+
AC_SUBST(opal_pmix_ext114_LDFLAGS)
64+
AC_SUBST(opal_pmix_ext114_LIBS)
65+
66+
AS_IF([test "$opal_pmix_external_114_happy" = "yes"],
67+
[$1
68+
# need to set the wrapper flags for static builds
69+
pmix_ext114_WRAPPER_EXTRA_LDFLAGS="$opal_pmix_ext114_LDFLAGS"
70+
pmix_ext114_WRAPPER_EXTRA_LIBS="$opal_pmix_ext114_LIBS"],
71+
[$2])],
72+
[$2])
73+
])dnl

opal/mca/pmix/external/pmix_ext.c renamed to opal/mca/pmix/ext114/pmix_ext.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
22
/*
3-
* Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
3+
* Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
44
* Copyright (c) 2014-2016 Research Organization for Information Science
55
* and Technology (RIST). All rights reserved.
66
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
@@ -48,7 +48,7 @@
4848
static const char *pmix1_get_nspace(opal_jobid_t jobid);
4949
static void pmix1_register_jobid(opal_jobid_t jobid, const char *nspace);
5050

51-
const opal_pmix_base_module_t opal_pmix_external_module = {
51+
const opal_pmix_base_module_t opal_pmix_ext114_module = {
5252
/* client APIs */
5353
.init = pmix1_client_init,
5454
.finalize = pmix1_client_finalize,
@@ -99,7 +99,7 @@ static const char *pmix1_get_nspace(opal_jobid_t jobid)
9999
{
100100
opal_pmix1_jobid_trkr_t *jptr;
101101

102-
OPAL_LIST_FOREACH(jptr, &mca_pmix_external_component.jobids, opal_pmix1_jobid_trkr_t) {
102+
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext114_component.jobids, opal_pmix1_jobid_trkr_t) {
103103
if (jptr->jobid == jobid) {
104104
return jptr->nspace;
105105
}
@@ -112,15 +112,15 @@ static void pmix1_register_jobid(opal_jobid_t jobid, const char *nspace)
112112
opal_pmix1_jobid_trkr_t *jptr;
113113

114114
/* if we don't already have it, add this to our jobid tracker */
115-
OPAL_LIST_FOREACH(jptr, &mca_pmix_external_component.jobids, opal_pmix1_jobid_trkr_t) {
115+
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext114_component.jobids, opal_pmix1_jobid_trkr_t) {
116116
if (jptr->jobid == jobid) {
117117
return;
118118
}
119119
}
120120
jptr = OBJ_NEW(opal_pmix1_jobid_trkr_t);
121121
(void)strncpy(jptr->nspace, nspace, PMIX_MAX_NSLEN);
122122
jptr->jobid = jobid;
123-
opal_list_append(&mca_pmix_external_component.jobids, &jptr->super);
123+
opal_list_append(&mca_pmix_ext114_component.jobids, &jptr->super);
124124
}
125125

126126
pmix_status_t pmix1_convert_opalrc(int rc)

opal/mca/pmix/external/pmix_ext.h renamed to opal/mca/pmix/ext114/pmix_ext.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
2+
* Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
33
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
44
* All rights reserved.
55
* Copyright (c) 2016 Research Organization for Information Science
@@ -11,8 +11,8 @@
1111
* $HEADER$
1212
*/
1313

14-
#ifndef MCA_PMIX_EXTERNAL_H
15-
#define MCA_PMIX_EXTERNAL_H
14+
#ifndef MCA_PMIX_EXT114_H
15+
#define MCA_PMIX_EXT114_H
1616

1717
#include "opal_config.h"
1818

@@ -38,11 +38,11 @@ typedef struct {
3838
opal_pmix_base_component_t super;
3939
opal_list_t jobids;
4040
bool native_launch;
41-
} mca_pmix_external_component_t;
41+
} mca_pmix_ext114_component_t;
4242

43-
OPAL_DECLSPEC extern mca_pmix_external_component_t mca_pmix_external_component;
43+
OPAL_DECLSPEC extern mca_pmix_ext114_component_t mca_pmix_ext114_component;
4444

45-
OPAL_DECLSPEC extern const opal_pmix_base_module_t opal_pmix_external_module;
45+
OPAL_DECLSPEC extern const opal_pmix_base_module_t opal_pmix_ext114_module;
4646

4747
/**** INTERNAL OBJECTS ****/
4848
typedef struct {

0 commit comments

Comments
 (0)