Control: tags -1 + patch

Gilles Filippini a écrit le 09/06/2026 à 14:38 :
Source: silo-llnl
Version: 4.11-6.1
Severity: important
Tags: ftbfs

Hi,

During a test rebuild of HDF5's reverse dependcies against HDF5 2.1.0
currently in experimental, silo-llnl FTBFS with:

silo_hdf5.c: In function 'db_hdf5_init':
silo_hdf5.c:961:60: error: passing argument 5 of 'db_hdf5_put_cmemb' from 
incompatible pointer type [-Wincompatible-pointer-types]
   961 |         db_hdf5_put_cmemb(_mt, #NAME, OFFSET(_m, NAME), 1, &_size, 
_tmp_m);   \
       |                                                            ^~~~~~
       |                                                            |
       |                                                            hsize_t * 
{aka long unsigned int *}
silo_hdf5.c:2202:9: note: in expansion of macro 'MEMBER_3'
  2202 |         MEMBER_3(double,        min_extents);
       |         ^~~~~~~~
silo_hdf5.c:1940:41: note: expected 'const int *' but argument is of type 
'hsize_t *' {aka 'long unsigned int *'}
  1940 |                   int ndims, int const *dim, hid_t type)
       |                              ~~~~~~~~~~~^~~
silo_hdf5.c:963:54: error: passing argument 5 of 'db_hdf5_put_cmemb' from 
incompatible pointer type [-Wincompatible-pointer-types]
   963 |             db_hdf5_put_cmemb(_ft, #NAME, _f_off, 1, &_size, _tmp_f);  
       \
       |                                                      ^~~~~~
       |                                                      |
       |                                                      hsize_t * {aka 
long unsigned int *}
silo_hdf5.c:2202:9: note: in expansion of macro 'MEMBER_3'
  2202 |         MEMBER_3(double,        min_extents);
       |         ^~~~~~~~
silo_hdf5.c:1940:41: note: expected 'const int *' but argument is of type 
'hsize_t *' {aka 'long unsigned int *'}
  1940 |                   int ndims, int const *dim, hid_t type)
       |                              ~~~~~~~~~~~^~~

It seems the source tree has to be adapted to support this new major release of 
HDF5.
Please review the attached patch.

Best,
_g.
diff -Nru silo-llnl-4.11/debian/changelog silo-llnl-4.11/debian/changelog
--- silo-llnl-4.11/debian/changelog     2024-11-20 13:58:02.000000000 +0100
+++ silo-llnl-4.11/debian/changelog     2026-06-20 17:29:16.000000000 +0200
@@ -1,3 +1,10 @@
+silo-llnl (4.11-6.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Upstream patch to fix FTBFS against HDF5 2.1.0
+
+ -- Gilles Filippini <[email protected]>  Sat, 20 Jun 2026 17:29:16 +0200
+
 silo-llnl (4.11-6.1) unstable; urgency=medium
 
   [ Gilles Filippini ]
diff -Nru silo-llnl-4.11/debian/patches/hdf5-2.1.0.patch 
silo-llnl-4.11/debian/patches/hdf5-2.1.0.patch
--- silo-llnl-4.11/debian/patches/hdf5-2.1.0.patch      1970-01-01 
01:00:00.000000000 +0100
+++ silo-llnl-4.11/debian/patches/hdf5-2.1.0.patch      2026-06-20 
17:29:16.000000000 +0200
@@ -0,0 +1,134 @@
+Description: upstream patches to support HDF5 2.1.0
+
+From 529776e33848e4c5a5aa53ad83837296b08d83d2 Mon Sep 17 00:00:00 2001
+From: "Mark C. Miller" <[email protected]>
+Date: Sun, 23 Nov 2025 18:26:09 -0800
+Subject: [PATCH 3/5] fix snprintf sizes
+
+---
+ tests/test_mat_compression.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: silo-llnl-4.11/src/hdf5_drv/silo_hdf5.c
+===================================================================
+--- silo-llnl-4.11.orig/src/hdf5_drv/silo_hdf5.c
++++ silo-llnl-4.11/src/hdf5_drv/silo_hdf5.c
+@@ -1895,7 +1895,7 @@ db_hdf5_get_obj_dsnames(DBfile *_dbfile,
+  */
+ PRIVATE hid_t
+ db_hdf5_get_cmemb(hid_t compound_type, int membno, int *ndims/*out*/,
+-                  int size[3]/*out*/)
++                  hsize_t size[3]/*out*/)
+ {
+     hid_t       type;
+ 
+@@ -1937,16 +1937,13 @@ db_hdf5_get_cmemb(hid_t compound_type, i
+  */
+ PRIVATE int
+ db_hdf5_put_cmemb(hid_t compound_type, char const *name, size_t offset,
+-                  int ndims, int const *dim, hid_t type)
++                  int ndims, hsize_t const *dim, hid_t type)
+ {
+     int         retval;
+     
+ #if (H5_VERS_MAJOR==1 && H5_VERS_MINOR>=4) || H5_VERS_MAJOR>1
+     if (ndims) {
+-        hsize_t bigdims[16];
+-        int i;
+-        for (i=0; i<ndims; i++) bigdims[i] = dim[i];
+-        type = H5Tarray_create(type, ndims, bigdims, NULL);
++        type = H5Tarray_create(type, ndims, dim, NULL);
+     }
+     retval = H5Tinsert(compound_type, name, offset, type);
+     if (ndims) H5Tclose(type);
+@@ -3799,10 +3796,11 @@ db_hdf5_get_comp_var(DBfile *_dbfile, ch
+                 break;
+             case H5T_ARRAY:
+                 {
+-                    int i, ndims, size[3], len = 1;
++                    int i, ndims, len = 1;
++                    hsize_t size[3];
+                     comptype = db_hdf5_get_cmemb(stypeid, membno, &ndims, 
size);
+                     for (i = 0; i < ndims; i++)
+-                        len *= size[i];
++                        len *= (int) size[i];
+                     numvals = len;
+                     break;
+                 }
+@@ -6484,7 +6482,8 @@ copy_obj(hid_t hobj, char const *name, v
+         s1024 = H5Tcopy(H5T_C_S1);
+         H5Tset_size(s1024, 1024);
+         for (i=0; i<nmembs; i++) {
+-            int ndims, j, memb_size[4];
++            int ndims, j;
++            hsize_t memb_size[4];
+             hid_t member_type = db_hdf5_get_cmemb(atype, i, &ndims, 
memb_size);
+             
+             if (H5Tget_class(member_type) == H5T_STRING)
+@@ -6941,7 +6940,8 @@ db_hdf5_GetComponentStuff(DBfile *_dbfil
+     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
+     static char *me = "db_hdf5_GetComponent";
+     hid_t       o=-1, attr=-1, atype=-1, ftype=-1, mtype=-1, dset=-1;
+-    int         datatype, mno, n, ndims, i, dim[3], mult, complen, mnof=-1, 
mnofidx=-1;
++    int         datatype, mno, n, ndims, i, mult, complen, mnof=-1, 
mnofidx=-1;
++    hsize_t     dim[3];
+     char        *mnofname=0;
+     void        *retval=NULL;
+     
+@@ -8630,7 +8630,8 @@ db_hdf5_GetObject(DBfile *_dbfile, char
+     hid_t       o=-1, attr=-1, atype=-1, h5str=-1;
+     char        *file_value=NULL, *mem_value=NULL, *bkg=NULL, bigname[1024];
+     DBObjectType objtype;
+-    int         _objtype, nmembs, i, j, memb_size[4];
++    int         _objtype, nmembs, i, j;
++    hsize_t     memb_size[4];
+     DBobject    *obj=NULL;
+     size_t      asize, nelmts, msize;
+ 
+Index: silo-llnl-4.11/src/taurus/silo_taurus.c
+===================================================================
+--- silo-llnl-4.11.orig/src/taurus/silo_taurus.c
++++ silo-llnl-4.11/src/taurus/silo_taurus.c
+@@ -1776,7 +1776,7 @@ db_taur_cd(TAURUSfile *taurus, char cons
+     int            state;
+     char          *dir;
+     char           opath[160];
+-    char           npath[160];
++    char           npath[256];
+ 
+     /*
+      * Form the new path.
+From 99b6a48a47d5731dde0c90d9009568bc8618c940 Mon Sep 17 00:00:00 2001
+From: "Mark C. Miller" <[email protected]>
+Date: Thu, 20 Nov 2025 18:00:59 -0800
+Subject: [PATCH] HDmemcmp->memcmp
+
+---
+ src/hdf5_drv/H5FDsilo.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+Index: silo-llnl-4.11/src/hdf5_drv/H5FDsilo.c
+===================================================================
+--- silo-llnl-4.11.orig/src/hdf5_drv/H5FDsilo.c
++++ silo-llnl-4.11/src/hdf5_drv/H5FDsilo.c
+@@ -1796,16 +1796,16 @@ H5FD_silo_cmp(const H5FD_t *_f1, const H
+      * determine if the values are the same or not.  The actual return value
+      * shouldn't really matter...
+      */
+-    if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))<0) return -1;
+-    if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) return 1;
++    if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t))<0) return -1;
++    if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) return 1;
+ #endif /* H5_DEV_T_IS_SCALAR */
+ 
+ #ifndef H5_VMS
+     if (f1->inode < f2->inode) return -1;
+     if (f1->inode > f2->inode) return 1;
+ #else
+-    if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))<0) return -1;
+-    if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))>0) return 1;
++    if(memcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))<0) return -1;
++    if(memcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))>0) return 1;
+ #endif /*H5_VMS*/
+ 
+ #endif
diff -Nru silo-llnl-4.11/debian/patches/series 
silo-llnl-4.11/debian/patches/series
--- silo-llnl-4.11/debian/patches/series        2024-11-20 13:58:02.000000000 
+0100
+++ silo-llnl-4.11/debian/patches/series        2026-06-20 17:29:16.000000000 
+0200
@@ -10,3 +10,4 @@
 implicit-fn-decl.patch
 gcc-14.patch
 hdf5-1.14.patch
+hdf5-2.1.0.patch

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to