science/hdf5 ABI broken
Steve Kargl
sgk at troutmask.apl.washington.edu
Mon May 30 19:01:23 UTC 2016
The recent update from hdf5 1.8.16 to 1.10.0 has introduced
an issue with ABI incompatibility. Thus, anyone that has
code written to the 1.8.16 ABI may find that their code no
longer functions with 1.10.0. This should have been noted
in ports/UPDATING.
To fix the problem (currently under testin), one needs to
apply the following patches.
Index: Makefile
===================================================================
--- Makefile (revision 415194)
+++ Makefile (working copy)
@@ -23,7 +23,8 @@
CONFIGURE_ARGS= --enable-cxx \
--enable-hl \
--enable-instrument \
- --enable-strict-format-checks
+ --enable-strict-format-checks \
+ --with-default-api-version=v18
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
MAKE_JOBS_UNSAFE= yes
--- work/hdf5-1.10.0/fortran/src/H5_f.c.orig 2016-05-30 11:51:55.838813000 -0700
+++ work/hdf5-1.10.0/fortran/src/H5_f.c 2016-05-30 11:52:46.901739000 -0700
@@ -227,14 +227,14 @@
/*
* FIND H5T_NATIVE_REAL_C_LONG_DOUBLE
*/
-#if H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0
+#if FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0
if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(float)) {
if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
} /*end if */
else if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(double)) {
if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value;
} /*end if */
-# if H5_FORTRAN_HAVE_C_LONG_DOUBLE!=0
+# if FORTRAN_HAVE_C_LONG_DOUBLE!=0
else if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(long double)) {
if ( H5_PAC_C_MAX_REAL_PRECISION >= H5_PAC_FC_MAX_REAL_PRECISION) {
if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
Please supply either a science/hdf5-1.8 port, revert the 1.10.0
update, or consider the above patches.
--
Steve
More information about the freebsd-ports
mailing list