diff --git a/docs/user_guide/source/setting_up/source/cmake.rst b/docs/user_guide/source/setting_up/source/cmake.rst index 0614803bfe..39164e8ebd 100644 --- a/docs/user_guide/source/setting_up/source/cmake.rst +++ b/docs/user_guide/source/setting_up/source/cmake.rst @@ -128,9 +128,9 @@ Notes: .. code-block:: bash # Several dependencies are installed under /opt/foo/bar and then a - # single dependency (HDF5 in this case) is installed in /opt/hdf5/1.12.0 + # single dependency (HDF5 in this case) is installed in /opt/hdf5/1.13.0 $ export CMAKE_PREFIX_PATH=/opt/foo/bar - $ cmake -DHDF5_ROOT=/opt/hdf5/1.12.0 ../ADIOS2 + $ cmake -DHDF5_ROOT=/opt/hdf5/1.13.0 ../ADIOS2 Example: the following configuration will build, test and install under /opt/adios2/2.7.1 an optimized (Release) version of ADIOS2. diff --git a/examples/hello/hdf5Reader/helloHDF5Reader.cpp b/examples/hello/hdf5Reader/helloHDF5Reader.cpp index 134b5132d2..8031c66ec4 100644 --- a/examples/hello/hdf5Reader/helloHDF5Reader.cpp +++ b/examples/hello/hdf5Reader/helloHDF5Reader.cpp @@ -100,7 +100,7 @@ int main(int argc, char *argv[]) const std::map variables = h5IO.AvailableVariables(); - for (const auto variablePair : variables) + for (const auto &variablePair : variables) { std::cout << "Name: " << variablePair.first; std::cout << std::endl; @@ -132,7 +132,7 @@ int main(int argc, char *argv[]) const std::map attributes = h5IO.AvailableAttributes(); - for (const auto attrPair : attributes) + for (const auto &attrPair : attributes) { std::cout << "AttrName: " << attrPair.first; std::cout << std::endl; diff --git a/scripts/ci/cmake-v2/ci-el8-gcc10-mpi.cmake b/scripts/ci/cmake-v2/ci-el8-gcc10-mpi.cmake index 78a2c3eb37..4bc8c1b644 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc10-mpi.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc10-mpi.cmake @@ -13,7 +13,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-gcc10-serial.cmake b/scripts/ci/cmake-v2/ci-el8-gcc10-serial.cmake index 4566a06948..78b7ef0698 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc10-serial.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc10-serial.cmake @@ -9,7 +9,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-gcc11-mpi.cmake b/scripts/ci/cmake-v2/ci-el8-gcc11-mpi.cmake index 78a2c3eb37..4bc8c1b644 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc11-mpi.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc11-mpi.cmake @@ -13,7 +13,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-gcc11-serial.cmake b/scripts/ci/cmake-v2/ci-el8-gcc11-serial.cmake index 4566a06948..78b7ef0698 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc11-serial.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc11-serial.cmake @@ -9,7 +9,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-gcc8-mpi.cmake b/scripts/ci/cmake-v2/ci-el8-gcc8-mpi.cmake index 78a2c3eb37..4bc8c1b644 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc8-mpi.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc8-mpi.cmake @@ -13,7 +13,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-gcc8-serial.cmake b/scripts/ci/cmake-v2/ci-el8-gcc8-serial.cmake index 4566a06948..78b7ef0698 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc8-serial.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc8-serial.cmake @@ -9,7 +9,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-gcc9-mpi.cmake b/scripts/ci/cmake-v2/ci-el8-gcc9-mpi.cmake index 78a2c3eb37..4bc8c1b644 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc9-mpi.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc9-mpi.cmake @@ -13,7 +13,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-gcc9-serial.cmake b/scripts/ci/cmake-v2/ci-el8-gcc9-serial.cmake index 4566a06948..78b7ef0698 100644 --- a/scripts/ci/cmake-v2/ci-el8-gcc9-serial.cmake +++ b/scripts/ci/cmake-v2/ci-el8-gcc9-serial.cmake @@ -9,7 +9,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-icc-mpi.cmake b/scripts/ci/cmake-v2/ci-el8-icc-mpi.cmake index 5aae30a478..07eb6b0778 100644 --- a/scripts/ci/cmake-v2/ci-el8-icc-mpi.cmake +++ b/scripts/ci/cmake-v2/ci-el8-icc-mpi.cmake @@ -13,7 +13,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-icc-serial.cmake b/scripts/ci/cmake-v2/ci-el8-icc-serial.cmake index 5727708458..84ba5d999e 100644 --- a/scripts/ci/cmake-v2/ci-el8-icc-serial.cmake +++ b/scripts/ci/cmake-v2/ci-el8-icc-serial.cmake @@ -9,7 +9,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-nvhpc222-mpi.cmake b/scripts/ci/cmake-v2/ci-el8-nvhpc222-mpi.cmake index 14aacecf52..3edb330aed 100644 --- a/scripts/ci/cmake-v2/ci-el8-nvhpc222-mpi.cmake +++ b/scripts/ci/cmake-v2/ci-el8-nvhpc222-mpi.cmake @@ -14,7 +14,7 @@ ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_CUDA:BOOL=OFF ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=OFF ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-nvhpc222-serial.cmake b/scripts/ci/cmake-v2/ci-el8-nvhpc222-serial.cmake index 2276b47f10..3e7f97f5a8 100644 --- a/scripts/ci/cmake-v2/ci-el8-nvhpc222-serial.cmake +++ b/scripts/ci/cmake-v2/ci-el8-nvhpc222-serial.cmake @@ -10,7 +10,7 @@ ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_CUDA:BOOL=OFF ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=OFF ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-oneapi-mpi.cmake b/scripts/ci/cmake-v2/ci-el8-oneapi-mpi.cmake index 63c037bea7..72ee3c7284 100644 --- a/scripts/ci/cmake-v2/ci-el8-oneapi-mpi.cmake +++ b/scripts/ci/cmake-v2/ci-el8-oneapi-mpi.cmake @@ -13,7 +13,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake-v2/ci-el8-oneapi-serial.cmake b/scripts/ci/cmake-v2/ci-el8-oneapi-serial.cmake index 1eab979d75..17f5e90b18 100644 --- a/scripts/ci/cmake-v2/ci-el8-oneapi-serial.cmake +++ b/scripts/ci/cmake-v2/ci-el8-oneapi-serial.cmake @@ -9,7 +9,7 @@ ADIOS2_USE_BZip2:BOOL=ON ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/images/power8-el7-leaf-smpi/Dockerfile b/scripts/ci/images/power8-el7-leaf-smpi/Dockerfile index c25847c033..4e1147b826 100644 --- a/scripts/ci/images/power8-el7-leaf-smpi/Dockerfile +++ b/scripts/ci/images/power8-el7-leaf-smpi/Dockerfile @@ -12,15 +12,15 @@ ENV MPI_ROOT=/opt/ibm/spectrum_mpi \ PATH=/opt/ibm/spectrum_mpi/bin:${PATH} \ LD_LIBRARY_PATH=/opt/ibm/spectrum_mpi/lib:${PATH} -# Install HDF5 1.12.0 +# Install HDF5 1.13.0 WORKDIR /opt/hdf5 ARG HDF5_ARGS -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.bz2 | \ +RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-1.13.0/src/hdf5-1.13.0.tar.bz2 | \ tar -xvj && \ mkdir build && \ cd build && \ cmake ${HDF5_ARGS} \ - -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.12.0 \ + -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.13.0 \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ @@ -29,13 +29,13 @@ RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0 -DBUILD_TESTING=OFF \ -DHDF5_BUILD_TOOLS=ON \ -DHDF5_ENABLE_PARALLEL=ON \ - ../hdf5-1.12.0 && \ + ../hdf5-1.13.0 && \ make -j$(grep -c '^processor' /proc/cpuinfo) install && \ cd .. && \ - rm -rf hdf5-1.12.0 build -ENV PATH=/opt/hdf5/1.12.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.12.0/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.12.0:${CMAKE_PREFIX_PATH} + rm -rf hdf5-1.13.0 build +ENV PATH=/opt/hdf5/1.13.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/hdf5/1.13.0/lib:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/hdf5/1.13.0:${CMAKE_PREFIX_PATH} # Misc cleanup of unneeded files RUN rm -rf /tmp/* && \ diff --git a/scripts/ci/images/power8-el7-leaf/Dockerfile b/scripts/ci/images/power8-el7-leaf/Dockerfile index c9b86a79f3..2dde2ca878 100644 --- a/scripts/ci/images/power8-el7-leaf/Dockerfile +++ b/scripts/ci/images/power8-el7-leaf/Dockerfile @@ -1,14 +1,14 @@ ARG COMPILER FROM ornladios/adios2:ci-x86_64-power8-el7-${COMPILER}-base -# Install HDF5 1.12.0 +# Install HDF5 1.13.0 WORKDIR /opt/hdf5 -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.bz2 | \ +RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-1.13.0/src/hdf5-1.13.0.tar.bz2 | \ tar -xvj && \ mkdir build && \ cd build && \ cmake \ - -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.12.0 \ + -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.13.0 \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ @@ -17,13 +17,13 @@ RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0 -DHDF5_BUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ -DHDF5_BUILD_TOOLS=OFF \ - ../hdf5-1.12.0 && \ + ../hdf5-1.13.0 && \ make -j$(grep -c '^processor' /proc/cpuinfo) install && \ cd .. && \ - rm -rf hdf5-1.12.0 build -ENV PATH=/opt/hdf5/1.12.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.12.0/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.12.0:${CMAKE_PREFIX_PATH} + rm -rf hdf5-1.13.0 build +ENV PATH=/opt/hdf5/1.13.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/hdf5/1.13.0/lib:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/hdf5/1.13.0:${CMAKE_PREFIX_PATH} # Misc cleanup of unneeded files RUN rm -rf /tmp/* && \ diff --git a/scripts/ci/images/suse-nvhpcsdk-openmpi/Dockerfile b/scripts/ci/images/suse-nvhpcsdk-openmpi/Dockerfile index d7a6c59bf9..17d37572fb 100644 --- a/scripts/ci/images/suse-nvhpcsdk-openmpi/Dockerfile +++ b/scripts/ci/images/suse-nvhpcsdk-openmpi/Dockerfile @@ -1,15 +1,15 @@ FROM ornladios/adios2:ci-suse-nvhpcsdk-base -# Install HDF5 1.12.0 +# Install HDF5 1.13.0 WORKDIR /opt/hdf5 -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.bz2 | \ +RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-1.13.0/src/hdf5-1.13.0.tar.bz2 | \ tar -xvj && \ mkdir build && \ cd build && \ source /etc/profile && \ module load nvhpc && \ /opt/cmake/bin/cmake \ - -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.12.0 \ + -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.13.0 \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ @@ -18,13 +18,13 @@ RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0 -DHDF5_BUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ -DHDF5_BUILD_TOOLS=OFF \ - ../hdf5-1.12.0 && \ + ../hdf5-1.13.0 && \ make -j$(grep -c '^processor' /proc/cpuinfo) install && \ cd .. && \ - rm -rf hdf5-1.12.0 build -ENV PATH=/opt/hdf5/1.12.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.12.0/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.12.0:${CMAKE_PREFIX_PATH} + rm -rf hdf5-1.13.0 build +ENV PATH=/opt/hdf5/1.13.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/hdf5/1.13.0/lib:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/hdf5/1.13.0:${CMAKE_PREFIX_PATH} # Misc cleanup of unneeded files RUN rm -rf /tmp/* && \ diff --git a/scripts/ci/images/suse-nvhpcsdk/Dockerfile b/scripts/ci/images/suse-nvhpcsdk/Dockerfile index 294cdbab84..bf8d6ebc51 100644 --- a/scripts/ci/images/suse-nvhpcsdk/Dockerfile +++ b/scripts/ci/images/suse-nvhpcsdk/Dockerfile @@ -2,14 +2,14 @@ FROM ornladios/adios2:ci-suse-nvhpcsdk-base # Install HDF5 WORKDIR /opt/hdf5 -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.bz2 | \ +RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-1.13.0/src/hdf5-1.13.0.tar.bz2 | \ tar -xvj && \ mkdir build && \ cd build && \ source /etc/profile && \ module load nvhpc-nompi && \ /opt/cmake/bin/cmake \ - -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.12.0 \ + -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.13.0 \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ @@ -18,13 +18,13 @@ RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0 -DHDF5_BUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ -DHDF5_BUILD_TOOLS=OFF \ - ../hdf5-1.12.0 && \ + ../hdf5-1.13.0 && \ make -j$(grep -c '^processor' /proc/cpuinfo) install && \ cd .. && \ - rm -rf hdf5-1.12.0 build -ENV PATH=/opt/hdf5/1.12.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.12.0/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.12.0:${CMAKE_PREFIX_PATH} + rm -rf hdf5-1.13.0 build +ENV PATH=/opt/hdf5/1.13.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/hdf5/1.13.0/lib:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/hdf5/1.13.0:${CMAKE_PREFIX_PATH} # Misc cleanup of unneeded files RUN rm -rf /tmp/* && \ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 4acca98426..d304f47548 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -6,11 +6,16 @@ add_subdirectory(adios2) add_subdirectory(utils) -# HDF5 VOL requires a matching adios configuration -if(ADIOS2_HAVE_HDF5 AND HDF5_VERSION VERSION_GREATER_EQUAL 1.11 AND - (NOT HDF5_IS_PARALLEL OR (HDF5_IS_PARALLEL AND ADIOS2_USE_MPI))) - set(ADIOS2_HAVE_HDF5_VOL ON CACHE INTERNAL "" FORCE) - add_subdirectory(h5vol) +# HDF5 VOL requires 1.13+ +if(ADIOS2_HAVE_HDF5) + if(HDF5_VERSION VERSION_LESS 1.13) + set(ADIOS2_HAVE_HDF5_VOL OFF CACHE INTERNAL "") + else() + set(ADIOS2_HAVE_HDF5_VOL ON CACHE INTERNAL "") + endif() else() - set(ADIOS2_HAVE_HDF5_VOL OFF CACHE INTERNAL "" FORCE) + set(ADIOS2_HAVE_HDF5_VOL OFF CACHE INTERNAL "") +endif() +if(ADIOS2_HAVE_HDF5_VOL) + add_subdirectory(h5vol) endif() diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt index e8ed69f360..bfd69cc090 100644 --- a/source/adios2/CMakeLists.txt +++ b/source/adios2/CMakeLists.txt @@ -288,14 +288,18 @@ if(ADIOS2_HAVE_HDF5) set(adios2_hdf5_objs adios2_hdf5) if(HDF5_IS_PARALLEL) list(APPEND adios2_hdf5_objs adios2_hdf5_mpi) - set_property(SOURCE core/IOMPI.cpp APPEND PROPERTY COMPILE_DEFINITIONS ADIOS2_HAVE_HDF5_PARALLEL) + set_property(SOURCE core/IOMPI.cpp APPEND PROPERTY + COMPILE_DEFINITIONS ADIOS2_HAVE_HDF5_PARALLEL + ) add_library(adios2_hdf5_mpi OBJECT toolkit/interop/hdf5/HDF5CommonMPI.cpp ) target_compile_definitions(adios2_hdf5_mpi PRIVATE ADIOS2_USE_MPI) target_link_libraries(adios2_core_mpi PRIVATE adios2_hdf5_mpi) set_property(TARGET adios2_hdf5_mpi PROPERTY EXPORT_NAME hdf5_mpi) - set_property(TARGET adios2_hdf5_mpi PROPERTY OUTPUT_NAME adios2${ADIOS2_LIBRARY_SUFFIX}_hdf5_mpi) + set_property(TARGET adios2_hdf5_mpi PROPERTY + OUTPUT_NAME adios2${ADIOS2_LIBRARY_SUFFIX}_hdf5_mpi + ) endif() foreach(lib IN LISTS adios2_hdf5_objs) diff --git a/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp b/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp index 10fc0afaa8..04fff625b9 100644 --- a/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp +++ b/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp @@ -35,6 +35,7 @@ namespace HDF5Common::MPI_API const *GetHDF5Common_MPI_API() { std::lock_guard guard(HDF5Common_MPI_API_Mutex); + (void)guard; // Workaround to silence compiler warning about unused variable return HDF5Common_MPI_API; } diff --git a/source/h5vol/CMakeLists.txt b/source/h5vol/CMakeLists.txt index 1ca135d306..c94593a70e 100644 --- a/source/h5vol/CMakeLists.txt +++ b/source/h5vol/CMakeLists.txt @@ -3,6 +3,12 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# +if(CMAKE_C_COMPILER_ID MATCHES "^(GNU)$") + # Silence a noisy warning in our log functions as the behavior is + # intentional + string(APPEND CMAKE_C_FLAGS " -Wno-format-zero-length") +endif() + add_library(adios2_h5vol H5VolReadWrite.c H5Vol.c @@ -18,18 +24,14 @@ target_include_directories(adios2_h5vol PRIVATE ${HDF5_C_INCLUDE_DIRS}) target_link_libraries(adios2_h5vol PRIVATE ${HDF5_C_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -if(NOT HDF5_IS_PARALLEL) - target_link_libraries(adios2_h5vol PRIVATE adios2::c) -elseif(HDF5_IS_PARALLEL AND ADIOS2_HAVE_MPI) + +if(ADIOS2_USE_MPI) target_link_libraries(adios2_h5vol PRIVATE adios2::c_mpi MPI::MPI_C) -else() # HDF5_IS_PARALLEL AND NOT ADIOS2_HAVE_MPI - message(FATAL_ERROR "Invalid configuration: HDF5_IS_PARALLEL AND NOT ADIOS2_HAVE_MPI") +else() + target_link_libraries(adios2_h5vol PRIVATE adios2::c) endif() -install(FILES H5Vol_def.h H5VolError.h H5Vol.h H5VolReadWrite.h H5VolUtil.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2/h5vol - COMPONENT adios2_h5vol -) +# VOL install should only contain the .so and no headers install(TARGETS adios2_h5vol RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/source/h5vol/H5VolReadWrite.c b/source/h5vol/H5VolReadWrite.c index 8d6a190f42..d27b22f337 100644 --- a/source/h5vol/H5VolReadWrite.c +++ b/source/h5vol/H5VolReadWrite.c @@ -626,7 +626,7 @@ H5VL_GroupDef_t *gCreateGroupDef(const char *name) return grp; } -ssize_t gGetBranchNameLength(H5VL_ObjDef_t *vol, size_t namelen) +size_t gGetBranchNameLength(H5VL_ObjDef_t *vol, size_t namelen) { if (vol->m_Path != NULL) if ('/' == (vol->m_Path)[strlen(vol->m_Path) - 1]) @@ -654,7 +654,7 @@ void gGetBranchName(H5VL_ObjDef_t *vol, const char *fullPath, char *name) // // returns length of name // -ssize_t gGetNameOfNthAttr(H5VL_ObjDef_t *vol, uint32_t idx, char *name) +size_t gGetNameOfNthAttr(H5VL_ObjDef_t *vol, uint32_t idx, char *name) { gLoadContent(vol); if (0 == vol->m_NumAttrs) @@ -689,7 +689,7 @@ ssize_t gGetNameOfNthAttr(H5VL_ObjDef_t *vol, uint32_t idx, char *name) // called from: H5Gget_info, then H5Gget_objname_by_idx // (which calls H5Lget_name.. ) // -ssize_t gGetNameOfNthItem(H5VL_ObjDef_t *vol, uint32_t idx, char *name) +size_t gGetNameOfNthItem(H5VL_ObjDef_t *vol, uint32_t idx, char *name) { gLoadContent(vol); diff --git a/source/h5vol/H5VolReadWrite.h b/source/h5vol/H5VolReadWrite.h index 5b5ebe7138..b07222e65b 100644 --- a/source/h5vol/H5VolReadWrite.h +++ b/source/h5vol/H5VolReadWrite.h @@ -34,7 +34,8 @@ extern herr_t H5VL_adios2_beginstep(const char *engine_name, extern herr_t H5VL_adios2_endstep(const char *engine_nane); static herr_t H5VL_adios2_introspect_opt_query(void *obj, H5VL_subclass_t cls, - int opt_type, hbool_t *supported) + int opt_type, + uint64_t *supported) { *supported = 0; return 0; @@ -52,10 +53,11 @@ static herr_t H5VL_adios2_datatype_close(void *dt, hid_t H5_ATTR_UNUSED dxpl_id, static const H5VL_class_t H5VL_adios2_def = { H5VL_ADIOS2_VERSION, (H5VL_class_value_t)H5VL_ADIOS2_VALUE, - H5VL_ADIOS2_NAME, /* name */ - 0, - H5VL_adios2_init, /* initialize */ - H5VL_adios2_term, /* terminate */ + H5VL_ADIOS2_NAME, /* name */ + 0, /* Version # of connector */ + H5VL_CAP_FLAG_NONE, /* Capability flags for connector */ + H5VL_adios2_init, /* initialize */ + H5VL_adios2_term, /* terminate */ { /* info_cls */ (size_t)0, /* info size */ @@ -118,6 +120,7 @@ static const H5VL_class_t H5VL_adios2_def = { { /* introspect_cls */ NULL, // H5VL_pass_through_introspect_get_conn_cls, /* get_conn_cls */ + NULL, /* get_cap_flags */ H5VL_adios2_introspect_opt_query, /* opt_query */ }, { diff --git a/source/h5vol/H5Vol_attr.c b/source/h5vol/H5Vol_attr.c index 76550f75df..a818e483f4 100644 --- a/source/h5vol/H5Vol_attr.c +++ b/source/h5vol/H5Vol_attr.c @@ -154,29 +154,39 @@ void GetFromAttribute(void *attrObj, hid_t *ret_id, H5VL_attr_get_t get_type) } } -herr_t H5VL_adios2_attr_get(void *obj, H5VL_attr_get_t get_type, hid_t dxpl_id, - void **req, va_list arguments) +herr_t H5VL_adios2_attr_get(void *obj, H5VL_attr_get_args_t *args, + hid_t dxpl_id, void **req) { REQUIRE_NOT_NULL_ERR(obj, -1); H5VL_ObjDef_t *vol = (H5VL_ObjDef_t *)obj; - if ((get_type == H5VL_ATTR_GET_SPACE) || (get_type == H5VL_ATTR_GET_TYPE)) + switch (args->op_type) { - hid_t *ret_id = va_arg(arguments, hid_t *); - GetFromAttribute((vol->m_ObjPtr), ret_id, get_type); + case H5VL_ATTR_GET_SPACE: + { + hid_t *ret_id = (hid_t *)args->args.get_space.space_id; + GetFromAttribute((vol->m_ObjPtr), ret_id, args->op_type); return 0; } + case H5VL_ATTR_GET_TYPE: + { + hid_t *ret_id = (hid_t *)args->args.get_type.type_id; + GetFromAttribute((vol->m_ObjPtr), ret_id, args->op_type); + return 0; + } + default: + break; + } - const H5VL_loc_params_t *loc_params = - va_arg(arguments, const H5VL_loc_params_t *); - REQUIRE_NOT_NULL_ERR(loc_params, -1); - - switch (get_type) + switch (args->op_type) { case H5VL_ATTR_GET_NAME: { - char *buf = va_arg(arguments, char *); - ssize_t *ret_val = va_arg(arguments, ssize_t *); + char *buf = args->args.get_name.buf; + size_t *ret_val = (size_t *)args->args.get_name.attr_name_len; + + const H5VL_loc_params_t *loc_params = &args->args.get_name.loc_params; + REQUIRE_NOT_NULL_ERR(loc_params, -1); if (H5VL_OBJECT_BY_SELF == loc_params->type) { @@ -222,19 +232,22 @@ herr_t H5VL_adios2_attr_close(void *attr, hid_t dxpl_id, void **req) } herr_t H5VL_adios2_attr_specific(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_attr_specific_t specific_type, - hid_t dxpl_id, void **req, va_list arguments) + H5VL_attr_specific_args_t *args, hid_t dxpl_id, + void **req) { REQUIRE_NOT_NULL_ERR(obj, -1); H5VL_ObjDef_t *vol = (H5VL_ObjDef_t *)obj; - const char *attr_name = va_arg(arguments, const char *); - adios2_attribute *attr = gLocateAttrFrom(vol, attr_name); + const char *attr_name; + adios2_attribute *attr; - switch (specific_type) + switch (args->op_type) { case H5VL_ATTR_DELETE: { + attr_name = (const char *)args->args.del.name; + attr = gLocateAttrFrom(vol, attr_name); + if (NULL != attr) { if (NULL == vol->m_Path) @@ -250,7 +263,11 @@ herr_t H5VL_adios2_attr_specific(void *obj, const H5VL_loc_params_t *loc_params, } case H5VL_ATTR_EXISTS: { - htri_t *ret = va_arg(arguments, htri_t *); + hbool_t *ret = args->args.exists.exists; + + attr_name = (const char *)args->args.exists.name; + attr = gLocateAttrFrom(vol, attr_name); + if (NULL == attr) { *ret = 0; diff --git a/source/h5vol/H5Vol_dataset.c b/source/h5vol/H5Vol_dataset.c index 5590ac5d2a..462b304446 100644 --- a/source/h5vol/H5Vol_dataset.c +++ b/source/h5vol/H5Vol_dataset.c @@ -100,18 +100,18 @@ herr_t H5VL_adios2_dataset_read(void *dset, hid_t mem_type_id, return gADIOS2ReadVar(var); } -herr_t H5VL_adios2_dataset_get(void *dset, H5VL_dataset_get_t get_type, - hid_t dxpl_id, void **req, va_list arguments) +herr_t H5VL_adios2_dataset_get(void *dset, H5VL_dataset_get_args_t *args, + hid_t dxpl_id, void **req) { REQUIRE_NOT_NULL_ERR(dset, -1); H5VL_ObjDef_t *vol = (H5VL_ObjDef_t *)dset; H5VL_VarDef_t *varDef = (H5VL_VarDef_t *)(vol->m_ObjPtr); - switch (get_type) + switch (args->op_type) { case H5VL_DATASET_GET_SPACE: { - hid_t *ret_id = va_arg(arguments, hid_t *); + hid_t *ret_id = (hid_t *)args->args.get_space.space_id; *ret_id = H5Scopy(varDef->m_ShapeID); REQUIRE_SUCC_MSG((*ret_id >= 0), -1, "H5VOL-ADIOS2: Unable to get space id."); @@ -119,7 +119,7 @@ herr_t H5VL_adios2_dataset_get(void *dset, H5VL_dataset_get_t get_type, } case H5VL_DATASET_GET_TYPE: { - hid_t *ret_id = va_arg(arguments, hid_t *); + hid_t *ret_id = (hid_t *)args->args.get_type.type_id; *ret_id = H5Tcopy(varDef->m_TypeID); break; } diff --git a/source/h5vol/H5Vol_def.h b/source/h5vol/H5Vol_def.h index 022d04aa70..e84056cee6 100644 --- a/source/h5vol/H5Vol_def.h +++ b/source/h5vol/H5Vol_def.h @@ -103,9 +103,8 @@ extern void *H5VL_adios2_file_open(const char *name, unsigned flags, hid_t fapl_id, hid_t dxpl_id, void **req); extern herr_t H5VL_adios2_file_specific(void *file, - H5VL_file_specific_t specific_type, - hid_t dxpl_id, void **req, - va_list arguments); + H5VL_file_specific_args_t *args, + hid_t dxpl_id, void **req); extern herr_t H5VL_adios2_file_close(void *file, hid_t dxpl_id, void **req); @@ -130,17 +129,15 @@ extern herr_t H5VL_adios2_attr_write(void *attr, hid_t mem_type_id, const void *buf, hid_t dxpl_id, void **req); -extern herr_t H5VL_adios2_attr_get(void *obj, H5VL_attr_get_t get_type, - hid_t dxpl_id, void **req, - va_list arguments); +extern herr_t H5VL_adios2_attr_get(void *obj, H5VL_attr_get_args_t *args, + hid_t dxpl_id, void **req); extern herr_t H5VL_adios2_attr_close(void *attr, hid_t dxpl_id, void **req); extern herr_t H5VL_adios2_attr_specific(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_attr_specific_t specific_type, - hid_t dxpl_id, void **req, - va_list arguments); + H5VL_attr_specific_args_t *args, + hid_t dxpl_id, void **req); // // object functions: @@ -151,10 +148,11 @@ extern void *H5VL_adios2_object_open(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, void H5_ATTR_UNUSED **req); -extern herr_t -H5VL_adios2_object_get(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_object_get_t get_type, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, va_list arguments); +extern herr_t H5VL_adios2_object_get(void *obj, + const H5VL_loc_params_t *loc_params, + H5VL_object_get_args_t *args, + hid_t H5_ATTR_UNUSED dxpl_id, + void H5_ATTR_UNUSED **req); // dataset functions: extern void *H5VL_adios2_dataset_create(void *obj, @@ -173,9 +171,8 @@ extern herr_t H5VL_adios2_dataset_read(void *dset, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t plist_id, void *buf, void **req); -extern herr_t H5VL_adios2_dataset_get(void *dset, H5VL_dataset_get_t get_type, - hid_t dxpl_id, void **req, - va_list arguments); +extern herr_t H5VL_adios2_dataset_get(void *dset, H5VL_dataset_get_args_t *args, + hid_t dxpl_id, void **req); extern herr_t H5VL_adios2_dataset_write(void *dset, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, @@ -189,15 +186,15 @@ extern herr_t H5VL_adios2_dataset_close(void *dset, hid_t dxpl_id, void **req); // extern herr_t H5VL_adios2_link_specific(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_link_specific_t specific_type, + H5VL_link_specific_args_t *args, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, - va_list arguments); + void H5_ATTR_UNUSED **req); -extern herr_t -H5VL_adios2_link_get(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_link_get_t get_type, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, va_list arguments); +extern herr_t H5VL_adios2_link_get(void *obj, + const H5VL_loc_params_t *loc_params, + H5VL_link_get_args_t *args, + hid_t H5_ATTR_UNUSED dxpl_id, + void H5_ATTR_UNUSED **req); // // group functions: @@ -215,10 +212,9 @@ extern void *H5VL_adios2_group_open(void *obj, const char *name, hid_t gapl_id, hid_t dxpl_id, void **req); -extern herr_t H5VL_adios2_group_get(void *obj, H5VL_group_get_t get_type, +extern herr_t H5VL_adios2_group_get(void *obj, H5VL_group_get_args_t *args, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, - va_list arguments); + void H5_ATTR_UNUSED **req); // // general definitions: @@ -242,8 +238,8 @@ extern void gLoadAttrDef(H5VL_AttrDef_t *attrDef); extern void gLoadContent(H5VL_ObjDef_t *obj); extern void gLoadSubGroups(H5VL_ObjDef_t *obj); -extern ssize_t gGetNameOfNthAttr(H5VL_ObjDef_t *obj, uint32_t idx, char *name); -extern ssize_t gGetNameOfNthItem(H5VL_ObjDef_t *obj, uint32_t idx, char *name); +extern size_t gGetNameOfNthAttr(H5VL_ObjDef_t *obj, uint32_t idx, char *name); +extern size_t gGetNameOfNthItem(H5VL_ObjDef_t *obj, uint32_t idx, char *name); extern H5VL_ObjDef_t *gGetVarObjDef(const char *fullPath, H5VL_ObjDef_t *vol); extern H5VL_VarDef_t *gCreateVarDef(const char *name, adios2_engine *engine, diff --git a/source/h5vol/H5Vol_file.c b/source/h5vol/H5Vol_file.c index c88ce75a63..d7ad4fc72d 100644 --- a/source/h5vol/H5Vol_file.c +++ b/source/h5vol/H5Vol_file.c @@ -39,8 +39,8 @@ void *H5VL_adios2_file_open(const char *name, unsigned flags, hid_t fapl_id, return gFileToVolObj(handle); } -herr_t H5VL_adios2_file_specific(void *file, H5VL_file_specific_t specific_type, - hid_t dxpl_id, void **req, va_list arguments) +herr_t H5VL_adios2_file_specific(void *file, H5VL_file_specific_args_t *args, + hid_t dxpl_id, void **req) { // // This function is called after H5Fopen/create. Do not remove diff --git a/source/h5vol/H5Vol_group.c b/source/h5vol/H5Vol_group.c index 27ca3a0a44..4f87fc3846 100644 --- a/source/h5vol/H5Vol_group.c +++ b/source/h5vol/H5Vol_group.c @@ -55,20 +55,19 @@ void *H5VL_adios2_group_open(void *obj, const H5VL_loc_params_t *loc_params, return NULL; } -herr_t H5VL_adios2_group_get(void *obj, H5VL_group_get_t get_type, +herr_t H5VL_adios2_group_get(void *obj, H5VL_group_get_args_t *args, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, va_list arguments) + void H5_ATTR_UNUSED **req) { REQUIRE_NOT_NULL_ERR(obj, -1); H5VL_ObjDef_t *vol = (H5VL_ObjDef_t *)obj; - switch (get_type) + switch (args->op_type) { case H5VL_GROUP_GET_INFO: { - const H5VL_loc_params_t *loc_params = - va_arg(arguments, const H5VL_loc_params_t *); - H5G_info_t *group_info = va_arg(arguments, H5G_info_t *); + const H5VL_loc_params_t *loc_params = &args->args.get_info.loc_params; + H5G_info_t *group_info = args->args.get_info.ginfo; if (loc_params->type == H5VL_OBJECT_BY_SELF) { diff --git a/source/h5vol/H5Vol_link.c b/source/h5vol/H5Vol_link.c index c0169f74c0..1bbe5ac80b 100644 --- a/source/h5vol/H5Vol_link.c +++ b/source/h5vol/H5Vol_link.c @@ -4,9 +4,9 @@ #include "H5Vol_def.h" herr_t H5VL_adios2_link_specific(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_link_specific_t specific_type, + H5VL_link_specific_args_t *args, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, va_list arguments) + void H5_ATTR_UNUSED **req) { REQUIRE_NOT_NULL_ERR(loc_params, -1); @@ -14,13 +14,13 @@ herr_t H5VL_adios2_link_specific(void *obj, const H5VL_loc_params_t *loc_params, H5VL_ObjDef_t *vol = (H5VL_ObjDef_t *)obj; - switch (specific_type) + switch (args->op_type) { case H5VL_LINK_EXISTS: { if ((GROUP == vol->m_ObjType) || (ROOT == vol->m_ObjType)) { - htri_t *ret = va_arg(arguments, htri_t *); + hbool_t *ret = args->args.exists.exists; const char *obj_name = loc_params->loc_data.loc_by_name.name; *ret = gExistsUnderGrp(vol, obj_name); @@ -52,21 +52,21 @@ herr_t H5VL_adios2_link_specific(void *obj, const H5VL_loc_params_t *loc_params, } herr_t H5VL_adios2_link_get(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_link_get_t get_type, + H5VL_link_get_args_t *args, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, va_list arguments) + void H5_ATTR_UNUSED **req) { REQUIRE_NOT_NULL_ERR(loc_params, -1); REQUIRE_NOT_NULL_ERR(obj, -1); H5VL_ObjDef_t *vol = (H5VL_ObjDef_t *)obj; - switch (get_type) + switch (args->op_type) { case H5VL_LINK_GET_NAME: { - char *name = va_arg(arguments, char *); - ssize_t *ret = va_arg(arguments, ssize_t *); + char *name = args->args.get_name.name; + size_t *ret = (size_t *)args->args.get_name.name_len; if ((GROUP == vol->m_ObjType) || (ROOT == vol->m_ObjType)) { diff --git a/source/h5vol/H5Vol_object.c b/source/h5vol/H5Vol_object.c index 52269c442f..69fa1fa8d3 100644 --- a/source/h5vol/H5Vol_object.c +++ b/source/h5vol/H5Vol_object.c @@ -57,21 +57,20 @@ void *H5VL_adios2_object_open(void *obj, const H5VL_loc_params_t *loc_params, } herr_t H5VL_adios2_object_get(void *obj, const H5VL_loc_params_t *loc_params, - H5VL_object_get_t get_type, + H5VL_object_get_args_t *args, hid_t H5_ATTR_UNUSED dxpl_id, - void H5_ATTR_UNUSED **req, va_list arguments) + void H5_ATTR_UNUSED **req) { REQUIRE_NOT_NULL_ERR(loc_params, -1); REQUIRE_NOT_NULL_ERR(obj, -1); H5VL_ObjDef_t *vol = (H5VL_ObjDef_t *)obj; - switch (get_type) + switch (args->op_type) { case H5VL_OBJECT_GET_INFO: { - H5O_info2_t *oinfo = va_arg(arguments, H5O_info2_t *); - // unsigned fields = va_arg(arguments, unsigned); + H5O_info2_t *oinfo = args->args.get_info.oinfo; if (loc_params->type == H5VL_OBJECT_BY_SELF) { oinfo->fileno = 1; diff --git a/source/utils/adios_iotest/hdf5Stream.cpp b/source/utils/adios_iotest/hdf5Stream.cpp index b55bd4ddae..109df310d3 100644 --- a/source/utils/adios_iotest/hdf5Stream.cpp +++ b/source/utils/adios_iotest/hdf5Stream.cpp @@ -220,7 +220,7 @@ void hdf5Stream::Write(CommandWrite *cmdW, Config &cfg, double maxWriteTime, minWriteTime; MPI_Barrier(comm); timeStart = MPI_Wtime(); - for (const auto ov : cmdW->variables) + for (const auto &ov : cmdW->variables) { putHDF5Array(ov, step); } @@ -394,7 +394,7 @@ adios2::StepStatus hdf5Stream::Read(CommandRead *cmdR, Config &cfg, } void hdf5Stream::Close() { - for (const auto it : varmap) + for (const auto &it : varmap) { auto &vi = it.second; H5Dclose(vi.dataset);