Bradley M. Froehle a écrit , Le 29/08/2013 02:24:
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() {
   printf("I'm %d of %d\n", MPI::COMM_WORLD.Get_rank(),

$ 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

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.


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

I think this requests is valid. The workaround introduced by this patch is wrong, and I'd like to drop it.

As I understand it, mpic{c,xx} wrappers are just another way of doing pkg-config related stuff. Then, why not giving a try at pkg-config? I.e. adding pkg-config files to libhdf5*-dev packages, and patching mkoctfile to rely on pkgconfig for hdf5 flags.

What do you think?



Pkg-grass-devel mailing list

Reply via email to