Hide Forgot
Description of problem: Plain hdf5 is packages as three main packages. * hdf5 * hdf5-static * hdf5-devel There are hdf5 packages built against mpich2 and openmpi, as well. However, these builds lack static libraries. * hdf5-openmpi * hdf5-openmpi-devel * hdf5-mpich2 * hdf5-mpich2-devel None of these packages include static (.a) libraries, so static binaries cannot be built against them. fen3:~/ParaView-3.12.0/build$ make [ 0%] Built target vtksys[ 1%] Built target vtkzlib[ 1%] Built target H5detect [...] [ 32%] Built target vtkXdmf Linking CXX executable ../../../../bin/XdmfTestHDFMPI ../../../../bin/libXdmf.so: undefined reference to `H5Pcreate' [...] Version-Release number of selected component (if applicable): hdf5-openmpi-devel-1.8.5.patch1-5.el6.x86_64 hdf5-openmpi-1.8.5.patch1-5.el6.x86_64 How reproducible: Constant. Steps to Reproduce: 1. Install hdf5-openmpi and hdf5-openmpi-devel 2. Try to compile something linking against hdf5 using the openmpi compiler wrapper (ParaView, in our case) Actual results: Linking CXX executable ../../../../bin/XdmfTestHDFMPI ../../../../bin/libXdmf.so: undefined reference to `H5Pcreate' [...] Expected results: Compile succeeds.
I don't quite see how this is an hdf5 issue. Presumably libXdfm.so needs to be linked against hdf5 but isn't, but I don't see why it can't be linked against the shared library.
> I don't see why it can't be linked against the shared library. Can you link against a shared library statically? I was under the impression that you cannot. It's possible that this is mostly cmake's fault (either by design or configuration) in not picking up the shared library. I admit that I don't know enough to make that call yet. However, even without the failed link error message, there's still the asymmetry between the plain hdf5 packages and the mpi-linked variants. I don't see any reason why static libraries should be included in one variant and not the other.