How is mpi-default-dev supposed to work?
Hi,
I am building a new package against mpi-default-dev.
If I understand correctly, mpi-default-dev just pulls either openmpi-
dev or lam-dev (to be replaced soon by mpich2-dev...) and trusts the
alternatives system to install the right links as mpicc etc.
I think that this currently does not work reliably since mpich2 has
the same priority (40) as openmpi for the alternatives system. If
package A build-depends on mpi-default-dev and is built on a machine
where mpich2-dev has been installed after openmpi-dev, package A will
be built against mpich2, not against openmpi.
This can be resolved in several manners:
- mpi-default-dev could conflict against all the non-default MPI
implementations;
- openmpi could (should) have a higher priority than mpich2;
- my preferred solution: mpi-defaut-dev could provide links like
mpicc.mpi-defaults that would be the commands actually used when
building. They could also be installed as alternatives with a very
high priority, but I think it is safer to directly use the fully
qualified name "mpicc.mpi-default".
I do not (yet) file a bug report because the bug may well lie in my
understanding, so I prefer to discuss the matter here first.
For the time being, I will try to make my debian/rules use
mpicc.openmpi if it is available and fall back to mpicc, since the
default is openmpi wherever it can be installed. mpicc may be a link
to mpicc.mpich2 instead of mpicc.lam in some circumstances.
Best regards, Thibaut.
Reply to: