Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.8.3: H5Vol w/o MPI Does not Compile with HDF5 1.14.0 #3648

Closed
ax3l opened this issue Jun 1, 2023 · 3 comments
Closed

2.8.3: H5Vol w/o MPI Does not Compile with HDF5 1.14.0 #3648

ax3l opened this issue Jun 1, 2023 · 3 comments

Comments

@ax3l
Copy link
Contributor

ax3l commented Jun 1, 2023

Describe the bug
We are trying to use HDF5 1.14.0 in Conda-Forge with our latest release of ADIOS2, 2.8.3, but it fails to build.

To Reproduce
Compile ADIOS2 2.8.3 w/ HDF5 1.14.0 and w/o MPI as in conda-forge/adios2-feedstock#70

This will fail with

In file included from /home/conda/feedstock_root/build_artifacts/adios2-split_1675744077213/work/source/h5vol/H5Vol.h:4,

                 from /home/conda/feedstock_root/build_artifacts/adios2-split_1675744077213/work/testing/h5vol/TestH5VolWriteReadBPFile.cpp:18:

/home/conda/feedstock_root/build_artifacts/adios2-split_1675744077213/work/source/h5vol/H5VolReadWrite.h:84:9: error: invalid conversion from 'herr_t (*)(void*, hid_t, hid_t, hid_t, hid_t, void*, void**)' {aka 'int (*)(void*, long int, long int, long int, long int, void*, void**)'} to 'herr_t (*)(size_t, void**, hid_t*, hid_t*, hid_t*, hid_t, void**, void**)' {aka 'int (*)(long unsigned int, void**, long int*, long int*, long int*, long int, void**, void**)'} [-fpermissive]

   84 |         H5VL_adios2_dataset_read, H5VL_adios2_dataset_write,

      |         ^~~~~~~~~~~~~~~~~~~~~~~~

      |         |

      |         herr_t (*)(void*, hid_t, hid_t, hid_t, hid_t, void*, void**) {aka int (*)(void*, long int, long int, long int, long int, void*, void**)}

/home/conda/feedstock_root/build_artifacts/adios2-split_1675744077213/work/source/h5vol/H5VolReadWrite.h:84:35: error: invalid conversion from 'herr_t (*)(void*, hid_t, hid_t, hid_t, hid_t, const void*, void**)' {aka 'int (*)(void*, long int, long int, long int, long int, const void*, void**)'} to 'herr_t (*)(size_t, void**, hid_t*, hid_t*, hid_t*, hid_t, const void**, void**)' {aka 'int (*)(long unsigned int, void**, long int*, long int*, long int*, long int, const void**, void**)'} [-fpermissive]

   84 |         H5VL_adios2_dataset_read, H5VL_adios2_dataset_write,

      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~

      |                                   |

      |                                   herr_t (*)(void*, hid_t, hid_t, hid_t, hid_t, const void*, void**) {aka int (*)(void*, long int, long int, long int, long int, const void*, void**)}

make[2]: *** [testing/h5vol/CMakeFiles/Test.Util.H5VOL.WriteReadBPFile.Serial.dir/build.make:79: testing/h5vol/CMakeFiles/Test.Util.H5VOL.WriteReadBPFile.Serial.dir/TestH5VolWriteReadBPFile.cpp.o] Error 1

*************************************************************************************************************

make[1]: *** [CMakeFiles/Makefile2:6373: testing/h5vol/CMakeFiles/Test.Util.H5VOL.WriteReadBPFile.Serial.dir/all] Error 2

Expected behavior
This should not fail to compile.

Desktop (please complete the following information):

  • OS/Platform: Ubuntu and macOS w/o MPI using HDF5 1.14.0
  • Build: for Linux, GCC 11.3.0 w/ the latest CMake

Additional context
cc @guj

This blocks releasing an update to our software stack in conda-forge in conda-forge/adios2-feedstock#70

@ax3l
Copy link
Contributor Author

ax3l commented Jun 1, 2023

The H5Vol signatures changed in 1.14.0 according to @guj and were updated in ADIOS 2.9.0.

@ax3l
Copy link
Contributor Author

ax3l commented Jun 5, 2023

I will disable H5Vol in ADIOS2 2.8.* with -DADIOS2_HAVE_HDF5_VOL=OFF and turn it on for HDF5 1.14+ with ADIOS 2.9+ for package managers.

@pnorbert
Copy link
Contributor

pnorbert commented Jun 5, 2023

adios 2.8.x works with HDF5 1.12 Vol syntax, but unfortunately it only checks if HDF5 is version >= 1.12 so it builds with 1.14. To turn this off, run cmake with -DADIOS2_HAVE_HDF5_VOL=OFF
adios 2.9 works with HDF5 1.14 Vol syntax

@pnorbert pnorbert closed this as completed Jun 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants