From 422bf2af7478930632222fd4a983794fb584a05f Mon Sep 17 00:00:00 2001 From: Bradley Lowekamp Date: Wed, 13 Nov 2024 11:26:34 -0500 Subject: [PATCH] ENH: Mangle HDF5 functions re-defined The HDF5 library is adding a C-Preprocessor redefinitons pf function to automatically add context based information. --- .../HDF5/src/itkhdf5/src/H5Apublic.h | 36 ++++++++++++------- .../HDF5/src/itkhdf5/src/H5Dpublic.h | 27 +++++++++----- .../HDF5/src/itkhdf5/src/H5Fpublic.h | 15 +++++--- .../HDF5/src/itkhdf5/src/H5Gpublic.h | 18 ++++++---- .../HDF5/src/itkhdf5/src/H5Lpublic.h | 18 ++++++---- .../HDF5/src/itkhdf5/src/H5Mpublic.h | 10 +++--- .../HDF5/src/itkhdf5/src/H5Opublic.h | 21 +++++++---- .../HDF5/src/itkhdf5/src/H5Rpublic.h | 9 +++-- .../HDF5/src/itkhdf5/src/H5Tpublic.h | 9 +++-- .../HDF5/src/itkhdf5/src/H5VLconnector.h | 21 +++++++---- .../HDF5/src/itkhdf5/src/itk_hdf5_mangle.h.in | 9 +++-- 11 files changed, 127 insertions(+), 66 deletions(-) diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Apublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Apublic.h index 7c28c0a24a2..e59888501e0 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Apublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Apublic.h @@ -1042,18 +1042,30 @@ H5_DLL herr_t H5Arename_by_name(hid_t loc_id, const char *obj_name, const char * /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5A_MODULE -#define H5Acreate_async(...) H5Acreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Acreate_by_name_async(...) H5Acreate_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Aopen_async(...) H5Aopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Aopen_by_name_async(...) H5Aopen_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Aopen_by_idx_async(...) H5Aopen_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Awrite_async(...) H5Awrite_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Aread_async(...) H5Aread_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Arename_async(...) H5Arename_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Arename_by_name_async(...) H5Arename_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Aexists_async(...) H5Aexists_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Aexists_by_name_async(...) H5Aexists_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Aclose_async(...) H5Aclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Acreate_async +#define H5Acreate_async(...) HD5_MANGLE_PREFIX##_H5Acreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Acreate_by_name_async +#define H5Acreate_by_name_async(...) HD5_MANGLE_PREFIX##_H5Acreate_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Aopen_async +#define H5Aopen_async(...) HD5_MANGLE_PREFIX##_H5Aopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Aopen_by_name_async +#define H5Aopen_by_name_async(...) HD5_MANGLE_PREFIX##_H5Aopen_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Aopen_by_idx_async +#define H5Aopen_by_idx_async(...) HD5_MANGLE_PREFIX##_H5Aopen_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Awrite_async +#define H5Awrite_async(...) HD5_MANGLE_PREFIX##_H5Awrite_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Aread_async +#define H5Aread_async(...) HD5_MANGLE_PREFIX##_H5Aread_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Arename_async +#define H5Arename_async(...) HD5_MANGLE_PREFIX##_H5Arename_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Arename_by_name_async +#define H5Arename_by_name_async(...) HD5_MANGLE_PREFIX##_H5Arename_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Aexists_async +#define H5Aexists_async(...) HD5_MANGLE_PREFIX##_H5Aexists_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Aexists_by_name_async +#define H5Aexists_by_name_async(...) HD5_MANGLE_PREFIX##_H5Aexists_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Aclose_async +#define H5Aclose_async(...) HD5_MANGLE_PREFIX##_H5Aclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Dpublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Dpublic.h index 8692acdeff8..5d0d0111f77 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Dpublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Dpublic.h @@ -1660,15 +1660,24 @@ H5_DLL herr_t H5Dget_chunk_index_type(hid_t did, H5D_chunk_index_t *idx_type); /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5D_MODULE -#define H5Dcreate_async(...) H5Dcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dopen_async(...) H5Dopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dget_space_async(...) H5Dget_space_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dread_async(...) H5Dread_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dread_multi_async(...) H5Dread_multi_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dwrite_async(...) H5Dwrite_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dwrite_multi_async(...) H5Dwrite_multi_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dset_extent_async(...) H5Dset_extent_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Dclose_async(...) H5Dclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dcreate_async +#define H5Dcreate_async(...) HD5_MANGLE_PREFIX##_H5Dcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dopen_async +#define H5Dopen_async(...) HD5_MANGLE_PREFIX##_H5Dopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dget_space_async +#define H5Dget_space_async(...) HD5_MANGLE_PREFIX##_H5Dget_space_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dread_async +#define H5Dread_async(...) HD5_MANGLE_PREFIX##_H5Dread_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dread_multi_async +#define H5Dread_multi_async(...) HD5_MANGLE_PREFIX##_H5Dread_multi_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dwrite_async +#define H5Dwrite_async(...) HD5_MANGLE_PREFIX##_H5Dwrite_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dwrite_multi_async +#define H5Dwrite_multi_async(...) HD5_MANGLE_PREFIX##_H5Dwrite_multi_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dset_extent_async +#define H5Dset_extent_async(...) HD5_MANGLE_PREFIX##_H5Dset_extent_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Dclose_async +#define H5Dclose_async(...) HD5_MANGLE_PREFIX##_H5Dclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Fpublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Fpublic.h index a54e4274302..4e4c62c59a0 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Fpublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Fpublic.h @@ -1853,11 +1853,16 @@ H5_DLL herr_t H5Fformat_convert(hid_t fid); /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5F_MODULE -#define H5Fcreate_async(...) H5Fcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Fopen_async(...) H5Fopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Freopen_async(...) H5Freopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Fflush_async(...) H5Fflush_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Fclose_async(...) H5Fclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Fcreate_async +#define H5Fcreate_async(...) HD5_MANGLE_PREFIX##_H5Fcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Fopen_async +#define H5Fopen_async(...) HD5_MANGLE_PREFIX##_H5Fopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Freopen_async +#define H5Freopen_async(...) HD5_MANGLE_PREFIX##_H5Freopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Fflush_async +#define H5Fflush_async(...) HD5_MANGLE_PREFIX##_H5Fflush_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Fclose_async +#define H5Fclose_async(...) HD5_MANGLE_PREFIX##_H5Fclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Gpublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Gpublic.h index 38880e787b7..488110b62ab 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Gpublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Gpublic.h @@ -496,12 +496,18 @@ H5_DLL herr_t H5Gclose_async(hid_t group_id, hid_t es_id); /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5G_MODULE -#define H5Gcreate_async(...) H5Gcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Gopen_async(...) H5Gopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Gget_info_async(...) H5Gget_info_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Gget_info_by_name_async(...) H5Gget_info_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Gget_info_by_idx_async(...) H5Gget_info_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Gclose_async(...) H5Gclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Gcreate_async +#define H5Gcreate_async(...) HD5_MANGLE_PREFIX##_H5Gcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Gopen_async +#define H5Gopen_async(...) HD5_MANGLE_PREFIX##_H5Gopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Gget_info_async +#define H5Gget_info_async(...) HD5_MANGLE_PREFIX##_H5Gget_info_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Gget_info_by_name_async +#define H5Gget_info_by_name_async(...) HD5_MANGLE_PREFIX##_H5Gget_info_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Gget_info_by_idx_async +#define H5Gget_info_by_idx_async(...) HD5_MANGLE_PREFIX##_H5Gget_info_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Gclose_async +#define H5Gclose_async(...) HD5_MANGLE_PREFIX##_H5Gclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Lpublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Lpublic.h index ec325b8ad77..296b609f2b5 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Lpublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Lpublic.h @@ -1426,12 +1426,18 @@ H5_DLL herr_t H5Lcreate_external(const char *file_name, const char *obj_name, hi /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5L_MODULE -#define H5Lcreate_hard_async(...) H5Lcreate_hard_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Lcreate_soft_async(...) H5Lcreate_soft_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Ldelete_async(...) H5Ldelete_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Ldelete_by_idx_async(...) H5Ldelete_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Lexists_async(...) H5Lexists_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Literate_async(...) H5Literate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Lcreate_hard_async +#define H5Lcreate_hard_async(...) HD5_MANGLE_PREFIX##_H5Lcreate_hard_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Lcreate_soft_async +#define H5Lcreate_soft_async(...) HD5_MANGLE_PREFIX##_H5Lcreate_soft_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Ldelete_async +#define H5Ldelete_async(...) HD5_MANGLE_PREFIX##_H5Ldelete_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Ldelete_by_idx_async +#define H5Ldelete_by_idx_async(...) HD5_MANGLE_PREFIX##_H5Ldelete_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Lexists_async +#define H5Lexists_async(...) HD5_MANGLE_PREFIX##_H5Lexists_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Literate_async +#define H5Literate_async(...) HD5_MANGLE_PREFIX##_H5Literate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Mpublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Mpublic.h index 3d8a8c7f7c8..00d5933ae1c 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Mpublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Mpublic.h @@ -650,11 +650,11 @@ H5_DLL herr_t H5Mdelete(hid_t map_id, hid_t key_mem_type_id, const void *key, hi /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5M_MODULE -#define H5Mcreate_async(...) H5Mcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Mopen_async(...) H5Mopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Mclose_async(...) H5Mclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Mput_async(...) H5Mput_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Mget_async(...) H5Mget_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#define H5Mcreate_async(...) HD5_MANGLE_PREFIX##_H5Mcreate_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#define H5Mopen_async(...) HD5_MANGLE_PREFIX##_H5Mopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#define H5Mclose_async(...) HD5_MANGLE_PREFIX##_H5Mclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#define H5Mput_async(...) HD5_MANGLE_PREFIX##_H5Mput_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#define H5Mget_async(...) HD5_MANGLE_PREFIX##_H5Mget_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. */ diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Opublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Opublic.h index 28954d4cb45..4312a56e361 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Opublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Opublic.h @@ -1660,13 +1660,20 @@ H5_DLL herr_t H5Otoken_from_str(hid_t loc_id, const char *token_str, H5O_token_t /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5O_MODULE -#define H5Oopen_async(...) H5Oopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Oopen_by_idx_async(...) H5Oopen_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Oget_info_by_name_async(...) H5Oget_info_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Oclose_async(...) H5Oclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Oflush_async(...) H5Oflush_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Orefresh_async(...) H5Orefresh_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Ocopy_async(...) H5Ocopy_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Oopen_async +#define H5Oopen_async(...) HD5_MANGLE_PREFIX##_H5Oopen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Oopen_by_idx_async +#define H5Oopen_by_idx_async(...) HD5_MANGLE_PREFIX##_H5Oopen_by_idx_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Oget_info_by_name_async +#define H5Oget_info_by_name_async(...) HD5_MANGLE_PREFIX##_H5Oget_info_by_name_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Oclose_async +#define H5Oclose_async(...) HD5_MANGLE_PREFIX##_H5Oclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Oflush_async +#define H5Oflush_async(...) HD5_MANGLE_PREFIX##_H5Oflush_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Orefresh_async +#define H5Orefresh_async(...) HD5_MANGLE_PREFIX##_H5Orefresh_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Ocopy_async +#define H5Ocopy_async(...) HD5_MANGLE_PREFIX##_H5Ocopy_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Rpublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Rpublic.h index 9e1f73f1c00..e869fd694a5 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Rpublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Rpublic.h @@ -601,9 +601,12 @@ H5_DLL ssize_t H5Rget_attr_name(const H5R_ref_t *ref_ptr, char *name, size_t siz /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5R_MODULE -#define H5Ropen_object_async(...) H5Ropen_object_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Ropen_region_async(...) H5Ropen_region_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Ropen_attr_async(...) H5Ropen_attr_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Ropen_object_async +#define H5Ropen_object_async(...) HD5_MANGLE_PREFIX##_H5Ropen_object_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Ropen_region_async +#define H5Ropen_region_async(...) HD5_MANGLE_PREFIX##_H5Ropen_region_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Ropen_attr_async +#define H5Ropen_attr_async(...) HD5_MANGLE_PREFIX##_H5Ropen_attr_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. */ diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Tpublic.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Tpublic.h index 57a5b6047c3..c8c200f27c3 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Tpublic.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5Tpublic.h @@ -2801,9 +2801,12 @@ H5_DLL herr_t H5Treclaim(hid_t type_id, hid_t space_id, hid_t plist_id, void *bu /* (Must be defined _after_ the function prototype) */ /* (And must only defined when included in application code, not the library) */ #ifndef H5T_MODULE -#define H5Tcommit_async(...) H5Tcommit_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Topen_async(...) H5Topen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5Tclose_async(...) H5Tclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Tcommit_async +#define H5Tcommit_async(...) HD5_MANGLE_PREFIX##_H5Tcommit_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Topen_async +#define H5Topen_async(...) HD5_MANGLE_PREFIX##_H5Topen_async(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5Tclose_async +#define H5Tclose_async(...) HD5_MANGLE_PREFIX##_H5Tclose_async(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. */ diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5VLconnector.h b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5VLconnector.h index 4bf082397f8..7985a9f17ca 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5VLconnector.h +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/H5VLconnector.h @@ -1141,13 +1141,20 @@ H5_DLL herr_t H5VLrequest_optional_op(void *req, hid_t connector_id, H5VL_option /* (And must only defined when included in application code, not the library) */ #ifndef H5VL_MODULE /* Inject application compile-time macros into function calls */ -#define H5VLattr_optional_op(...) H5VLattr_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5VLdataset_optional_op(...) H5VLdataset_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5VLdatatype_optional_op(...) H5VLdatatype_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5VLfile_optional_op(...) H5VLfile_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5VLgroup_optional_op(...) H5VLgroup_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5VLlink_optional_op(...) H5VLlink_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) -#define H5VLobject_optional_op(...) H5VLobject_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5VLattr_optional_op +#define H5VLattr_optional_op(...) HD5_MANGLE_PREFIX##_H5VLattr_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5VLdataset_optional_op +#define H5VLdataset_optional_op(...) HD5_MANGLE_PREFIX##_H5VLdataset_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5VLdatatype_optional_op +#define H5VLdatatype_optional_op(...) HD5_MANGLE_PREFIX##_H5VLdatatype_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5VLfile_optional_op +#define H5VLfile_optional_op(...) HD5_MANGLE_PREFIX##_H5VLfile_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5VLgroup_optional_op +#define H5VLgroup_optional_op(...) HD5_MANGLE_PREFIX##_H5VLgroup_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5VLlink_optional_op +#define H5VLlink_optional_op(...) HD5_MANGLE_PREFIX##_H5VLlink_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) +#undef H5VLobject_optional_op +#define H5VLobject_optional_op(...) HD5_MANGLE_PREFIX##_H5VLobject_optional_op(__FILE__, __func__, __LINE__, __VA_ARGS__) /* Define "wrapper" versions of function calls, to allow compile-time values to * be passed in by language wrapper or library layer on top of HDF5. diff --git a/Modules/ThirdParty/HDF5/src/itkhdf5/src/itk_hdf5_mangle.h.in b/Modules/ThirdParty/HDF5/src/itkhdf5/src/itk_hdf5_mangle.h.in index 189ec501769..da39276089a 100644 --- a/Modules/ThirdParty/HDF5/src/itkhdf5/src/itk_hdf5_mangle.h.in +++ b/Modules/ThirdParty/HDF5/src/itkhdf5/src/itk_hdf5_mangle.h.in @@ -68,8 +68,14 @@ Where *mangle.txt includes the results per platform from above along with an old After building, note any duplicate symbol warnings and remove corresponding definitions that are delegated to versioned definitions, e.g. remove mangling for H5Fget_info but leave it for H5Fget_info1 and H5Fget_info2 + +There are a number of HDF5 functions, mostly with this suffix "_async", which are redefined in the HDF5 library to have +a different signature. These functions also redefined here to mangle then names, but the public library header files +also have to be modified correctly apply the signature to the mangled name. */ +#define HD5_MANGLE_PREFIX @MANGLE_PREFIX@ + #define ALL_ @MANGLE_PREFIX@_ALL_ #define ALPHA_B16 @MANGLE_PREFIX@_ALPHA_B16 #define ALPHA_B16_ @MANGLE_PREFIX@_ALPHA_B16_ @@ -2186,10 +2192,7 @@ e.g. remove mangling for H5Fget_info but leave it for H5Fget_info1 and H5Fget_in #define H5MF_try_extend @MANGLE_PREFIX@_H5MF_try_extend #define H5MF_try_shrink @MANGLE_PREFIX@_H5MF_try_shrink #define H5MF_xfree @MANGLE_PREFIX@_H5MF_xfree -#define H5MM_calloc @MANGLE_PREFIX@_H5MM_calloc #define H5MM_get_alloc_stats @MANGLE_PREFIX@_H5MM_get_alloc_stats -#define H5MM_malloc @MANGLE_PREFIX@_H5MM_malloc -#define H5MM_memcpy @MANGLE_PREFIX@_H5MM_memcpy #define H5MM_realloc @MANGLE_PREFIX@_H5MM_realloc #define H5MM_strdup @MANGLE_PREFIX@_H5MM_strdup #define H5MM_strndup @MANGLE_PREFIX@_H5MM_strndup