Open MPI (head of the main branch) installs the header file for the new MPI ABI into $prefix/include/standard_abi, while installing OpenMPI ABI header file into $prefix/include. Since both header files are called mpi.h this is confusing and dangerous; if $prefix/include accidentally ends up on the include path then one might accidentally build against the wrong ABI.
There are also two different compiler drivers, mpicc and mpicc_abi. 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 again 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.
Another option would be to install only either the OpenMPI or the MPI ABI files, not both.
Open MPI (head of the main branch) installs the header file for the new MPI ABI into
$prefix/include/standard_abi, while installing OpenMPI ABI header file into$prefix/include. Since both header files are calledmpi.hthis is confusing and dangerous; if$prefix/includeaccidentally ends up on the include path then one might accidentally build against the wrong ABI.There are also two different compiler drivers,
mpiccandmpicc_abi. 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 again 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.Another option would be to install only either the OpenMPI or the MPI ABI files, not both.