1
1
openmpi/ompi/include
Geoffrey Paulsen 6df6a3f4bc mpi.h.in: Revamp MPI-1 removed function warnings
Refs https://github.com/open-mpi/ompi/issues/6278.

This commit is intended to be cherry-picked to v4.0.x and
the following commit will ammend to this functionality for
master's removal.

Changes the prototypes for MPI removed functions in the
following ways:

There are 4 cases:

 1) User wants MPI-1 compatibility (--enable-mpi1-compatibility)

    MPI_Address (and friends) are declared in mpi.h with
    deprecation notice

 2) User does not want MPI-1 compatibility, and has a C11-capable
    compiler

    Declare an MPI_Address (etc.) macro in mpi.h, which will
    cause a compile-time error using _Static_assert C11 feature

 3) User does not want MPI-1 compatibility, and does not have a
    C11-capable compiler, but the compiler supports error function
    attributes.

    Declare an MPI_Address (etc.) macro in mpi.h, which will
    cause a compile-time error using error function attribute.

 4) User does not want MPI-1 compatibility, and does not have a
    C11-capable compiler, or a compiler that supports error
    function attributes.

    Do not declare MPI_Address (etc.) in mpi.h at all.
    Unless the user is compiling with something like -Werror,
    this will allow the user's code to compile. We are
    choosing this because it seems like a losing battle to
    make some kind of compile time error that is friendly to
    the user (and doesn't make it look like mpi.h itself is broken).

    On v4.0.x, this will allow the user code to both compile
    (albeit with a warning) and link (because the MPI_Address
    will be in the MPI library because we are preserving ABI
    back to 3.0.x).

    On master/v5.0.x, this will allow the user code to compile,
    but it will fail to link (because the MPI_Address symbol will
    not be in the MPI library).

Signed-off-by: Geoffrey Paulsen <gpaulsen@us.ibm.com>
(cherry-picked from 3136a1706c)
2019-02-27 08:25:23 -08:00
..
ompi Topic/datatype (#3441) 2017-05-09 09:31:40 -04:00
Makefile.am Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
mpi.h.in mpi.h.in: Revamp MPI-1 removed function warnings 2019-02-27 08:25:23 -08:00
mpif-config.h.in ompi/fortran: remove proof-of-concept mpi_f08 module 2017-08-10 06:19:17 -07:00
mpif-externals.h mpif-externals.h: add missing MPI_AINT_ADD/MPI_AINT_DIFF 2017-04-22 08:57:54 -07:00
mpif-sentinels.h Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
mpif-values.pl configury: remove the --disable-mpi-io option 2017-09-20 14:39:09 +09:00
mpif.h.in configury: remove the --disable-mpi-io option 2017-09-20 14:39:09 +09:00
ompi_config.h Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00