MPICH (head of the main branch) installs the header and library file for the new MPI ABI into the same prefix as the standard MPICH header and library files. This makes it difficult to configure other libraries or applications to build with the new MPI ABI. It would be preferable to either have separate prefixes, or to install only either the MPI ABI or the MPICH ABI but not both together.
In MPICH's current setup, one needs to pass the flag -DMPI_ABI at compile time to select the new ABI (or using mpicc_abi instead of mpicc). These are new mechanisms, and neither autoconf nor cmake know about this. Many existing packages have (for better or worse) their own hand-rolled configure system (e.g. PETSc), and they also do not know about this. This makes it very easy to accidentally compile or link against the wrong ABI. Unix is know to be abysmally bad at detecting such inconsistencies.
Having separate install directories would eliminate this risk. For example, installing all the files for the MPI ABI into $prefix/mpiabi (include/mpi.h, lib/libmpi_abi.so, and bin/mpicc) would do so.
MPICH (head of the main branch) installs the header and library file for the new MPI ABI into the same prefix as the standard MPICH header and library files. This makes it difficult to configure other libraries or applications to build with the new MPI ABI. It would be preferable to either have separate prefixes, or to install only either the MPI ABI or the MPICH ABI but not both together.
In MPICH's current setup, one needs to pass the flag
-DMPI_ABIat compile time to select the new ABI (or usingmpicc_abiinstead ofmpicc). These are new mechanisms, and neither autoconf nor cmake know about this. Many existing packages have (for better or worse) their own hand-rolled configure system (e.g. PETSc), and they also do not know about this. This makes it very easy to accidentally compile or link against the wrong ABI. Unix is know to be abysmally bad at detecting such inconsistencies.Having separate install directories would eliminate this risk. For example, installing all the files for the MPI ABI into
$prefix/mpiabi(include/mpi.h,lib/libmpi_abi.so, andbin/mpicc) would do so.