Bug#721202: Including hdf5.h disables MPI C++ bindings

Bradley M. Froehle brad.froehle at gmail.com
Thu Aug 29 00:24:04 UTC 2013


Subject: Including hdf5.h disables MPI C++ bindings
Package: libhdf5-openmpi-dev
Version: 1.8.9-1~exp3
Severity: normal

As reported in lp:1165504 [1] and discussed in bug 686926 [2],
including "hdf5.h" from the libhdf5-openmpi-dev package
completely disables the MPI C++ bindings. This leads to weird
errors and regressions.

For example, to reproduce:

$ cat test.cpp
#include <hdf5.h> // disables MPI C++ bindings
#include <mpi.h>
int main() {
  MPI::Init();
  printf("I'm %d of %d\n", MPI::COMM_WORLD.Get_rank(),
MPI::COMM_WORLD.Get_size());
  MPI::Finalize();
}

$ mpicxx -o test test.cpp
test.cpp: In function ‘int main()’:
test.cpp:4:3: error: ‘MPI’ has not been declared
test.cpp:5:28: error: ‘MPI’ has not been declared
test.cpp:5:56: error: ‘MPI’ has not been declared
test.cpp:6:3: error: ‘MPI’ has not been declared

The fix for this bug is to remove 'skip_cxx_inclusion.diff' from
debian/patches/series.

The main rationale for the patch was to alleviate awkward
workarounds when compilng C++ code:

  mkoctfile -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 helloworld.cc

However, the appropriate fix would instead have been to compile
helloworld as:

  CXX=mpicxx mkoctfile helloworld.cc

The mpicxx wrappers are provided for a reason, and we should
strive to encourage our users to actually _use_ them.

I hope you consider reverting the 'skip_cxx_inclusion.diff'
from debian/patches/series.

Thanks,
Brad

[1]: https://bugs.launchpad.net/ubuntu/+source/hdf5/+bug/1165504
[2]: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686926



More information about the Pkg-grass-devel mailing list