Breaking change (?) between 1.7.1 and 1.7.2
Reported by Jacopo De Amicis IRL:
xPIC no longer compiles with SIONlib 1.7.2 (as installed on the DEEP SDV) due to changes introduced in r2177 (cherry-picked into RB-1.7 in r2235). Specifically, the compiler complains about sion_paropen_mpi
(and other symbols from sion_mpi.h
) not being defined. Before r2177, sion_mpi.h
was unconditionally included by sion.h
and the content of sion_mpi.h
was contained inside an #ifdef MPI_VERSION
and thus the mechanism for opting in to the SIONlib MPI API was by including mpi.h
before including sion.h
. On the other hand the mechanism for opting in to the SIONlib OpenMP API was by defining SION_OMP
when including sion.h
. r2177 unifies this by wrapping the contents of the API headers sion_mpi.h
, sion_omp.h
and sion_ompi.h
in #ifdef SION_MPI
... and removing the #ifdef MPI_VERSION
. This breaks the compilation of xPIC, because they rely on the old opt-in mechanism of including mpi.h
before including sion.h
and do not define SION_MPI
.
Should r2235 be reverted and another patch release be made? On the one hand, this is clearly a change that was introduced on our end causing breakage for a user code. On the other hand, a case can be made that the usage on the side of xPIC has always been erroneous by not defining SION_MPI
, as this has been mandated by sionconfig
for much longer and so could be considered the official way to use the SIONlib MPI API.