Hi,
I am experiencing the following issue with hdf5 and gcc 4.8.0
Consider this very simple test
#include <hdf5.h>
int main() {
switch (H5Tget_order(H5T_NATIVE_LDOUBLE)) {
case H5T_ORDER_LE:
printf("H5Tget_order(H5T_NATIVE_LDOUBLE) = H5T_ORDER_LE\n");
break;
case H5T_ORDER_BE:
printf("H5Tget_order(H5T_NATIVE_LDOUBLE) = H5T_ORDER_BE\n");
break;
case H5T_ORDER_VAX:
printf("H5Tget_order(H5T_NATIVE_LDOUBLE) = H5T_ORDER_VAX\n");
break;
case H5T_ORDER_MIXED:
printf("H5Tget_order(H5T_NATIVE_LDOUBLE) = H5T_ORDER_MIXED\n");
break;
case H5T_ORDER_NONE:
printf("H5Tget_order(H5T_NATIVE_LDOUBLE) = H5T_ORDER_NONE\n");
break;
default:
printf("here are dragons\n");
}
return 0;
}
on the same x86_64 GNU/Linux machine I get
$ hdf5-1.8.11-gcc-4.7.0/my_test # compiled with gcc 4.7.0
H5Tget_order(H5T_NATIVE_LDOUBLE) = H5T_ORDER_LE
$ hdf5-1.8.11-gcc-4.8.0/my_test # compiled with gcc 4.8.0
H5Tget_order(H5T_NATIVE_LDOUBLE) = H5T_ORDER_VAX
So H5T_NATIVE_LDOUBLE is mis-detected. I tried to dig deeper and basically
the fault must be in src/H5detect.c which is used to generate the
definitions in src/H5Tinit.c
I could not figure out what H5detect.c does wrong (it is not very readable,
given its extensive use of macros) but the compiler does emit a lot of
warnings (see https://gist.github.com/andreabedini/6419975).
I think this must be related to the failure of dt_arith long double test
observed recently.
Any suggestion on how to fix this ?
Best wishes,
Andrea
--
Andrea Bedini <[email protected]>
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org