3
3
* All rights reserved.
4
4
*
5
5
* Copyright (c) 2014-2017 Cisco Systems, Inc. All rights reserved
6
- * Copyright (c) 2014-2016 Research Organization for Information Science
6
+ * Copyright (c) 2014-2017 Research Organization for Information Science
7
7
* and Technology (RIST). All rights reserved.
8
8
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
9
9
* $COPYRIGHT$
49
49
50
50
const char * opal_info_deprecated_value = "deprecated-ompi-info-value" ;
51
51
52
- static void append (char * dest , size_t max , int * first , char * src )
53
- {
54
- size_t len ;
55
-
56
- if (NULL == src ) {
57
- return ;
58
- }
59
-
60
- len = max - strlen (dest );
61
- if (!(* first )) {
62
- strncat (dest , ", " , len );
63
- len = max - strlen (dest );
64
- }
65
- strncat (dest , src , len );
66
- * first = 0 ;
67
- }
68
-
69
-
70
52
/*
71
53
* do_config
72
54
* Accepts:
@@ -81,33 +63,15 @@ static void append(char *dest, size_t max, int *first, char *src)
81
63
*/
82
64
void oshmem_info_do_config (bool want_all )
83
65
{
84
- char * cxx ;
85
- char * fortran_mpifh ;
86
- char * fortran_usempi ;
87
- char * fortran_usempif08 ;
88
- char * fortran_usempif08_compliance ;
89
- char * fortran_have_ignore_tkr ;
90
- char * fortran_have_f08_assumed_rank ;
91
- char * fortran_build_f08_subarrays ;
92
- char * fortran_have_optional_args ;
93
- char * fortran_have_bind_c ;
94
- char * fortran_have_private ;
95
- char * fortran_have_abstract ;
96
- char * fortran_have_asynchronous ;
97
- char * fortran_have_procedure ;
98
- char * fortran_have_c_funloc ;
99
- char * fortran_08_using_wrappers_for_choice_buffer_functions ;
100
- char * java ;
66
+ char * fortran ;
101
67
char * heterogeneous ;
102
68
char * memprofile ;
103
69
char * memdebug ;
104
70
char * debug ;
105
71
char * mpi_interface_warning ;
106
72
char * cprofiling ;
107
73
char * cxxprofiling ;
108
- char * fortran_mpifh_profiling ;
109
- char * fortran_usempi_profiling ;
110
- char * fortran_usempif08_profiling ;
74
+ char * fortran_profiling ;
111
75
char * cxxexceptions ;
112
76
char * threads ;
113
77
char * have_dl ;
@@ -146,94 +110,6 @@ void oshmem_info_do_config(bool want_all)
146
110
paramcheck = "runtime" ;
147
111
#endif
148
112
149
- /* The current mpi_f08 implementation does not support Fortran
150
- subarrays. However, someday it may/will. Hence, I'm leaving
151
- in all the logic that checks to see whether subarrays are
152
- supported, but I'm just hard-coding
153
- OMPI_BUILD_FORTRAN_F08_SUBARRAYS to 0 (we used to have a
154
- prototype mpi_f08 module that implemented a handful of
155
- descriptor-based interfaces and supported subarrays, but that
156
- has been removed). */
157
- const int OMPI_BUILD_FORTRAN_F08_SUBARRAYS = 0 ;
158
-
159
- /* setup the strings that don't require allocations*/
160
- cxx = OMPI_BUILD_CXX_BINDINGS ? "yes" : "no" ;
161
- if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPI_BINDINGS ) {
162
- if (OMPI_FORTRAN_HAVE_IGNORE_TKR ) {
163
- fortran_usempi = "yes (full: ignore TKR)" ;
164
- } else {
165
- fortran_usempi = "yes (limited: overloading)" ;
166
- }
167
- } else {
168
- fortran_usempi = "no" ;
169
- }
170
- fortran_usempif08 = OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS ? "yes" : "no" ;
171
- fortran_have_f08_assumed_rank = OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK ?
172
- "yes" : "no" ;
173
- fortran_build_f08_subarrays = OMPI_BUILD_FORTRAN_F08_SUBARRAYS ?
174
- "yes" : "no" ;
175
- fortran_have_optional_args = OMPI_FORTRAN_HAVE_OPTIONAL_ARGS ?
176
- "yes" : "no" ;
177
- fortran_have_bind_c = OMPI_FORTRAN_HAVE_BIND_C ? "yes" : "no" ;
178
- fortran_have_private = OMPI_FORTRAN_HAVE_PRIVATE ? "yes" : "no" ;
179
- fortran_have_abstract = OMPI_FORTRAN_HAVE_ABSTRACT ? "yes" : "no" ;
180
- fortran_have_asynchronous = OMPI_FORTRAN_HAVE_ASYNCHRONOUS ? "yes" : "no" ;
181
- fortran_have_procedure = OMPI_FORTRAN_HAVE_PROCEDURE ? "yes" : "no" ;
182
- fortran_have_c_funloc = OMPI_FORTRAN_HAVE_C_FUNLOC ? "yes" : "no" ;
183
- fortran_08_using_wrappers_for_choice_buffer_functions =
184
- OMPI_FORTRAN_NEED_WRAPPER_ROUTINES ? "yes" : "no" ;
185
-
186
- /* Build a string describing what level of compliance the mpi_f08
187
- module has */
188
- char f08_msg [1024 ];
189
- if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS ) {
190
-
191
- /* Do we have everything? */
192
- if (OMPI_BUILD_FORTRAN_F08_SUBARRAYS &&
193
- OMPI_FORTRAN_HAVE_PRIVATE &&
194
- OMPI_FORTRAN_HAVE_ABSTRACT &&
195
- OMPI_FORTRAN_HAVE_ASYNCHRONOUS &&
196
- OMPI_FORTRAN_HAVE_PROCEDURE &&
197
- OMPI_FORTRAN_HAVE_C_FUNLOC &&
198
- OMPI_FORTRAN_NEED_WRAPPER_ROUTINES ) {
199
- fortran_usempif08_compliance = "The mpi_f08 module is available, and is fully compliant. w00t!" ;
200
- } else {
201
- int first = 1 ;
202
- snprintf (f08_msg , sizeof (f08_msg ),
203
- "The mpi_f08 module is available, but due to limitations in the %s compiler and/or Open MPI, does not support the following: " ,
204
- OMPI_FC );
205
- if (!OMPI_BUILD_FORTRAN_F08_SUBARRAYS ) {
206
- append (f08_msg , sizeof (f08_msg ), & first , "array subsections" );
207
- }
208
- if (!OMPI_FORTRAN_HAVE_PRIVATE ) {
209
- append (f08_msg , sizeof (f08_msg ), & first ,
210
- "private MPI_Status members" );
211
- }
212
- if (!OMPI_FORTRAN_HAVE_ABSTRACT ) {
213
- append (f08_msg , sizeof (f08_msg ), & first ,
214
- "ABSTRACT INTERFACE function pointers" );
215
- }
216
- if (!OMPI_FORTRAN_HAVE_ASYNCHRONOUS ) {
217
- append (f08_msg , sizeof (f08_msg ), & first ,
218
- "Fortran '08-specified ASYNCHRONOUS behavior" );
219
- }
220
- if (!OMPI_FORTRAN_HAVE_PROCEDURE ) {
221
- append (f08_msg , sizeof (f08_msg ), & first , "PROCEDUREs" );
222
- }
223
- if (!OMPI_FORTRAN_HAVE_C_FUNLOC ) {
224
- append (f08_msg , sizeof (f08_msg ), & first , "C_FUNLOCs" );
225
- }
226
- if (OMPI_FORTRAN_NEED_WRAPPER_ROUTINES ) {
227
- append (f08_msg , sizeof (f08_msg ), & first ,
228
- "direct passthru (where possible) to underlying Open MPI's C functionality" );
229
- }
230
- fortran_usempif08_compliance = f08_msg ;
231
- }
232
- } else {
233
- fortran_usempif08_compliance = "The mpi_f08 module was not built" ;
234
- }
235
-
236
- java = OMPI_WANT_JAVA_BINDINGS ? "yes" : "no" ;
237
113
heterogeneous = OPAL_ENABLE_HETEROGENEOUS_SUPPORT ? "yes" : "no" ;
238
114
memprofile = OPAL_ENABLE_MEM_PROFILE ? "yes" : "no" ;
239
115
memdebug = OPAL_ENABLE_MEM_DEBUG ? "yes" : "no" ;
@@ -242,9 +118,7 @@ void oshmem_info_do_config(bool want_all)
242
118
cprofiling = "yes" ;
243
119
cxxprofiling = OMPI_BUILD_CXX_BINDINGS ? "yes" : "no" ;
244
120
cxxexceptions = (OMPI_BUILD_CXX_BINDINGS && OMPI_HAVE_CXX_EXCEPTION_SUPPORT ) ? "yes" : "no" ;
245
- fortran_mpifh_profiling = (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS ) ? "yes" : "no" ;
246
- fortran_usempi_profiling = (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPI_BINDINGS ) ? "yes" : "no" ;
247
- fortran_usempif08_profiling = (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS ) ? "yes" : "no" ;
121
+ fortran_profiling = (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS ) ? "yes" : "no" ;
248
122
have_dl = OPAL_HAVE_DL_SUPPORT ? "yes" : "no" ;
249
123
#if OMPI_RTE_ORTE
250
124
mpirun_prefix_by_default = ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT ? "yes" : "no" ;
@@ -257,24 +131,13 @@ void oshmem_info_do_config(bool want_all)
257
131
258
132
/* setup strings that require allocation */
259
133
if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS ) {
260
- (void )asprintf (& fortran_mpifh , "yes (%s)" ,
134
+ (void )asprintf (& fortran , "yes (%s)" ,
261
135
(OPAL_HAVE_WEAK_SYMBOLS ? "all" :
262
136
(OMPI_FORTRAN_CAPS ? "caps" :
263
137
(OMPI_FORTRAN_PLAIN ? "lower case" :
264
138
(OMPI_FORTRAN_SINGLE_UNDERSCORE ? "single underscore" : "double underscore" )))));
265
139
} else {
266
- fortran_mpifh = strdup ("no" );
267
- }
268
-
269
- if (OMPI_FORTRAN_HAVE_IGNORE_TKR ) {
270
- /* OMPI_FORTRAN_IGNORE_TKR_PREDECL is already in quotes; it
271
- didn't work consistently to put it in _STRINGIFY because
272
- sometimes the compiler would actually interpret the pragma
273
- in there before stringify-ing it. */
274
- (void )asprintf (& fortran_have_ignore_tkr , "yes (%s)" ,
275
- OMPI_FORTRAN_IGNORE_TKR_PREDECL );
276
- } else {
277
- fortran_have_ignore_tkr = strdup ("no" );
140
+ fortran = strdup ("no" );
278
141
}
279
142
280
143
#if OMPI_RTE_ORTE
@@ -302,20 +165,8 @@ void oshmem_info_do_config(bool want_all)
302
165
opal_info_out ("Built host" , "build:host" , OMPI_BUILD_HOST );
303
166
304
167
opal_info_out ("C bindings" , "bindings:c" , "yes" );
305
- opal_info_out ("C++ bindings" , "bindings:cxx" , cxx );
306
- opal_info_out ("Fort mpif.h" , "bindings:mpif.h" , fortran_mpifh );
307
- free (fortran_mpifh );
308
- opal_info_out ("Fort use mpi" , "bindings:use_mpi" ,
309
- fortran_usempi );
310
- opal_info_out ("Fort use mpi size" , "bindings:use_mpi:size" ,
311
- opal_info_deprecated_value );
312
- opal_info_out ("Fort use mpi_f08" , "bindings:use_mpi_f08" ,
313
- fortran_usempif08 );
314
- opal_info_out ("Fort mpi_f08 compliance" , "bindings:use_mpi_f08:compliance" ,
315
- fortran_usempif08_compliance );
316
- opal_info_out ("Fort mpi_f08 subarrays" , "bindings:use_mpi_f08:subarrays-supported" ,
317
- fortran_build_f08_subarrays );
318
- opal_info_out ("Java bindings" , "bindings:java" , java );
168
+ opal_info_out ("Fort shmem.fh" , "bindings:fortran" , fortran );
169
+ free (fortran );
319
170
320
171
opal_info_out ("Wrapper compiler rpath" , "compiler:all:rpath" ,
321
172
WRAPPER_RPATH_SUPPORT );
@@ -362,36 +213,6 @@ void oshmem_info_do_config(bool want_all)
362
213
opal_info_out ("Fort compiler" , "compiler:fortran:command" , OMPI_FC );
363
214
opal_info_out ("Fort compiler abs" , "compiler:fortran:absolute" ,
364
215
OMPI_FC_ABSOLUTE );
365
- opal_info_out ("Fort ignore TKR" , "compiler:fortran:ignore_tkr" ,
366
- fortran_have_ignore_tkr );
367
- free (fortran_have_ignore_tkr );
368
- opal_info_out ("Fort 08 assumed shape" ,
369
- "compiler:fortran:f08_assumed_rank" ,
370
- fortran_have_f08_assumed_rank );
371
- opal_info_out ("Fort optional args" ,
372
- "compiler:fortran:optional_arguments" ,
373
- fortran_have_optional_args );
374
- opal_info_out ("Fort BIND(C)" ,
375
- "compiler:fortran:bind_c" ,
376
- fortran_have_bind_c );
377
- opal_info_out ("Fort PRIVATE" ,
378
- "compiler:fortran:private" ,
379
- fortran_have_private );
380
- opal_info_out ("Fort ABSTRACT" ,
381
- "compiler:fortran:abstract" ,
382
- fortran_have_abstract );
383
- opal_info_out ("Fort ASYNCHRONOUS" ,
384
- "compiler:fortran:asynchronous" ,
385
- fortran_have_asynchronous );
386
- opal_info_out ("Fort PROCEDURE" ,
387
- "compiler:fortran:procedure" ,
388
- fortran_have_procedure );
389
- opal_info_out ("Fort C_FUNLOC" ,
390
- "compiler:fortran:c_funloc" ,
391
- fortran_have_c_funloc );
392
- opal_info_out ("Fort f08 using wrappers" ,
393
- "compiler:fortran:08_wrappers" ,
394
- fortran_08_using_wrappers_for_choice_buffer_functions );
395
216
396
217
if (want_all ) {
397
218
@@ -528,13 +349,8 @@ void oshmem_info_do_config(bool want_all)
528
349
529
350
opal_info_out ("C profiling" , "option:profiling:c" , cprofiling );
530
351
opal_info_out ("C++ profiling" , "option:profiling:cxx" , cxxprofiling );
531
- opal_info_out ("Fort mpif.h profiling" , "option:profiling:mpif.h" ,
532
- fortran_mpifh_profiling );
533
- opal_info_out ("Fort use mpi profiling" , "option:profiling:use_mpi" ,
534
- fortran_usempi_profiling );
535
- opal_info_out ("Fort use mpi_f08 prof" ,
536
- "option:profiling:use_mpi_f08" ,
537
- fortran_usempif08_profiling );
352
+ opal_info_out ("Fort shmem.fh profiling" , "option:profiling:shmem.fh" ,
353
+ fortran_profiling );
538
354
539
355
opal_info_out ("C++ exceptions" , "option:cxx_exceptions" , cxxexceptions );
540
356
opal_info_out ("Thread support" , "option:threads" , threads );
0 commit comments