1
1
openmpi/ompi/mpi
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
..
c mpi.h.in: Revamp MPI-1 removed function warnings 2019-02-27 08:25:23 -08:00
cxx mpi: make C++ bindings compile when MPI-1 compat is disabled 2018-05-31 09:44:19 -06:00
fortran fortran:use mpif08 fix for PGI linking 2019-02-22 11:47:40 -07:00
java java: Fix javadoc build failure with OpenJDK 11 2018-10-09 21:48:10 +09:00
man/man3 man: fix more typos in MPI_Win_attach man page 2019-02-20 13:26:48 +09:00
tool mpi/finalized: revamp INITIALIZED/FINALIZED 2018-06-01 13:36:29 -07:00
help-mpi-api.txt fix info-subscribe to use snprintf() and warn on long key 2018-06-01 18:31:32 -04:00
Makefile.am Fix script abstraction break: mv make_manpage.pl to config 2018-09-22 15:11:06 -05:00