Cannot build with backends other than default ones
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 487
- Forks
- 200
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 2
Description
I'm trying to build IOR with some backends. So far I tried HDF5, Parallel NetCDF, and AIO, and I don't manage to compile IOR with any of them.
HDF5
I have the hdf5 package installed via spack and loaded, with the +mpi variant.
If I do
$ ../configure --with-hdf5`
The configure process runs without any error, however the make command fails with this error:
Making all in .
CC ior-aiori-HDF5.o
../../src/aiori-HDF5.c:25:10: fatal error: hdf5.h: No such file or directory
25 | #include <hdf5.h>
If I do
$ ../configure --with-hdf5=`spack location -i hdf5`
Then IOR simply doesn't compile ior-aiori-HDF5.c and the HDF5 backend isn't available when running IOR.
Note that spack location -i hdf5 correctly gives me the location where HDF5 is installed.
The latter seems normal per the configure.ac file, which has AM_CONDITIONAL([USE_HDF5_AIORI], [test x$with_hdf5 = xyes]), so it doesn't expect a path, only "yes" or "no" (or just --with-hdf5) however I don't know why it doesn't find HDF5 when it's loaded.
With the former (just passing --with-hdf5, I can see this in the log:
checking for H5Pset_all_coll_metadata_ops... no
which corresponds to this in the configure.ac file:
AM_COND_IF([USE_HDF5_AIORI],[
AC_DEFINE([USE_HDF5_AIORI], [], [Build HDF5 backend AIORI])
AC_SEARCH_LIBS([H5Pset_all_coll_metadata_ops], [hdf5])
AC_CHECK_FUNCS([H5Pset_all_coll_metadata_ops])
])
Yes I can confirm with nm that the installed hdf5 library does have this symbol, and it's in the headers as well.
Parallel NetCDF
I have the parallel-netcdf package install via spack and loaded.
If I do
$ ../configure --with-ncmpi
The configure command fails with this error:
configure: error: --with-ncmpi was given but pnetcdf.h not found
If I do
../configure --with-ncmpi=`spack location -i parallel-netcdf`
The configure command runs fine, but aiori-NCMPI.c is not compiled and the NetCDF backend isn't available to IOR.
Once again, it seems that the configure.ac file is not expecting a path, and even though Parallel NetCDF is installed, IOR does not find it when passing just --with-ncmpi.
AIO
I have the libaio package installed via spack, and loaded.
If I do
$ ../configure --with-aio
The configure command runs fine, but the make command fails with this error:
../../src/aiori-aio.c:10:10: fatal error: libaio.h: No such file or directory
10 | #include <libaio.h>
Once again, if I provide the path to libaio as --with-aio=... then configure runs fine but does not compile the AIO backend.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with configure.ac and the reported backend sources: src/aiori-HDF5.c, src/aiori-NCMPI.c, and src/aiori-aio.c. Reproduce the configure and make commands with the Spack installations, then inspect the configure checks and generated build conditions. Done means supported HDF5, Parallel NetCDF, and AIO backends are detected and compiled when their installations are provided.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100