root/oshmem/tools/oshmem_info/param.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. oshmem_info_do_config

   1 /*
   2  * Copyright (c) 2013      Mellanox Technologies, Inc.
   3  *                         All rights reserved.
   4  *
   5  * Copyright (c) 2014-2018 Cisco Systems, Inc.  All rights reserved
   6  * Copyright (c) 2014-2017 Research Organization for Information Science
   7  *                         and Technology (RIST). All rights reserved.
   8  * Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
   9  * Copyright (c) 2018      Amazon.com, Inc. or its affiliates.  All Rights reserved.
  10  * $COPYRIGHT$
  11  *
  12  * Additional copyrights may follow
  13  *
  14  * $HEADER$
  15  */
  16 
  17 #include "oshmem_config.h"
  18 #include "mpi.h"
  19 #include "shmem.h"
  20 
  21 #include <string.h>
  22 #include <ctype.h>
  23 #ifdef HAVE_UNISTD_H
  24 #include <unistd.h>
  25 #endif
  26 #ifdef HAVE_SYS_PARAM_H
  27 #include <sys/param.h>
  28 #endif
  29 #ifdef HAVE_NETDB_H
  30 #include <netdb.h>
  31 #endif
  32 
  33 #include MCA_timer_IMPLEMENTATION_HEADER
  34 #include "opal/include/opal/version.h"
  35 #include "opal/class/opal_value_array.h"
  36 #include "opal/class/opal_pointer_array.h"
  37 #include "opal/util/printf.h"
  38 #include "opal/memoryhooks/memory.h"
  39 #include "opal/runtime/opal_info_support.h"
  40 
  41 #if OMPI_RTE_ORTE
  42 #include "orte/util/show_help.h"
  43 #endif
  44 
  45 #include "ompi/tools/ompi_info/ompi_info.h"
  46 #include "ompi/include/mpi_portable_platform.h"
  47 
  48 #include "oshmem/tools/oshmem_info/oshmem_info.h"
  49 
  50 
  51 const char *opal_info_deprecated_value = "deprecated-ompi-info-value";
  52 
  53 /*
  54  * do_config
  55  * Accepts:
  56  *  - want_all: boolean flag; TRUE -> display all options
  57  *                FALSE -> display selected options
  58  *
  59  * This function displays all the options with which the current
  60  * installation of ompi was configured. There are many options here
  61  * that are carried forward from OMPI-7 and are not mca parameters
  62  * in OMPI-10. I have to dig through the invalid options and replace
  63  * them with OMPI-10 options.
  64  */
  65 void oshmem_info_do_config(bool want_all)
  66 {
  67     char *fortran;
  68     char *heterogeneous;
  69     char *memprofile;
  70     char *memdebug;
  71     char *debug;
  72     char *mpi_interface_warning;
  73     char *cprofiling;
  74     char *cxxprofiling;
  75     char *fortran_profiling;
  76     char *cxxexceptions;
  77     char *threads;
  78     char *have_dl;
  79 #if OMPI_RTE_ORTE
  80     char *mpirun_prefix_by_default;
  81 #endif
  82     char *sparse_groups;
  83     char *wtime_support;
  84     char *symbol_visibility;
  85     char *ft_support;
  86     char *crdebug_support;
  87     char *topology_support;
  88 
  89     /* Do a little preprocessor trickery here to figure opal_info_out the
  90      * tri-state of MPI_PARAM_CHECK (which will be either 0, 1, or
  91      * ompi_mpi_param_check).  The preprocessor will only allow
  92      * comparisons against constants, so you'll get a warning if you
  93      * check MPI_PARAM_CHECK against 0 or 1, but its real value is the
  94      * char *ompi_mpi_param_check.  So define ompi_mpi_param_check to
  95      * be a constant, and then all the preprocessor comparisons work
  96      * opal_info_out ok.  Note that we chose the preprocessor
  97      * comparison ropal_info_oute because it is not sufficient to
  98      * simply set the variable ompi_mpi_param_check to a non-0/non-1
  99      * value.  This is because the compiler will generate a warning
 100      * that that C variable is unused when MPI_PARAM_CHECK is
 101      * hard-coded to 0 or 1.
 102      */
 103     char *paramcheck;
 104 #define ompi_mpi_param_check 999
 105 #if 0 == MPI_PARAM_CHECK
 106     paramcheck = "never";
 107 #elif 1 == MPI_PARAM_CHECK
 108     paramcheck = "always";
 109 #else
 110     paramcheck = "runtime";
 111 #endif
 112 
 113     heterogeneous = OPAL_ENABLE_HETEROGENEOUS_SUPPORT ? "yes" : "no";
 114     memprofile = OPAL_ENABLE_MEM_PROFILE ? "yes" : "no";
 115     memdebug = OPAL_ENABLE_MEM_DEBUG ? "yes" : "no";
 116     debug = OPAL_ENABLE_DEBUG ? "yes" : "no";
 117     mpi_interface_warning = OMPI_WANT_MPI_INTERFACE_WARNING ? "yes" : "no";
 118     cprofiling = "yes";
 119     cxxprofiling = OMPI_BUILD_CXX_BINDINGS ? "yes" : "no";
 120     cxxexceptions = (OMPI_BUILD_CXX_BINDINGS && OMPI_HAVE_CXX_EXCEPTION_SUPPORT) ? "yes" : "no";
 121     fortran_profiling = (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) ? "yes" : "no";
 122     have_dl = OPAL_HAVE_DL_SUPPORT ? "yes" : "no";
 123 #if OMPI_RTE_ORTE
 124     mpirun_prefix_by_default = ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT ? "yes" : "no";
 125 #endif
 126     sparse_groups = OMPI_GROUP_SPARSE ? "yes" : "no";
 127     wtime_support = OPAL_TIMER_USEC_NATIVE ? "native" : "gettimeofday";
 128     symbol_visibility = OPAL_C_HAVE_VISIBILITY ? "yes" : "no";
 129     topology_support = "yes";
 130 
 131     /* setup strings that require allocation */
 132     if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) {
 133         (void)opal_asprintf(&fortran, "yes (%s)",
 134                        (OPAL_HAVE_WEAK_SYMBOLS ? "all" :
 135                         (OMPI_FORTRAN_CAPS ? "caps" :
 136                          (OMPI_FORTRAN_PLAIN ? "lower case" :
 137                           (OMPI_FORTRAN_SINGLE_UNDERSCORE ? "single underscore" : "double underscore")))));
 138     } else {
 139         fortran = strdup("no");
 140     }
 141 
 142 #if OMPI_RTE_ORTE
 143     (void)opal_asprintf(&threads, "%s (MPI_THREAD_MULTIPLE: yes, OPAL support: yes, OMPI progress: %s, ORTE progress: yes, Event lib: yes)",
 144                    "posix", OPAL_ENABLE_PROGRESS_THREADS ? "yes" : "no");
 145 #else
 146     (void)opal_asprintf(&threads, "%s (MPI_THREAD_MULTIPLE: yes, OPAL support: yes, OMPI progress: %s, Event lib: yes)",
 147                    "posix", OPAL_ENABLE_PROGRESS_THREADS ? "yes" : "no");
 148 #endif
 149 
 150     (void)opal_asprintf(&ft_support, "%s (checkpoint thread: %s)",
 151                    OPAL_ENABLE_FT ? "yes" : "no", OPAL_ENABLE_FT_THREAD ? "yes" : "no");
 152 
 153     (void)opal_asprintf(&crdebug_support, "%s",
 154                    OPAL_ENABLE_CRDEBUG ? "yes" : "no");
 155 
 156     /* output values */
 157     opal_info_out("Configured by", "config:user", OPAL_CONFIGURE_USER);
 158     opal_info_out("Configured on", "config:timestamp", OPAL_CONFIGURE_DATE);
 159     opal_info_out("Configure host", "config:host", OPAL_CONFIGURE_HOST);
 160     opal_info_out("Configure command line", "config:cli", OPAL_CONFIGURE_CLI);
 161 
 162     opal_info_out("Built by", "build:user", OMPI_BUILD_USER);
 163     opal_info_out("Built on", "build:timestamp", OMPI_BUILD_DATE);
 164     opal_info_out("Built host", "build:host", OMPI_BUILD_HOST);
 165 
 166     opal_info_out("C bindings", "bindings:c", "yes");
 167     opal_info_out("Fort shmem.fh", "bindings:fortran", fortran);
 168     free(fortran);
 169 
 170     opal_info_out("Wrapper compiler rpath", "compiler:all:rpath",
 171                   WRAPPER_RPATH_SUPPORT);
 172     opal_info_out("C compiler", "compiler:c:command", OPAL_CC);
 173     opal_info_out("C compiler absolute", "compiler:c:absolute",
 174                   OPAL_CC_ABSOLUTE);
 175     opal_info_out("C compiler family name", "compiler:c:familyname",
 176                   _STRINGIFY(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME));
 177     opal_info_out("C compiler version", "compiler:c:version",
 178                   _STRINGIFY(OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR));
 179 
 180     if (want_all) {
 181         opal_info_out_int("C char size", "compiler:c:sizeof:char", sizeof(char));
 182         /* JMS: should be fixed in MPI-2.2 to differentiate between C
 183            _Bool and C++ bool.  For the moment, the code base assumes
 184            that they are the same.  Because of opal_config_bottom.h,
 185            we can sizeof(bool) here, so we might as well -- even
 186            though this technically isn't right.  This should be fixed
 187            when we update to MPI-2.2.  See below for note about C++
 188            bool alignment. */
 189         opal_info_out_int("C bool size", "compiler:c:sizeof:bool", sizeof(bool));
 190         opal_info_out_int("C short size", "compiler:c:sizeof:short", sizeof(short));
 191         opal_info_out_int("C int size", "compiler:c:sizeof:int", sizeof(int));
 192         opal_info_out_int("C long size", "compiler:c:sizeof:long", sizeof(long));
 193         opal_info_out_int("C float size", "compiler:c:sizeof:float", sizeof(float));
 194         opal_info_out_int("C double size", "compiler:c:sizeof:double", sizeof(double));
 195         opal_info_out_int("C pointer size", "compiler:c:sizeof:pointer", sizeof(void *));
 196         opal_info_out_int("C char align", "compiler:c:align:char", OPAL_ALIGNMENT_CHAR);
 197 #if OMPI_BUILD_CXX_BINDINGS
 198         /* JMS: See above for note about C++ bool size.  We don't have
 199            the bool alignment the way configure currently runs -- need
 200            to clean this up when we update for MPI-2.2. */
 201         opal_info_out_int("C bool align", "compiler:c:align:bool", OPAL_ALIGNMENT_CXX_BOOL);
 202 #else
 203         opal_info_out("C bool align", "compiler:c:align:bool", "skipped");
 204 #endif
 205         opal_info_out_int("C int align", "compiler:c:align:int", OPAL_ALIGNMENT_INT);
 206         opal_info_out_int("C float align", "compiler:c:align:float", OPAL_ALIGNMENT_FLOAT);
 207         opal_info_out_int("C double align", "compiler:c:align:double", OPAL_ALIGNMENT_DOUBLE);
 208     }
 209 
 210     opal_info_out("C++ compiler", "compiler:cxx:command", OMPI_CXX);
 211     opal_info_out("C++ compiler absolute", "compiler:cxx:absolute", OMPI_CXX_ABSOLUTE);
 212     opal_info_out("Fort compiler", "compiler:fortran:command", OMPI_FC);
 213     opal_info_out("Fort compiler abs", "compiler:fortran:absolute",
 214                   OMPI_FC_ABSOLUTE);
 215 
 216     if (want_all) {
 217 
 218         /* Will always have the size of Fortran integer */
 219 
 220         opal_info_out_int("Fort integer size", "compiler:fortran:sizeof:integer",
 221                       OMPI_SIZEOF_FORTRAN_INTEGER);
 222 
 223         opal_info_out_int("Fort logical size", "compiler:fortran:sizeof:logical",
 224                       OMPI_SIZEOF_FORTRAN_LOGICAL);
 225         opal_info_out_int("Fort logical value true", "compiler:fortran:value:true",
 226                       OMPI_FORTRAN_VALUE_TRUE);
 227 
 228 
 229         /* May or may not have the other Fortran sizes */
 230 
 231         if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) {
 232             opal_info_out("Fort have integer1", "compiler:fortran:have:integer1",
 233                           OMPI_HAVE_FORTRAN_INTEGER1 ? "yes" : "no");
 234             opal_info_out("Fort have integer2", "compiler:fortran:have:integer2",
 235                           OMPI_HAVE_FORTRAN_INTEGER2 ? "yes" : "no");
 236             opal_info_out("Fort have integer4", "compiler:fortran:have:integer4",
 237                           OMPI_HAVE_FORTRAN_INTEGER4 ? "yes" : "no");
 238             opal_info_out("Fort have integer8", "compiler:fortran:have:integer8",
 239                           OMPI_HAVE_FORTRAN_INTEGER8 ? "yes" : "no");
 240             opal_info_out("Fort have integer16", "compiler:fortran:have:integer16",
 241                           OMPI_HAVE_FORTRAN_INTEGER16 ? "yes" : "no");
 242 
 243             opal_info_out("Fort have real4", "compiler:fortran:have:real4",
 244                           OMPI_HAVE_FORTRAN_REAL4 ? "yes" : "no");
 245             opal_info_out("Fort have real8", "compiler:fortran:have:real8",
 246                           OMPI_HAVE_FORTRAN_REAL8 ? "yes" : "no");
 247             opal_info_out("Fort have real16", "compiler:fortran:have:real16",
 248                           OMPI_HAVE_FORTRAN_REAL16 && OMPI_REAL16_MATCHES_C ? "yes" : "no");
 249 
 250             opal_info_out("Fort have complex8", "compiler:fortran:have:complex8",
 251                           OMPI_HAVE_FORTRAN_COMPLEX8 ? "yes" : "no");
 252             opal_info_out("Fort have complex16", "compiler:fortran:have:complex16",
 253                           OMPI_HAVE_FORTRAN_COMPLEX16 ? "yes" : "no");
 254             opal_info_out("Fort have complex32", "compiler:fortran:have:complex32",
 255                           OMPI_HAVE_FORTRAN_COMPLEX32 && OMPI_REAL16_MATCHES_C ? "yes" : "no");
 256 
 257             opal_info_out_int("Fort integer1 size", "compiler:fortran:sizeof:integer1",
 258                           OMPI_HAVE_FORTRAN_INTEGER1 ? OMPI_SIZEOF_FORTRAN_INTEGER1 : -1);
 259             opal_info_out_int("Fort integer2 size", "compiler:fortran:sizeof:integer2",
 260                           OMPI_HAVE_FORTRAN_INTEGER2 ? OMPI_SIZEOF_FORTRAN_INTEGER2 : -1);
 261             opal_info_out_int("Fort integer4 size", "compiler:fortran:sizeof:integer4",
 262                           OMPI_HAVE_FORTRAN_INTEGER4 ? OMPI_SIZEOF_FORTRAN_INTEGER4 : -1);
 263             opal_info_out_int("Fort integer8 size", "compiler:fortran:sizeof:integer8",
 264                           OMPI_HAVE_FORTRAN_INTEGER8 ? OMPI_SIZEOF_FORTRAN_INTEGER8 : -1);
 265             opal_info_out_int("Fort integer16 size", "compiler:fortran:sizeof:integer16",
 266                           OMPI_HAVE_FORTRAN_INTEGER16 ? OMPI_SIZEOF_FORTRAN_INTEGER16 : -1);
 267 
 268             opal_info_out_int("Fort real size", "compiler:fortran:sizeof:real",
 269                           OMPI_SIZEOF_FORTRAN_REAL);
 270             opal_info_out_int("Fort real4 size", "compiler:fortran:sizeof:real4",
 271                           OMPI_HAVE_FORTRAN_REAL4 ? OMPI_SIZEOF_FORTRAN_REAL4 : -1);
 272             opal_info_out_int("Fort real8 size", "compiler:fortran:sizeof:real8",
 273                           OMPI_HAVE_FORTRAN_REAL8 ? OMPI_SIZEOF_FORTRAN_REAL8 : -1);
 274             opal_info_out_int("Fort real16 size", "compiler:fortran:sizeof:real17",
 275                           OMPI_HAVE_FORTRAN_REAL16 ? OMPI_SIZEOF_FORTRAN_REAL16 : -1);
 276 
 277             opal_info_out_int("Fort dbl prec size",
 278                           "compiler:fortran:sizeof:double_precision",
 279                           OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION);
 280 
 281             opal_info_out_int("Fort cplx size", "compiler:fortran:sizeof:complex",
 282                           OMPI_SIZEOF_FORTRAN_COMPLEX);
 283             opal_info_out_int("Fort dbl cplx size",
 284                           "compiler:fortran:sizeof:double_complex",
 285                           OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX ? OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX : -1);
 286             opal_info_out_int("Fort cplx8 size", "compiler:fortran:sizeof:complex8",
 287                           OMPI_HAVE_FORTRAN_COMPLEX8 ? OMPI_SIZEOF_FORTRAN_COMPLEX8 : -1);
 288             opal_info_out_int("Fort cplx16 size", "compiler:fortran:sizeof:complex16",
 289                           OMPI_HAVE_FORTRAN_COMPLEX16 ? OMPI_SIZEOF_FORTRAN_COMPLEX16 : -1);
 290             opal_info_out_int("Fort cplx32 size", "compiler:fortran:sizeof:complex32",
 291                           OMPI_HAVE_FORTRAN_COMPLEX32 ? OMPI_SIZEOF_FORTRAN_COMPLEX32 : -1);
 292 
 293             opal_info_out_int("Fort integer align", "compiler:fortran:align:integer",
 294                           OMPI_ALIGNMENT_FORTRAN_INTEGER);
 295             opal_info_out_int("Fort integer1 align", "compiler:fortran:align:integer1",
 296                           OMPI_HAVE_FORTRAN_INTEGER1 ? OMPI_ALIGNMENT_FORTRAN_INTEGER1 : -1);
 297             opal_info_out_int("Fort integer2 align", "compiler:fortran:align:integer2",
 298                           OMPI_HAVE_FORTRAN_INTEGER2 ? OMPI_ALIGNMENT_FORTRAN_INTEGER2 : -1);
 299             opal_info_out_int("Fort integer4 align", "compiler:fortran:align:integer4",
 300                           OMPI_HAVE_FORTRAN_INTEGER4 ? OMPI_ALIGNMENT_FORTRAN_INTEGER4 : -1);
 301             opal_info_out_int("Fort integer8 align", "compiler:fortran:align:integer8",
 302                           OMPI_HAVE_FORTRAN_INTEGER8 ? OMPI_ALIGNMENT_FORTRAN_INTEGER8 : -1);
 303             opal_info_out_int("Fort integer16 align", "compiler:fortran:align:integer16",
 304                           OMPI_HAVE_FORTRAN_INTEGER16 ? OMPI_ALIGNMENT_FORTRAN_INTEGER16 : -1);
 305 
 306             opal_info_out_int("Fort real align", "compiler:fortran:align:real",
 307                           OMPI_ALIGNMENT_FORTRAN_REAL);
 308             opal_info_out_int("Fort real4 align", "compiler:fortran:align:real4",
 309                           OMPI_HAVE_FORTRAN_REAL4 ? OMPI_ALIGNMENT_FORTRAN_REAL4 : -1);
 310             opal_info_out_int("Fort real8 align", "compiler:fortran:align:real8",
 311                           OMPI_HAVE_FORTRAN_REAL8 ? OMPI_ALIGNMENT_FORTRAN_REAL8 : -1);
 312             opal_info_out_int("Fort real16 align", "compiler:fortran:align:real16",
 313                           OMPI_HAVE_FORTRAN_REAL16 ? OMPI_ALIGNMENT_FORTRAN_REAL16 : -1);
 314 
 315             opal_info_out_int("Fort dbl prec align",
 316                           "compiler:fortran:align:double_precision",
 317                           OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION);
 318 
 319             opal_info_out_int("Fort cplx align", "compiler:fortran:align:complex",
 320                           OMPI_ALIGNMENT_FORTRAN_COMPLEX);
 321             opal_info_out_int("Fort dbl cplx align",
 322                           "compiler:fortran:align:double_complex",
 323                           OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX ? OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX : -1);
 324             opal_info_out_int("Fort cplx8 align", "compiler:fortran:align:complex8",
 325                           OMPI_HAVE_FORTRAN_COMPLEX8 ? OMPI_ALIGNMENT_FORTRAN_COMPLEX8 : -1);
 326             opal_info_out_int("Fort cplx16 align", "compiler:fortran:align:complex16",
 327                           OMPI_HAVE_FORTRAN_COMPLEX16 ? OMPI_ALIGNMENT_FORTRAN_COMPLEX16 : -1);
 328             opal_info_out_int("Fort cplx32 align", "compiler:fortran:align:complex32",
 329                           OMPI_HAVE_FORTRAN_COMPLEX32 ? OMPI_ALIGNMENT_FORTRAN_COMPLEX32 : -1);
 330 
 331         } else {
 332             opal_info_out("Fort real size", "compiler:fortran:sizeof:real", "skipped");
 333             opal_info_out("Fort dbl prec size",
 334                           "compiler:fortran:sizeof:double_precision", "skipped");
 335             opal_info_out("Fort cplx size", "compiler:fortran:sizeof:complex", "skipped");
 336             opal_info_out("Fort dbl cplx size",
 337                           "compiler:fortran:sizeof:double_complex", "skipped");
 338 
 339             opal_info_out("Fort integer align", "compiler:fortran:align:integer", "skipped");
 340             opal_info_out("Fort real align", "compiler:fortran:align:real", "skipped");
 341             opal_info_out("Fort dbl prec align",
 342                           "compiler:fortran:align:double_precision","skipped");
 343             opal_info_out("Fort cplx align", "compiler:fortran:align:complex", "skipped");
 344             opal_info_out("Fort dbl cplx align",
 345                           "compiler:fortran:align:double_complex", "skipped");
 346         }
 347     }
 348 
 349     opal_info_out("C profiling", "option:profiling:c", cprofiling);
 350     opal_info_out("C++ profiling", "option:profiling:cxx", cxxprofiling);
 351     opal_info_out("Fort shmem.fh profiling", "option:profiling:shmem.fh",
 352                   fortran_profiling);
 353 
 354     opal_info_out("C++ exceptions", "option:cxx_exceptions", cxxexceptions);
 355     opal_info_out("Thread support", "option:threads", threads);
 356     free(threads);
 357     opal_info_out("Sparse Groups", "option:sparse:groups", sparse_groups);
 358 
 359     if (want_all) {
 360 
 361         /* Don't display the build CPPFLAGS or CXXCPPFLAGS because they're
 362          * just -I$(top_srcdir)/include, etc.  Hence, they're a) boring,
 363          * and c) specific for ompi_info.
 364          */
 365 
 366         opal_info_out("Build CFLAGS", "option:build:cflags", OMPI_BUILD_CFLAGS);
 367         opal_info_out("Build CXXFLAGS", "option:build:cxxflags", OMPI_BUILD_CXXFLAGS);
 368         opal_info_out("Build FCFLAGS", "option:build:fcflags", OMPI_BUILD_FCFLAGS);
 369         opal_info_out("Build LDFLAGS", "option:build:ldflags", OMPI_BUILD_LDFLAGS);
 370         opal_info_out("Build LIBS", "option:build:libs", OMPI_BUILD_LIBS);
 371 
 372         opal_info_out("Wrapper extra CFLAGS", "option:wrapper:extra_cflags",
 373                       WRAPPER_EXTRA_CFLAGS);
 374         opal_info_out("Wrapper extra CXXFLAGS", "option:wrapper:extra_cxxflags",
 375                       WRAPPER_EXTRA_CXXFLAGS);
 376         opal_info_out("Wrapper extra FCFLAGS", "option:wrapper:extra_fcflags",
 377                       WRAPPER_EXTRA_FCFLAGS);
 378         opal_info_out("Wrapper extra LDFLAGS", "option:wrapper:extra_ldflags",
 379                       WRAPPER_EXTRA_LDFLAGS);
 380         opal_info_out("Wrapper extra LIBS", "option:wrapper:extra_libs",
 381                       WRAPPER_EXTRA_LIBS);
 382     }
 383 
 384     opal_info_out("Internal debug support", "option:debug", debug);
 385     opal_info_out("MPI interface warnings", "option:mpi-interface-warning", mpi_interface_warning);
 386     opal_info_out("MPI parameter check", "option:mpi-param-check", paramcheck);
 387     opal_info_out("Memory profiling support", "option:mem-profile", memprofile);
 388     opal_info_out("Memory debugging support", "option:mem-debug", memdebug);
 389     opal_info_out("dl support", "option:dlopen", have_dl);
 390     opal_info_out("Heterogeneous support", "options:heterogeneous", heterogeneous);
 391 #if OMPI_RTE_ORTE
 392     opal_info_out("mpirun default --prefix", "mpirun:prefix_by_default",
 393                   mpirun_prefix_by_default);
 394 #endif
 395     opal_info_out("MPI_WTIME support", "options:mpi-wtime", wtime_support);
 396     opal_info_out("Symbol vis. support", "options:visibility", symbol_visibility);
 397     opal_info_out("Host topology support", "options:host-topology",
 398                   topology_support);
 399 
 400     opal_info_out("MPI extensions", "options:mpi_ext", OMPI_MPIEXT_COMPONENTS);
 401 
 402     opal_info_out("FT Checkpoint support", "options:ft_support", ft_support);
 403     free(ft_support);
 404 
 405     opal_info_out("C/R Enabled Debugging", "options:crdebug_support", crdebug_support);
 406     free(crdebug_support);
 407 
 408     opal_info_out_int("MPI_MAX_PROCESSOR_NAME", "options:mpi-max-processor-name",
 409                   MPI_MAX_PROCESSOR_NAME);
 410     opal_info_out_int("MPI_MAX_ERROR_STRING",   "options:mpi-max-error-string",
 411                   MPI_MAX_ERROR_STRING);
 412     opal_info_out_int("MPI_MAX_OBJECT_NAME",    "options:mpi-max-object-name",
 413                   MPI_MAX_OBJECT_NAME);
 414     opal_info_out_int("MPI_MAX_INFO_KEY",       "options:mpi-max-info-key",
 415                   MPI_MAX_INFO_KEY);
 416     opal_info_out_int("MPI_MAX_INFO_VAL",       "options:mpi-max-info-val",
 417                   MPI_MAX_INFO_VAL);
 418     opal_info_out_int("MPI_MAX_PORT_NAME",      "options:mpi-max-port-name",
 419                   MPI_MAX_PORT_NAME);
 420     opal_info_out_int("MPI_MAX_DATAREP_STRING", "options:mpi-max-datarep-string",
 421                   MPI_MAX_DATAREP_STRING);
 422 
 423     /* This block displays all the options with which the current
 424      * installation of oshmem was configured. */
 425     {
 426         char *oshmem_fortran = OSHMEM_BUILD_FORTRAN_BINDINGS ? "yes" : "no";
 427         char *oshmem_compat = OSHMEM_SPEC_COMPAT ? "yes" : "no";
 428         char *oshmem_param_check = OSHMEM_PARAM_CHECK ? "yes" : "no";
 429         char *oshmem_profiling = OSHMEM_PROFILING ? "yes" : "no";
 430 
 431         opal_info_out("OSHMEM C bindings", "oshmem:bindings:c", "yes");
 432         opal_info_out("OSHMEM Fortran bindings", "oshmem:bindings:fort", oshmem_fortran);
 433         opal_info_out("OSHMEM SGI/Quadrics mode", "oshmem:options:spec_compat", oshmem_compat);
 434         opal_info_out("OSHMEM API param check", "oshmem:options:param_check", oshmem_param_check);
 435         opal_info_out("OSHMEM profiling support", "oshmem:options:profiling", oshmem_profiling);
 436     }
 437 }

/* [<][>][^][v][top][bottom][index][help] */