mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-02-17 16:50:18 +08:00
The netCDF library supports many versions of HDF5, which handles API compatibility via a set of API-call-specific macros. netCDF uses H5Literate(), which was versioned in the 1.12.x maintenance line in order to better support the virtual object layer (VOL). h5_test/tst_h_files4.c failed to compile with certain compilers when the HDF5 library was built using pre-VOL versions of the library- e.g., 1.10, which can be configured with --with-default-api-version=110. This was due to the API compatibility macros being used to select the 1.10 version of H5Literate(), but not its callback function, which was set using a `H5_VERSION_GE()` macro that does not take the compatibility macros into consideration. Fixing the problem involved removing the `H5_VERSION_GE()` macro and letting the compatibility macros handle the versioning, and using the `H5_USE_XXX_API_DEFAULT` symbols to protect the H5Oopen_by_addr() call used in the callback (a new call that wasn't versioned, hence the different protection mechanism). Tested w/ HDF5's develop branch w/ both 1.14 and 1.10 API bindings Fixes #2886 (4118 in HDF5's issue tracker) |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
h5_err_macros.h | ||
Makefile.am | ||
ref_tst_compounds.nc | ||
ref_tst_h_compounds2.h5 | ||
ref_tst_h_compounds.h5 | ||
run_par_tests.sh.in | ||
tst_h_atts3.c | ||
tst_h_atts4.c | ||
tst_h_atts.c | ||
tst_h_compounds2.c | ||
tst_h_compounds.c | ||
tst_h_dimscales1.c | ||
tst_h_dimscales2.c | ||
tst_h_dimscales3.c | ||
tst_h_dimscales4.c | ||
tst_h_dimscales.c | ||
tst_h_endian_float.c | ||
tst_h_enums.c | ||
tst_h_files2.c | ||
tst_h_files4.c | ||
tst_h_files.c | ||
tst_h_grps.c | ||
tst_h_ints.c | ||
tst_h_mem.c | ||
tst_h_opaques.c | ||
tst_h_par_compress.c | ||
tst_h_par.c | ||
tst_h_rename.c | ||
tst_h_strings1.c | ||
tst_h_strings2.c | ||
tst_h_strings.c | ||
tst_h_vars2.c | ||
tst_h_vars3.c | ||
tst_h_vars.c | ||
tst_h_vl.c | ||
tst_h_wrt_cmp.c |