HDF5 does not compile with OpenMPI 4.0.0


Apparently HDF5 uses some MPI functions/constants that have been deprecated since MPI-2, for instance MPI_Type_extent. These functions were apparently still available in OpenMPI until version 4.0.0, where they were removed. So right now it is not possible to compile HDF5 with OpenMPI 4.0.0.



Hi Matthieu,

There is a bug report for this issue (HDFFV-10566). A user gave me a patch to resolve the problem, which I have attached (patch.diff). We haven’t fully tested the patch, but hopefully it will help you build.

Sorry about that!
patch.diff (4.8 KB)

@bljones I’m assuming this is a 1.10 patch file, right? I tried applying it to my 1.8.21 install and it was not happy.


This issue has been fixed in the develop branch on Bitbucket, and will be in both the HDF5-1.10.5 and 1.12.0 releases. The deprecated MPI-1 functions were replaced with their MPI-2 equivalents in HDF5. The parallel flush test fails, so for now that can be ignored, but this should be fixed for the 1.10.5 and 1.12.0 releases.

Also, if you need to build with an older version of the library, you can
use the --enable-mpi1-compatibility option when building OpenMPI 4.0 to
make that work.


Hello, I recompiled OpenMPI 4.0 using --enable-mpi1-compatibility, but I still cannot HDF5-1.10.4 to build successfully. I get ld symbols not found errors, specifically undefined symbols _MPI_Address and _MPI_Type_struct, referenced from _setup_derived_types in t_cache.o. (Same error as building without the mpi1 compatibility flag.) Any suggestions? Thank you.