root/opal/mca/pmix/pmix4x/pmix/src/include/pmix_config_bottom.h

/* [<][>][^][v][top][bottom][index][help] */
   1 /*
   2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2005 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2004-2010 High Performance Computing Center Stuttgart,
   9  *                         University of Stuttgart.  All rights reserved.
  10  * Copyright (c) 2004-2005 The Regents of the University of California.
  11  *                         All rights reserved.
  12  * Copyright (c) 2009      Sun Microsystems, Inc.  All rights reserved.
  13  * Copyright (c) 2009-2011 Cisco Systems, Inc.  All rights reserved.
  14  * Copyright (c) 2013      Mellanox Technologies, Inc.
  15  *                         All rights reserved.
  16  * Copyright (c) 2013-2018 Intel, Inc.  All rights reserved.
  17  * Copyright (c) 2016      IBM Corporation.  All rights reserved.
  18  * $COPYRIGHT$
  19  *
  20  * Additional copyrights may follow
  21  *
  22  * $HEADER$
  23  *
  24  */
  25 
  26 #ifndef PMIX_CONFIG_BOTTOM_H
  27 #define PMIX_CONFIG_BOTTOM_H
  28 
  29 /*
  30  * If we build a static library, Visual C define the _LIB symbol. In the
  31  * case of a shared library _USERDLL get defined.
  32  *
  33  */
  34 #ifndef PMIX_BUILDING
  35 #define PMIX_BUILDING 1
  36 #endif
  37 
  38 /*
  39  * Flex is trying to include the unistd.h file. As there is no configure
  40  * option or this, the flex generated files will try to include the file
  41  * even on platforms without unistd.h. Therefore, if we
  42  * know this file is not available, we can prevent flex from including it.
  43  */
  44 #ifndef HAVE_UNISTD_H
  45 #define YY_NO_UNISTD_H
  46 #endif
  47 
  48 /***********************************************************************
  49  *
  50  * code that should be in ompi_config_bottom.h regardless of build
  51  * status
  52  *
  53  **********************************************************************/
  54 
  55 /* Do we have posix or solaris thread lib */
  56 #define PMIX_HAVE_THREADS (PMIX_HAVE_POSIX_THREADS || PMIX_HAVE_SOLARIS_THREADS)
  57 
  58 /*
  59  * BEGIN_C_DECLS should be used at the beginning of your declarations,
  60  * so that C++ compilers don't mangle their names.  Use END_C_DECLS at
  61  * the end of C declarations.
  62  */
  63 #undef BEGIN_C_DECLS
  64 #undef END_C_DECLS
  65 #if defined(c_plusplus) || defined(__cplusplus)
  66 # define BEGIN_C_DECLS extern "C" {
  67 # define END_C_DECLS }
  68 #else
  69 #define BEGIN_C_DECLS          /* empty */
  70 #define END_C_DECLS            /* empty */
  71 #endif
  72 
  73 /* Defined to 1 on Linux */
  74 #undef PMIX_LINUX_SYS
  75 
  76 /* Defined to 1 if the CPU_SET macro works */
  77 #undef PMIX_HAVE_CPU_SET
  78 
  79 /* Defined to 1 if you have the `windows.h' header. */
  80 #undef PMIX_HAVE_WINDOWS_H
  81 #undef pmix_pid_t
  82 #undef pmix_thread_t
  83 
  84 /*
  85  * Note: this is public.  We can not assume anything from the compiler used
  86  * by the application and thus the PMIX_HAVE_* macros below are not
  87  * fetched from the autoconf result here. We only automatically use a few
  88  * well-known easy cases.
  89  */
  90 
  91 /* Some handy constants to make the logic below a little more readable */
  92 #if defined(__cplusplus) && \
  93     (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR >= 4))
  94 #define GXX_ABOVE_3_4 1
  95 #else
  96 #define GXX_ABOVE_3_4 0
  97 #endif
  98 
  99 #if !defined(__cplusplus) && \
 100     (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
 101 #define GCC_ABOVE_2_95 1
 102 #else
 103 #define GCC_ABOVE_2_95 0
 104 #endif
 105 
 106 #if !defined(__cplusplus) && \
 107     (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
 108 #define GCC_ABOVE_2_96 1
 109 #else
 110 #define GCC_ABOVE_2_96 0
 111 #endif
 112 
 113 #if !defined(__cplusplus) && \
 114     (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
 115 #define GCC_ABOVE_3_3 1
 116 #else
 117 #define GCC_ABOVE_3_3 0
 118 #endif
 119 
 120 
 121 /**
 122  * The attribute definition should be included before any potential
 123  * usage.
 124  */
 125 #if PMIX_HAVE_ATTRIBUTE_ALIGNED
 126 #    define __pmix_attribute_aligned__(a)    __attribute__((__aligned__(a)))
 127 #    define __pmix_attribute_aligned_max__   __attribute__((__aligned__))
 128 #else
 129 #    define __pmix_attribute_aligned__(a)
 130 #    define __pmix_attribute_aligned_max__
 131 #endif
 132 
 133 /* Note that if we're compiling C++, then just use the "inline"
 134    keyword, since it's part of C++ */
 135 #if defined(c_plusplus) || defined(__cplusplus)
 136 #  define __pmix_inline inline
 137 #elif defined(_MSC_VER) || defined(__HP_cc)
 138 #  define __pmix_inline __inline
 139 #else
 140 #  define __pmix_inline __inline__
 141 #endif
 142 
 143 #if PMIX_HAVE_ATTRIBUTE_ALWAYS_INLINE
 144 #    define __pmix_attribute_always_inline__ __attribute__((__always_inline__))
 145 #else
 146 #    define __pmix_attribute_always_inline__
 147 #endif
 148 
 149 #if PMIX_HAVE_ATTRIBUTE_COLD
 150 #    define __pmix_attribute_cold__          __attribute__((__cold__))
 151 #else
 152 #    define __pmix_attribute_cold__
 153 #endif
 154 
 155 #ifdef PMIX_HAVE_ATTRIBUTE_CONST
 156 #define __PMIX_HAVE_ATTRIBUTE_CONST PMIX_HAVE_ATTRIBUTE_CONST
 157 #elif defined(__GNUC__)
 158 # define __PMIX_HAVE_ATTRIBUTE_CONST (GXX_ABOVE_3_4 || GCC_ABOVE_2_95)
 159 #else
 160 # define __PMIX_HAVE_ATTRIBUTE_CONST 0
 161 #endif
 162 #if __PMIX_HAVE_ATTRIBUTE_CONST
 163 # define __pmix_attribute_const __attribute__((__const__))
 164 #else
 165 # define __pmix_attribute_const
 166 #endif
 167 
 168 #if PMIX_HAVE_ATTRIBUTE_CONST
 169 #    define __pmix_attribute_const__         __attribute__((__const__))
 170 #else
 171 #    define __pmix_attribute_const__
 172 #endif
 173 
 174 #ifdef PMIX_HAVE_ATTRIBUTE_DEPRECATED
 175 #define __PMIX_HAVE_ATTRIBUTE_DEPRECATED PMIX_HAVE_ATTRIBUTE_DEPRECATED
 176 #elif defined(__GNUC__)
 177 # define __PMIX_HAVE_ATTRIBUTE_DEPRECATED (GXX_ABOVE_3_4 || GCC_ABOVE_3_3)
 178 #else
 179 # define __PMIX_HAVE_ATTRIBUTE_DEPRECATED 0
 180 #endif
 181 #if __PMIX_HAVE_ATTRIBUTE_DEPRECATED
 182 # define __pmix_attribute_deprecated __attribute__((__deprecated__))
 183 #else
 184 # define __pmix_attribute_deprecated
 185 #endif
 186 
 187 #if PMIX_HAVE_ATTRIBUTE_DEPRECATED
 188 #    define __pmix_attribute_deprecated__    __attribute__((__deprecated__))
 189 #else
 190 #    define __pmix_attribute_deprecated__
 191 #endif
 192 
 193 #if PMIX_HAVE_ATTRIBUTE_FORMAT
 194 #    define __pmix_attribute_format__(a,b,c) __attribute__((__format__(a, b, c)))
 195 #else
 196 #    define __pmix_attribute_format__(a,b,c)
 197 #endif
 198 
 199 /* Use this __atribute__ on function-ptr declarations, only */
 200 #if PMIX_HAVE_ATTRIBUTE_FORMAT_FUNCPTR
 201 #    define __pmix_attribute_format_funcptr__(a,b,c) __attribute__((__format__(a, b, c)))
 202 #else
 203 #    define __pmix_attribute_format_funcptr__(a,b,c)
 204 #endif
 205 
 206 #if PMIX_HAVE_ATTRIBUTE_HOT
 207 #    define __pmix_attribute_hot__           __attribute__((__hot__))
 208 #else
 209 #    define __pmix_attribute_hot__
 210 #endif
 211 
 212 #ifdef PMIX_HAVE_ATTRIBUTE_MALLOC
 213 #define __PMIX_HAVE_ATTRIBUTE_MALLOC PMIX_HAVE_ATTRIBUTE_MALLOC
 214 #elif defined(__GNUC__)
 215 # define __PMIX_HAVE_ATTRIBUTE_MALLOC (GXX_ABOVE_3_4 || GCC_ABOVE_2_96)
 216 #else
 217 # define __PMIX_HAVE_ATTRIBUTE_MALLOC 0
 218 #endif
 219 #if __PMIX_HAVE_ATTRIBUTE_MALLOC
 220 # define __pmix_attribute_malloc __attribute__((__malloc__))
 221 #else
 222 # define __pmix_attribute_malloc
 223 #endif
 224 
 225 #if PMIX_HAVE_ATTRIBUTE_MALLOC
 226 #    define __pmix_attribute_malloc__        __attribute__((__malloc__))
 227 #else
 228 #    define __pmix_attribute_malloc__
 229 #endif
 230 
 231 #ifdef PMIX_HAVE_ATTRIBUTE_MAY_ALIAS
 232 #define __PMIX_HAVE_ATTRIBUTE_MAY_ALIAS PMIX_HAVE_ATTRIBUTE_MAY_ALIAS
 233 #elif defined(__GNUC__)
 234 # define __PMIX_HAVE_ATTRIBUTE_MAY_ALIAS (GXX_ABOVE_3_4 || GCC_ABOVE_3_3)
 235 #else
 236 # define __PMIX_HAVE_ATTRIBUTE_MAY_ALIAS 0
 237 #endif
 238 #if __PMIX_HAVE_ATTRIBUTE_MAY_ALIAS
 239 # define __pmix_attribute_may_alias __attribute__((__may_alias__))
 240 #else
 241 # define __pmix_attribute_may_alias
 242 #endif
 243 
 244 #if PMIX_HAVE_ATTRIBUTE_MAY_ALIAS
 245 #    define __pmix_attribute_may_alias__     __attribute__((__may_alias__))
 246 #else
 247 #    define __pmix_attribute_may_alias__
 248 #endif
 249 
 250 #if PMIX_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION
 251 #    define __pmix_attribute_no_instrument_function__  __attribute__((__no_instrument_function__))
 252 #else
 253 #    define __pmix_attribute_no_instrument_function__
 254 #endif
 255 
 256 #if PMIX_HAVE_ATTRIBUTE_NONNULL
 257 #    define __pmix_attribute_nonnull__(a)    __attribute__((__nonnull__(a)))
 258 #    define __pmix_attribute_nonnull_all__   __attribute__((__nonnull__))
 259 #else
 260 #    define __pmix_attribute_nonnull__(a)
 261 #    define __pmix_attribute_nonnull_all__
 262 #endif
 263 
 264 #if PMIX_HAVE_ATTRIBUTE_NORETURN
 265 #    define __pmix_attribute_noreturn__      __attribute__((__noreturn__))
 266 #else
 267 #    define __pmix_attribute_noreturn__
 268 #endif
 269 
 270 /* Use this __atribute__ on function-ptr declarations, only */
 271 #if PMIX_HAVE_ATTRIBUTE_NORETURN_FUNCPTR
 272 #    define __pmix_attribute_noreturn_funcptr__  __attribute__((__noreturn__))
 273 #else
 274 #    define __pmix_attribute_noreturn_funcptr__
 275 #endif
 276 
 277 #if PMIX_HAVE_ATTRIBUTE_PACKED
 278 #    define __pmix_attribute_packed__        __attribute__((__packed__))
 279 #else
 280 #    define __pmix_attribute_packed__
 281 #endif
 282 
 283 #ifdef PMIX_HAVE_ATTRIBUTE_PURE
 284 #define __PMIX_HAVE_ATTRIBUTE_PURE PMIX_HAVE_ATTRIBUTE_PURE
 285 #elif defined(__GNUC__)
 286 # define __PMIX_HAVE_ATTRIBUTE_PURE (GXX_ABOVE_3_4 || GCC_ABOVE_2_96)
 287 #else
 288 # define __PMIX_HAVE_ATTRIBUTE_PURE 0
 289 #endif
 290 #if __PMIX_HAVE_ATTRIBUTE_PURE
 291 # define __pmix_attribute_pure __attribute__((__pure__))
 292 #else
 293 # define __pmix_attribute_pure
 294 #endif
 295 
 296 #if PMIX_HAVE_ATTRIBUTE_PURE
 297 #    define __pmix_attribute_pure__          __attribute__((__pure__))
 298 #else
 299 #    define __pmix_attribute_pure__
 300 #endif
 301 
 302 #if PMIX_HAVE_ATTRIBUTE_SENTINEL
 303 #    define __pmix_attribute_sentinel__      __attribute__((__sentinel__))
 304 #else
 305 #    define __pmix_attribute_sentinel__
 306 #endif
 307 
 308 /* Maybe before gcc 2.95 too */
 309 #ifdef PMIX_HAVE_ATTRIBUTE_UNUSED
 310 #define __PMIX_HAVE_ATTRIBUTE_UNUSED PMIX_HAVE_ATTRIBUTE_UNUSED
 311 #elif defined(__GNUC__)
 312 # define __PMIX_HAVE_ATTRIBUTE_UNUSED (GXX_ABOVE_3_4 || GCC_ABOVE_2_95)
 313 #else
 314 # define __PMIX_HAVE_ATTRIBUTE_UNUSED 0
 315 #endif
 316 #if __PMIX_HAVE_ATTRIBUTE_UNUSED
 317 # define __pmix_attribute_unused __attribute__((__unused__))
 318 #else
 319 # define __pmix_attribute_unused
 320 #endif
 321 
 322 #if PMIX_HAVE_ATTRIBUTE_UNUSED
 323 #    define __pmix_attribute_unused__        __attribute__((__unused__))
 324 #else
 325 #    define __pmix_attribute_unused__
 326 #endif
 327 
 328 #if PMIX_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT
 329 #    define __pmix_attribute_warn_unused_result__ __attribute__((__warn_unused_result__))
 330 #else
 331 #    define __pmix_attribute_warn_unused_result__
 332 #endif
 333 
 334 #if PMIX_HAVE_ATTRIBUTE_DESTRUCTOR
 335 #    define __pmix_attribute_destructor__    __attribute__((__destructor__))
 336 #else
 337 #    define __pmix_attribute_destructor__
 338 #endif
 339 
 340 #if PMIX_HAVE_ATTRIBUTE_OPTNONE
 341 #    define __pmix_attribute_optnone__    __attribute__((__optnone__))
 342 #else
 343 #    define __pmix_attribute_optnone__
 344 #endif
 345 
 346 #if PMIX_HAVE_ATTRIBUTE_EXTENSION
 347 #    define __pmix_attribute_extension__    __extension__
 348 #else
 349 #    define __pmix_attribute_extension__
 350 #endif
 351 
 352 /*
 353  * Do we have <stdint.h>?
 354  */
 355 #ifdef HAVE_STDINT_H
 356 #if !defined(__STDC_LIMIT_MACROS) && (defined(c_plusplus) || defined (__cplusplus))
 357 /* When using a C++ compiler, the max / min value #defines for std
 358    types are only included if __STDC_LIMIT_MACROS is set before
 359    including stdint.h */
 360 #define __STDC_LIMIT_MACROS
 361 #endif
 362 #include <src/include/pmix_config.h>
 363 #include <stdint.h>
 364 #else
 365 #include <src/include/pmix_stdint.h>
 366 #endif
 367 
 368 /***********************************************************************
 369  *
 370  * Code that is only for when building PMIx or utilities that are
 371  * using the internals of PMIx.  It should not be included when
 372  * building MPI applications
 373  *
 374  **********************************************************************/
 375 #if PMIX_BUILDING
 376 
 377 #ifndef HAVE_PTRDIFF_T
 378 typedef PMIX_PTRDIFF_TYPE ptrdiff_t;
 379 #endif
 380 
 381 /*
 382  * Maximum size of a filename path.
 383  */
 384 #include <limits.h>
 385 #ifdef HAVE_SYS_PARAM_H
 386 #include <sys/param.h>
 387 #endif
 388 #if defined(PATH_MAX)
 389 #define PMIX_PATH_MAX   (PATH_MAX + 1)
 390 #elif defined(_POSIX_PATH_MAX)
 391 #define PMIX_PATH_MAX   (_POSIX_PATH_MAX + 1)
 392 #else
 393 #define PMIX_PATH_MAX   256
 394 #endif
 395 
 396 #if defined(MAXHOSTNAMELEN)
 397 #define PMIX_MAXHOSTNAMELEN (MAXHOSTNAMELEN + 1)
 398 #elif defined(HOST_NAME_MAX)
 399 #define PMIX_MAXHOSTNAMELEN (HOST_NAME_MAX + 1)
 400 #else
 401 /* SUSv2 guarantees that "Host names are limited to 255 bytes". */
 402 #define PMIX_MAXHOSTNAMELEN (255 + 1)
 403 #endif
 404 
 405 /*
 406  * Set the compile-time path-separator on this system and variable separator
 407  */
 408 #define PMIX_PATH_SEP "/"
 409 #define PMIX_ENV_SEP  ':'
 410 
 411 /*
 412  * printf functions for portability (only when building PMIx)
 413  */
 414 #if !defined(HAVE_VASPRINTF) || !defined(HAVE_VSNPRINTF)
 415 #include <stdarg.h>
 416 #include <stdlib.h>
 417 #endif
 418 
 419 #if !defined(HAVE_ASPRINTF) || !defined(HAVE_SNPRINTF) || !defined(HAVE_VASPRINTF) || !defined(HAVE_VSNPRINTF)
 420 #include "util/printf.h"
 421 #endif
 422 
 423 #ifndef HAVE_ASPRINTF
 424 # define asprintf pmix_asprintf
 425 #endif
 426 
 427 #ifndef HAVE_SNPRINTF
 428 # define snprintf pmix_snprintf
 429 #endif
 430 
 431 #ifndef HAVE_VASPRINTF
 432 # define vasprintf pmix_vasprintf
 433 #endif
 434 
 435 #ifndef HAVE_VSNPRINTF
 436 # define vsnprintf pmix_vsnprintf
 437 #endif
 438 
 439 /*
 440  * Some platforms (Solaris) have a broken qsort implementation.  Work
 441  * around by using our own.
 442  */
 443 #if PMIX_HAVE_BROKEN_QSORT
 444 #ifdef qsort
 445 #undef qsort
 446 #endif
 447 
 448 #include "util/qsort.h"
 449 #define qsort pmix_qsort
 450 #endif
 451 
 452 /*
 453  * Define __func__-preprocessor directive if the compiler does not
 454  * already define it.  Define it to __FILE__ so that we at least have
 455  * a clue where the developer is trying to indicate where the error is
 456  * coming from (assuming that __func__ is typically used for
 457  * printf-style debugging).
 458  */
 459 #if defined(HAVE_DECL___FUNC__) && !HAVE_DECL___FUNC__
 460 #define __func__ __FILE__
 461 #endif
 462 
 463 #define IOVBASE_TYPE  void
 464 
 465 #include <stdbool.h>
 466 /**
 467  * If we generate our own bool type, we need a special way to cast the result
 468  * in such a way to keep the compilers silent.
 469  */
 470 #  define PMIX_INT_TO_BOOL(VALUE)  (bool)(VALUE)
 471 
 472 #if !defined(HAVE_STRUCT_SOCKADDR_STORAGE) && defined(HAVE_STRUCT_SOCKADDR_IN)
 473 #define sockaddr_storage sockaddr
 474 #define ss_family sa_family
 475 #endif
 476 
 477 /* Compatibility structure so that we don't have to have as many
 478    #if checks in the code base */
 479 #if !defined(HAVE_STRUCT_SOCKADDR_IN6) && defined(HAVE_STRUCT_SOCKADDR_IN)
 480 #define sockaddr_in6 sockaddr_in
 481 #define sin6_len sin_len
 482 #define sin6_family sin_family
 483 #define sin6_port sin_port
 484 #define sin6_addr sin_addr
 485 #endif
 486 
 487 #if !HAVE_DECL_AF_UNSPEC
 488 #define AF_UNSPEC 0
 489 #endif
 490 #if !HAVE_DECL_PF_UNSPEC
 491 #define PF_UNSPEC 0
 492 #endif
 493 #if !HAVE_DECL_AF_INET6
 494 #define AF_INET6 AF_UNSPEC
 495 #endif
 496 #if !HAVE_DECL_PF_INET6
 497 #define PF_INET6 PF_UNSPEC
 498 #endif
 499 
 500 #if defined(__APPLE__) && defined(HAVE_INTTYPES_H)
 501 /* Prior to Mac OS X 10.3, the length modifier "ll" wasn't
 502    supported, but "q" was for long long.  This isn't ANSI
 503    C and causes a warning when using PRI?64 macros.  We
 504    don't support versions prior to OS X 10.3, so we dont'
 505    need such backward compatibility.  Instead, redefine
 506    the macros to be "ll", which is ANSI C and doesn't
 507    cause a compiler warning. */
 508 #include <inttypes.h>
 509 #if defined(__PRI_64_LENGTH_MODIFIER__)
 510 #undef __PRI_64_LENGTH_MODIFIER__
 511 #define __PRI_64_LENGTH_MODIFIER__ "ll"
 512 #endif
 513 #if defined(__SCN_64_LENGTH_MODIFIER__)
 514 #undef __SCN_64_LENGTH_MODIFIER__
 515 #define __SCN_64_LENGTH_MODIFIER__ "ll"
 516 #endif
 517 #endif
 518 
 519 #ifdef MCS_VXWORKS
 520 /* VXWorks puts some common functions in oddly named headers.  Rather
 521    than update all the places the functions are used, which would be a
 522    maintenance disatster, just update here... */
 523 #ifdef HAVE_IOLIB_H
 524 /* pipe(), ioctl() */
 525 #include <ioLib.h>
 526 #endif
 527 #ifdef HAVE_SOCKLIB_H
 528 /* socket() */
 529 #include <sockLib.h>
 530 #endif
 531 #ifdef HAVE_HOSTLIB_H
 532 /* gethostname() */
 533 #include <hostLib.h>
 534 #endif
 535 #endif
 536 
 537 /* If we're in C++, then just undefine restrict and then define it to
 538    nothing.  "restrict" is not part of the C++ language, and we don't
 539    have a corresponding AC_CXX_RESTRICT to figure out what the C++
 540    compiler supports. */
 541 #if defined(c_plusplus) || defined(__cplusplus)
 542 #undef restrict
 543 #define restrict
 544 #endif
 545 
 546 #if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
 547 # define __pmix_restrict __restrict
 548 #else
 549 # if __STDC_VERSION__ >= 199901L
 550 #  define __pmix_restrict restrict
 551 # else
 552 #  define __pmix_restrict
 553 # endif
 554 #endif
 555 
 556 #else
 557 
 558 /* For a similar reason to what is listed in pmix_config_top.h, we
 559    want to protect others from the autoconf/automake-generated
 560    PACKAGE_<foo> macros in pmix_config.h.  We can't put these undef's
 561    directly in pmix_config.h because they'll be turned into #defines'
 562    via autoconf.
 563 
 564    So put them here in case any one else includes PMIX's
 565    config.h files. */
 566 
 567 #undef PACKAGE_BUGREPORT
 568 #undef PACKAGE_NAME
 569 #undef PACKAGE_STRING
 570 #undef PACKAGE_TARNAME
 571 #undef PACKAGE_VERSION
 572 #undef PACKAGE_URL
 573 #undef HAVE_CONFIG_H
 574 
 575 #endif /* PMIX_BUILDING */
 576 
 577 #endif /* PMIX_CONFIG_BOTTOM_H */

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