10
10
* University of Stuttgart. All rights reserved.
11
11
* Copyright (c) 2004-2006 The Regents of the University of California.
12
12
* All rights reserved.
13
- * Copyright (c) 2007-2012 Cisco Systems, Inc. All rights reserved.
13
+ * Copyright (c) 2007-2016 Cisco Systems, Inc. All rights reserved.
14
14
* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
15
15
* Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
16
16
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
@@ -106,7 +106,11 @@ ompi_predefined_datatype_t ompi_mpi_packed = OMPI_DATATYPE_INIT_PREDEFIN
106
106
* C++ / C99 datatypes
107
107
*/
108
108
ompi_predefined_datatype_t ompi_mpi_c_bool = OMPI_DATATYPE_INIT_PREDEFINED (BOOL , OMPI_DATATYPE_FLAG_DATA_C );
109
+ /* Per MPI-3.1 A.1.1 p674, only define the C++ datatypes if we're
110
+ actually building C++ support */
111
+ #if OMPI_BUILD_CXX_BINDINGS
109
112
ompi_predefined_datatype_t ompi_mpi_cxx_bool = OMPI_DATATYPE_INIT_PREDEFINED (BOOL , OMPI_DATATYPE_FLAG_DATA_CPP );
113
+ #endif
110
114
111
115
/*
112
116
* Complex datatypes for C (base types), C++, and fortran
@@ -120,10 +124,14 @@ ompi_predefined_datatype_t ompi_mpi_c_long_double_complex = OMPI_DATATYPE_INIT_P
120
124
ompi_predefined_datatype_t ompi_mpi_c_long_double_complex = OMPI_DATATYPE_INIT_UNAVAILABLE (C_LONG_DOUBLE_COMPLEX , OMPI_DATATYPE_FLAG_DATA_C | OMPI_DATATYPE_FLAG_DATA_COMPLEX );
121
125
#endif /* HAVE_LONG_DOUBLE */
122
126
127
+ /* Per MPI-3.1 A.1.1 p674, only define the C++ datatypes if we're
128
+ actually building C++ support */
129
+ #if OMPI_BUILD_CXX_BINDINGS
123
130
/* The C++ complex datatypes are the same as the C datatypes */
124
131
ompi_predefined_datatype_t ompi_mpi_cxx_cplex = OMPI_DATATYPE_INIT_PREDEFINED_BASIC_TYPE (C_FLOAT_COMPLEX , C_FLOAT_COMPLEX , OMPI_DATATYPE_FLAG_DATA_CPP | OMPI_DATATYPE_FLAG_DATA_COMPLEX );
125
132
ompi_predefined_datatype_t ompi_mpi_cxx_dblcplex = OMPI_DATATYPE_INIT_PREDEFINED_BASIC_TYPE (C_DOUBLE_COMPLEX , C_DOUBLE_COMPLEX , OMPI_DATATYPE_FLAG_DATA_CPP | OMPI_DATATYPE_FLAG_DATA_COMPLEX );
126
133
ompi_predefined_datatype_t ompi_mpi_cxx_ldblcplex = OMPI_DATATYPE_INIT_PREDEFINED_BASIC_TYPE (C_LONG_DOUBLE_COMPLEX , C_LONG_DOUBLE_COMPLEX , OMPI_DATATYPE_FLAG_DATA_CPP | OMPI_DATATYPE_FLAG_DATA_COMPLEX );
134
+ #endif
127
135
128
136
#if OMPI_HAVE_FORTRAN_COMPLEX
129
137
ompi_predefined_datatype_t ompi_mpi_cplex = OMPI_DATATYPE_INIT_PREDEFINED_BASIC_TYPE (OMPI_KIND_FORTRAN_COMPLEX , COMPLEX , OMPI_DATATYPE_FLAG_DATA_FORTRAN | OMPI_DATATYPE_FLAG_DATA_COMPLEX );
@@ -325,7 +333,9 @@ const ompi_datatype_t* ompi_datatype_basicDatatypes[OMPI_DATATYPE_MPI_MAX_PREDEF
325
333
[OMPI_DATATYPE_MPI_PACKED ] = & ompi_mpi_packed .dt ,
326
334
327
335
/* C++ / C99 datatypes */
336
+ #if OMPI_BUILD_CXX_BINDINGS
328
337
[OMPI_DATATYPE_MPI_BOOL ] = & ompi_mpi_cxx_bool .dt ,
338
+ #endif
329
339
330
340
/* Fortran datatypes */
331
341
[OMPI_DATATYPE_MPI_LOGICAL ] = & ompi_mpi_logical .dt ,
@@ -600,10 +610,12 @@ int32_t ompi_datatype_init( void )
600
610
601
611
/* C++ types */
602
612
613
+ #if OMPI_BUILD_CXX_BINDINGS
603
614
MOOG (cxx_bool , 54 );
604
615
MOOG (cxx_cplex , 55 );
605
616
MOOG (cxx_dblcplex , 56 );
606
617
MOOG (cxx_ldblcplex , 57 );
618
+ #endif
607
619
608
620
/* MPI 2.2 types */
609
621
MOOG (int8_t , 58 );
0 commit comments