Gilles Filippini a écrit le 02/12/2016 à 23:26 : > Sebastiaan Couwenberg a écrit le 02/12/2016 à 15:34 : >> On 12/02/2016 09:55 AM, Sebastiaan Couwenberg wrote: >>> On 12/01/2016 07:48 PM, Sebastiaan Couwenberg wrote: >>>> On Wed, 30 Nov 2016 15:10:03 +0000 Iain Lane wrote: >>>>> This package FTBFS on 32 bit arches (works on amd64 and other 64 bit >>>>> arches), maybe due to the new hdf5 >>>> >>>> Quite likely, since hdf-eos5 hasn't been rebuilt for the hdf5 transition >>>> yet. I suspect this issue to fix itself once that's done. >>> >>> It did not, but did only fail on 32-bit architectures. >> >> Gilles, these failures seem to be caused by the hid_t type change from >> 32-bit to a 64-bit value. I'm not sure how to fix it for ruby-hdfeos5, >> can you maybe provide a patch? > > Damn, I tested the build on amd64 only :/ > I've tried fixing the 'incompatible pointer type' warning, but it > deosn't change anything wrt the test suite. > Is there a way to ensure first that hdf-eos5 works fine on 32 bit archs?
CC-ing Alastair, maintainer of hdf-eos5.
AIUI the problem lies in hdf-eos5. I've ran a very simple C test made
after the first lines of test/test_gd.rb (source attached), both on
amd64 and i386. It succeeds on amd64 and fails on i386 at the
HE5_GDdetach step with:
$ ./myhe5-32
bufsize = 19
ColumnAmountAerosol
HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 4142823168:
#000: GDapi.c line 1140 in HE5_GDchkgdid(): Cannot get the Grid index
major: Invalid arguments to routine
minor: Out of range
HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 4142823168:
#000: EHapi.c line 2206 in HE5_EHchkfid(): Invalid file ID: 0. ID
should range from 67108864 to 67109064 .
major: Invalid arguments to routine
minor: Bad value
HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 4142823168:
#000: GDapi.c line 1151 in HE5_GDchkgdid(): Checking for file ID failed.
major: Invalid arguments to routine
minor: Out of range
HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 4142823168:
#000: GDapi.c line 12623 in HE5_GDdetach(): Checking for grid ID failed.
major: Invalid arguments to routine
minor: Out of range
Thanks,
_g.
#include <HE5_HdfEosDef.h>
const char *filename = "OMI-Aura_L3-OMAEROe_2008m0101_v003-2009m0114t114202.he5";
int main(int argc, char *argv[]) {
hid_t fid, gdid;
long ngrid, bufsize = 0;
herr_t ret;
char *buffer;
fid = HE5_EHopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT);
ngrid = HE5_GDinqgrid(filename, NULL, &bufsize);
printf("bufsize = %ld\n", bufsize);
buffer = malloc((size_t)bufsize+1);
buffer[bufsize] = '\0';
ngrid = HE5_GDinqgrid(filename, buffer, &bufsize);
printf("%s\n", buffer);
gdid = HE5_GDattach(fid, buffer);
HE5_GDdetach(gdid);
free(buffer);
ret = HE5_EHclose(fid);
return ret;
}
signature.asc
Description: OpenPGP digital signature

