On 2019-08-20 20:58, Gilles Filippini wrote:
Hi,
On Fri, 16 Aug 2019 12:34:56 +0800 Drew Parsons <[email protected]>
wrote:
Package: libhdf5-openmpi-dev
Version: 1.10.4+repack-10
Severity: normal
hdf5-openmpi.pc provides CFLAGS for hdf5 as
-I/usr/include/openmpi -I/usr/include/hdf5/openmpi
But /usr/include/openmpi is the wrong path. MPI header files are
multiarch, so in
-I/usr/lib/x86_64-linux-gnu/openmpi/include
-I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi
(for amd64).
The same applies to hdf5-mpich.
As I understand it hdf5-mpich.pc is correct:
$ pkg-config --cflags --libs hdf5-mpich
-I/usr/include/hdf5/mpich -I/usr/include/x86_64-linux-gnu/mpich
-L/usr/lib/x86_64-linux-gnu/hdf5/mpich -lhdf5 -Wl,-z,relro -lmpich -lm
-lbacktrace -lpthread -lrt
Ah, you are correct, hdf5-mpich already has the multiarch mpi include
dir. I checked that libmpich-dev provided it multiarch, and had assumed
libhdf5-mpich-dev had the same problem as libhdf5-openmpi-dev but hadn't
confirmed it.
And hdf5-openmpi.pc only needs 'Requires: ompi' with no other
reference to openmpi CFLAGS and LIBS:
Name: HDF5
Description: Hierarchical Data Format 5 (HDF5) - OpenMPI version
Version: @VERSION@
Requires: ompi
Cflags: -I/usr/include/hdf5/openmpi
Libs: -L/usr/lib/@MULTIARCH@/hdf5/openmpi -lhdf5
..
Do we agree?
Yes, that looks good. Requires: ompi brings in the correct openmpi
flags. Makes it consistent with hdf5-mpich.pc too, which already had
Requires: mpich.
Thanks Gilles.
Drew