Skip to Content.
Sympa Menu

h5part - Re: [H5part] [Fwd: Small patch for H5Part with libhdf5-serial-1.8.4 on Debian]

h5part AT lists.psi.ch

Subject: H5Part development and discussion

List archive

Re: [H5part] [Fwd: Small patch for H5Part with libhdf5-serial-1.8.4 on Debian]


Chronological Thread 
  • From: Andreas Adelmann <andreas.adelmann AT psi.ch>
  • To: Wes Bethel <ewbethel AT lbl.gov>
  • Cc: h5part AT lists.psi.ch
  • Subject: Re: [H5part] [Fwd: Small patch for H5Part with libhdf5-serial-1.8.4 on Debian]
  • Date: Wed, 21 Jul 2010 17:42:56 +0200
  • List-archive: <https://lists.web.psi.ch/pipermail/h5part/>
  • List-id: H5Part development and discussion <h5part.lists.psi.ch>


I have been using H5Part-1.4.0 for a long time


I like that :-)

AA




Hello,

I have been using H5Part-1.4.0 for a long time, with both HDF5 1.6 and 1.8,
using H5_USE_16_API in the latter case.

Now I have upgraded to 1.6.1 and I found that on Debian the compilation fails
because of two errors in H5Part.c. The following patch solves it:


Index: src/H5Part.c
===================================================================
--- src/H5Part.c        (Revision 2813)
+++ src/H5Part.c        (Arbeitskopie)
@@ -2293,7 +2293,11 @@
       data.pattern = pattern;

#ifdef H5PART_HAVE_HDF5_18
-       hid_t child_id = H5Gopen( group_id, group_name, H5P_DEFAULT );
+       hid_t child_id = H5Gopen( group_id, group_name
+#ifndef H5_USE_16_API
+                                  , H5P_DEFAULT
+#endif
+                                  );
       if ( child_id < 0 ) return child_id;
       herr = H5Literate( child_id, H5_INDEX_NAME, H5_ITER_INC, 0,
                       _H5Part_iteration_operator2, &data );
@@ -2338,7 +2342,11 @@
       data.len = (size_t)len_obj_name;

#ifdef H5PART_HAVE_HDF5_18
-       hid_t child_id = H5Gopen ( group_id, group_name, H5P_DEFAULT );
+       hid_t child_id = H5Gopen ( group_id, group_name
+#ifndef H5_USE_16_API
+                                  , H5P_DEFAULT
+#endif
+                                   );
       if ( child_id < 0 ) return child_id;
       herr = H5Literate ( child_id, H5_INDEX_NAME, H5_ITER_INC, 0,
                       _H5Part_iteration_operator2, &data );


The reason is that on Debian the HDF5 is configured to define H5_USE_16_API to
one. So configure detects that it is HDF5 1.8, but still the 1.6 API is used.

With this patch it works on both Debian testing and another Linux system where
I use a HDF5 1.8.2 compiled by myself, where USE_16 is not set.

I use Debian testing and have these HDF5 versions installed.

ii  libhdf5-serial-1.8.4                                 1.8.4-patch1-2                                       
Hierarchical Data Format 5 (HDF5) - runtime files - serial version
ii  libhdf5-serial-dev                                   1.8.4-patch1-2                                       
Hierarchical Data Format 5 (HDF5) - development files - serial version

I also found version 1.6.0 to be broken, it compiled but it did not work on my
Debian system.

Best regards
Johannes







Archive powered by MHonArc 2.6.19.

Top of Page