Skip to content

Install MPI ABI into separate prefix #14348

Description

@eschnett

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions