changeset 5430:98bcc037fad7

* src/hdf5.mk: Update version to 1.12.0. Use cmake for Windows cross targets. * src/hdf5-1-fixes.patch: Remove patch. * src/mingw-hdf5-1.patch: Update patch. * dist-files.mk: Remove file from list. * src/of-communictaions.mk: Use pkg-config for linking in hdf5.
author Markus Mützel <markus.muetzel@gmx.de>
date Mon, 25 May 2020 18:14:52 +0200
parents a0c6433aca80
children 440ce30431c2
files dist-files.mk src/hdf5-1-fixes.patch src/hdf5.mk src/mingw-hdf5-1.patch src/of-communications.mk
diffstat 5 files changed, 508 insertions(+), 216 deletions(-) [+]
line wrap: on
line diff
--- a/dist-files.mk	Wed May 27 14:14:50 2020 -0400
+++ b/dist-files.mk	Mon May 25 18:14:52 2020 +0200
@@ -180,7 +180,6 @@
   guile-test.c \
   guile.mk \
   harfbuzz.mk \
-  hdf5-1-fixes.patch \
   hdf5.mk \
   hunspell-test.cpp \
   hunspell.mk \
--- a/src/hdf5-1-fixes.patch	Wed May 27 14:14:50 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-diff -uNr a/config/gnu-flags b/config/gnu-flags
---- a/config/gnu-flags	2012-10-11 13:31:46.000000000 -0400
-+++ b/config/gnu-flags	2014-08-20 14:36:48.118651735 -0400
-@@ -146,7 +146,7 @@
-     esac
- 
-     # General
--    H5_CFLAGS="$H5_CFLAGS $arch -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
-+    H5_CFLAGS="$H5_CFLAGS $arch -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
- 
-     # Production
-     case "$cc_vendor-$cc_version" in
--- a/src/hdf5.mk	Wed May 27 14:14:50 2020 -0400
+++ b/src/hdf5.mk	Mon May 25 18:14:52 2020 +0200
@@ -3,97 +3,29 @@
 
 PKG             := hdf5
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 1.8.14
-$(PKG)_CHECKSUM := 3c48bcb0d5fb21a3aa425ed035c08d8da3d5483a
+$(PKG)_VERSION  := 1.12.0
+$(PKG)_CHECKSUM := 6020131b6e18e6866816b1fe68980512c696c2bf
 $(PKG)_SUBDIR   := $(PKG)-$($(PKG)_VERSION)
 $(PKG)_FILE     := $(PKG)-$($(PKG)_VERSION).tar.bz2
-$(PKG)_URL      := https://www.hdfgroup.org/ftp/HDF5/releases/$(PKG)-$(call SHORT_PKG_VERSION,$(PKG))/$(PKG)-$($(PKG)_VERSION)/src/$($(PKG)_FILE)
+$(PKG)_URL      := https://support.hdfgroup.org/ftp/HDF5/releases/$(PKG)-$(call SHORT_PKG_VERSION,$(PKG))/$(PKG)-$($(PKG)_VERSION)/src/$($(PKG)_FILE)
 $(PKG)_DEPS     :=
-ifeq ($(MXE_SYSTEM),mingw)
-  ifneq ($(MXE_NATIVE_BUILD),yes)
-    $(PKG)_CROSS_CONFIG_OPTIONS := \
-      --disable-largefile \
-      LIBS=-lws2_32 \
-      hdf5_cv_gettimeofday_tz=no \
-      hdf5_cv_vsnprintf_works=yes \
-      hdf5_cv_ldouble_to_integer_works=yes \
-      hdf5_cv_ulong_to_float_accurate=yes \
-      hdf5_cv_fp_to_ullong_accurate=yes \
-      hdf5_cv_fp_to_ullong_right_maximum=no \
-      hdf5_cv_ldouble_to_uint_accurate=yes \
-      hdf5_cv_ullong_to_ldouble_precision=yes \
-      hdf5_cv_fp_to_integer_overflow_works=yes \
-      hdf5_cv_ldouble_to_long_special=no \
-      hdf5_cv_long_to_ldouble_special=no \
-      hdf5_cv_ldouble_to_llong_accurate=yes \
-      hdf5_cv_llong_to_ldouble_correct=yes
-    ifeq ($(TARGET),x86_64-w64-mingw32)
-      $(PKG)_CROSS_CONFIG_OPTIONS += \
-        hdf5_cv_printf_ll=ll \
-        hdf5_cv_system_scope_threads=no \
-        hdf5_cv_ldouble_to_integer_accurate=yes \
-        hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes \
-        ac_cv_sizeof_long=4 \
-        ac_cv_sizeof_long_double=16 \
-        ac_cv_sizeof_long_long=8 \
-        ac_cv_sizeof_off_t=8 \
-        ac_cv_sys_file_offset_bits=64
-    else
-      $(PKG)_CROSS_CONFIG_OPTIONS += \
-        hdf5_cv_printf_ll=l \
-        hdf5_cv_system_scope_threads=yes \
-        hdf5_cv_ulong_to_fp_bottom_bit_accurate=no
-    endif
-  endif
-endif
-
-ifeq ($(MXE_NATIVE_BUILD),yes)
-  $(PKG)_CONFIGURE_ENV := LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)
-endif
 
 define $(PKG)_UPDATE
     echo 'Warning: Updates are temporarily disabled for package hdf5.' >&2;
     echo $(hdf5_VERSION)
 endef
 
-define $(PKG)_BUILD
-    case '$(TARGET)' in \
-      x86_64-w64-mingw32) \
-        cp '$(1)/src/H5Tinit.c.mingw64' '$(1)/src/H5Tinit.c.mingw' \
-      ;; \
-      i686-w64-mingw32) \
-        cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/src/H5Tinit.c.mingw' \
-      ;; \
-      i686-pc-mingw32) \
-        cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/src/H5Tinit.c.mingw' \
-      ;; \
-    esac
-
-    # build GCC and support libraries
+ifeq ($(MXE_NATIVE_BUILD),yes)
+  define $(PKG)_BUILD
+    # build GCC and support libraries using autotools
     cd '$(1)' && aclocal && libtoolize && autoreconf
     mkdir '$(1)/.build'
-    cd '$(1)/.build' && $($(PKG)_CONFIGURE_ENV) '$(1)/configure' \
+    cd '$(1)/.build' && LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) '$(1)/configure' \
         $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
         $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
         $(ENABLE_SHARED_OR_STATIC) \
         --prefix='$(HOST_PREFIX)' \
-        --disable-direct-vfd \
-        $($(PKG)_CROSS_CONFIG_OPTIONS) && $(CONFIGURE_POST_HOOK)
-
-    case '$(MXE_SYSTEM)' in \
-      *mingw*) \
-        echo "#define H5_HAVE_WIN32_API 1" >> $(1)/.build/src/H5pubconf.h; \
-        echo "#define H5_HAVE_MINGW 1" >> $(1)/.build/src/H5pubconf.h; \
-        echo "#define HAVE_WINDOWS_PATH 1" >> $(1)/.build/src/H5pubconf.h; \
-      ;; \
-      *msvc*) \
-        sed -i -e 's/^\(#define H5_SIZEOF_SSIZE_T\) .*/\1 0/' \
-	    '$(1)/.build/src/H5pubconf.h'; \
-        echo "#define H5_HAVE_WIN32_API 1" >> $(1)/.build/src/H5pubconf.h; \
-        echo "#define H5_HAVE_VISUAL_STUDIO 1" >> $(1)/.build/src/H5pubconf.h; \
-        echo "#define HAVE_WINDOWS_PATH 1" >> $(1)/.build/src/H5pubconf.h; \
-      ;; \
-    esac
+        --disable-direct-vfd && $(CONFIGURE_POST_HOOK)
 
     # libtool is somehow created to effectively disallow shared builds
     $(SED) -i 's,allow_undefined_flag="unsupported",allow_undefined_flag="",g' '$(1)/.build/libtool'
@@ -104,5 +36,79 @@
     if [ "$(ENABLE_DEP_DOCS)" == "no" ]; then \
       rm -rf '$(3)$(HOST_PREFIX)/share/hdf5_examples'; \
     fi
-    rm -f '$(3)$(HOST_BINPREFIX)/h5*.exe'
-endef
+  endef
+else
+  define $(PKG)_BUILD
+    # build rules for windows target using cmake
+
+    mkdir '$(1)/pregen'
+    case '$(TARGET)' in \
+      x86_64-w64-mingw32) \
+        cp '$(1)/src/H5Tinit.c.mingw64' '$(1)/pregen/H5Tinit.c' & \
+        cp '$(1)/src/H5lib_settings.c.mingw64' '$(1)/pregen/H5lib_settings.c' \
+      ;; \
+      i686-w64-mingw32) \
+        cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/pregen/H5Tinit.c' & \
+        cp '$(1)/src/H5lib_settings.c.mingw32' '$(1)/pregen/H5lib_settings.c' \
+      ;; \
+      i686-pc-mingw32) \
+        cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/pregen/H5Tinit.c' & \
+        cp '$(1)/src/H5lib_settings.c.mingw32' '$(1)/pregen/H5lib_settings.c' \
+      ;; \
+    esac
+
+    mkdir '$(1)/.build'
+
+    # platform specific settings using https://github.com/steven-varga/HDFGroup-mailinglist/tree/master/crosscompile-2020-mar-25
+    cd '$(1)/.build' && cmake .. -G "Unix Makefiles" \
+      -DCMAKE_INSTALL_PREFIX=${prefix} \
+       $($(PKG)_CMAKE_FLAGS) \
+      -DBUILD_SHARED_LIBS=$(if $(findstring yes,$(BUILD_SHARED)),ON,OFF) \
+      -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+      -DHDF5_INSTALL_BIN_DIR='$(HOST_BINDIR)' \
+      -DHDF5_INSTALL_LIB_DIR='$(HOST_LIBDIR)' \
+      -DHDF5_INSTALL_INCLUDE_DIR='$(HOST_INCDIR)' \
+      -DHDF5_INSTALL_DATA_DIR='$(HOST_PREFIX)/share' \
+      -DHDF5_BUILD_CPP_LIB=OFF \
+      -DHDF5_BUILD_HL_LIB=ON \
+      -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
+      -DHDF5_ENABLE_SZIP_SUPPORT=OFF \
+      -DHDF5_ENABLE_SZIP_ENCODING=OFF \
+      -DBUILD_TESTING=OFF \
+      -DHDF5_USE_PREGEN=ON \
+      -DHDF5_USE_PREGEN_DIR='$(1)/pregen' \
+      $($(PKG)_CCACHE_OPTIONS) \
+      -DHAVE_IOEO_EXITCODE=0 \
+      -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN=1 \
+      -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN__TRYRUN_OUTPUT="" \
+      -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN=1 \
+      -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN__TRYRUN_OUTPUT="" \
+      -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN=0 \
+      -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT="" \
+      -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN=0 \
+      -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT="" \
+      -DH5_DISABLE_SOME_LDOUBLE_CONV_RUN=1 \
+      -DH5_DISABLE_SOME_LDOUBLE_CONV_RUN__TRYRUN_OUTPUT="" \
+      -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN=0 \
+      -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT="" \
+      -DH5_PRINTF_LL_TEST_RUN=1 \
+      -DH5_PRINTF_LL_TEST_RUN__TRYRUN_OUTPUT="" \
+      -DTEST_LFS_WORKS_RUN=0
+
+    $(MAKE) -C '$(1)/.build' -j '$(JOBS)' 
+    $(MAKE) -C '$(1)/.build' -j 1 install DESTDIR=$(3)
+    
+    # FIXME: Change the build rule to create the shared libs with the prefix
+    mv '$(3)/$(HOST_LIBDIR)/hdf5.lib' '$(3)/$(HOST_LIBDIR)/libhdf5.lib'
+    mv '$(3)/$(HOST_LIBDIR)/hdf5_tools.lib' '$(3)/$(HOST_LIBDIR)/libhdf5_tools.lib'
+    mv '$(3)/$(HOST_LIBDIR)/hdf5_hl.lib' '$(3)/$(HOST_LIBDIR)/libhdf5_hl.lib'
+    # Remove version suffix from pkg-config files
+    mv '$(3)/$(HOST_LIBDIR)/pkgconfig/hdf5-$($(PKG)_VERSION).pc' '$(3)/$(HOST_LIBDIR)/pkgconfig/hdf5.pc'
+    mv '$(3)/$(HOST_LIBDIR)/pkgconfig/hdf5_hl-$($(PKG)_VERSION).pc' '$(3)/$(HOST_LIBDIR)/pkgconfig/hdf5_hl.pc'
+
+    if [ "$(ENABLE_DEP_DOCS)" == "no" ]; then \
+      rm -rf '$(HOST_PREFIX)/share/hdf5_examples'; \
+    fi
+  endef
+endif
+
--- a/src/mingw-hdf5-1.patch	Wed May 27 14:14:50 2020 -0400
+++ b/src/mingw-hdf5-1.patch	Mon May 25 18:14:52 2020 +0200
@@ -47,22 +47,11 @@
 +}
 +
 +print ";\n"
-diff -rNu a/configure.ac b/configure.ac
---- a/configure.ac	2012-10-26 20:14:41.000000000 -0400
-+++ b/configure.ac	2014-09-01 11:49:54.457674075 -0400
-@@ -1045,7 +1045,7 @@
- ## Create libtool.  If shared/static libraries are going to be enabled
- ## or disabled, it should happen before these macros.
- LT_PREREQ([2.2])
--LT_INIT([dlopen])
-+LT_INIT([win32-dll dlopen])
- 
- ## ----------------------------------------------------------------------
- ## Check if we should install only statically linked executables.
+
 diff -rNu a/src/H5Tinit.c.mingw32 b/src/H5Tinit.c.mingw32
 --- a/src/H5Tinit.c.mingw32	1969-12-31 19:00:00.000000000 -0500
 +++ b/src/H5Tinit.c.mingw32	2014-09-01 11:49:54.461673944 -0400
-@@ -0,0 +1,978 @@
+@@ -0,0 +1,977 @@
 +/* Generated automatically by H5detect -- do not edit */
 +
 +
@@ -74,15 +63,12 @@
 + *                                                                           *
 + * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 + * terms governing use, modification, and redistribution, is contained in    *
-+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
-+ * of the source code distribution tree; Copyright.html can be found at the  *
-+ * root level of an installed copy of the electronic HDF5 document set and   *
-+ * is linked from the top-level documents page.  It can also be found at     *
-+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
-+ * access to either file, you may request a copy from help@hdfgroup.org.     *
-+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-+ *
-+ * Created:		Nov 29, 2012
++ * the COPYING file, which can be found at the root of the source code       *
++ * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
++ * If you do not have access to either file, you may request a copy from     *
++ * help@hdfgroup.org.                                                        *
++ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
++ * Created:		May 26, 2020
 + *			
 + *
 + * Purpose:		This machine-generated source code contains
@@ -96,7 +82,7 @@
 + *			printed from most significant bit to least
 + *			significant bit even though the actual bytes
 + *			might be stored in a different order in
-+ *			memory.	 The integers above each binary byte
++ *			memory.     The integers above each binary byte
 + *			indicate the relative order of the bytes in
 + *			memory; little-endian machines have
 + *			decreasing numbers while big-endian machines
@@ -107,8 +93,8 @@
 + *			`M' for the mantissa magnitude, and `E' for
 + *			the exponent.  The exponent has an associated
 + *			bias which can be subtracted to find the
-+ *			true exponent.	The radix point is assumed
-+ *			to be before the first `M' bit.	 Any bit
++ *			true exponent.    The radix point is assumed
++ *			to be before the first `M' bit.     Any bit
 + *			of a floating-point value not falling into one
 + *			of these categories is printed as a question
 + *			mark.  Bits of integer types are printed as
@@ -117,7 +103,7 @@
 + *			If the most significant bit of the normalized
 + *			mantissa (always a `1' except for `0.0') is
 + *			not stored then an `implicit=yes' appears
-+ *			under the field description.  In thie case,
++ *			under the field description.  In this case,
 + *			the radix point is still assumed to be
 + *			before the first `M' but after the implicit
 + *			bit.
@@ -134,17 +120,17 @@
 +/* Module Setup */
 +/****************/
 +
-+#define H5T_PACKAGE /*suppress error about including H5Tpkg.h*/
++#include "H5Tmodule.h"          /* This source code file is part of the H5T module */
 +
 +
 +/***********/
 +/* Headers */
 +/***********/
-+#include "H5private.h"		/* Generic Functions			*/
-+#include "H5Eprivate.h"		/* Error handling		  	*/
-+#include "H5FLprivate.h"	/* Free Lists				*/
-+#include "H5Iprivate.h"		/* IDs			  		*/
-+#include "H5Tpkg.h"		/* Datatypes 				*/
++#include "H5private.h"        /* Generic Functions            */
++#include "H5Eprivate.h"        /* Error handling              */
++#include "H5FLprivate.h"    /* Free Lists                */
++#include "H5Iprivate.h"        /* IDs                      */
++#include "H5Tpkg.h"        /* Datatypes                 */
 +
 +
 +/****************/
@@ -190,26 +176,26 @@
 +
 +
 +/*-------------------------------------------------------------------------
-+ * Function:	H5TN_init_interface
++ * Function:    H5T__init_native
 + *
-+ * Purpose:	Initialize pre-defined native datatypes from code generated
++ * Purpose:    Initialize pre-defined native datatypes from code generated
 + *              during the library configuration by H5detect.
 + *
-+ * Return:	Success:	non-negative
-+ *		Failure:	negative
++ * Return:    Success:    non-negative
++ *        Failure:    negative
 + *
-+ * Programmer:	Robb Matzke
++ * Programmer:    Robb Matzke
 + *              Wednesday, December 16, 1998
 + *
 + *-------------------------------------------------------------------------
 + */
 +herr_t
-+H5TN_init_interface(void)
++H5T__init_native(void)
 +{
-+    H5T_t	*dt = NULL;
-+    herr_t	ret_value = SUCCEED;
++    H5T_t    *dt = NULL;
++    herr_t    ret_value = SUCCEED;
 +
-+    FUNC_ENTER_NOAPI(FAIL)
++    FUNC_ENTER_PACKAGE
 +
 +   /*
 +    *    0
@@ -1008,11 +994,12 @@
 +    /* Set the native order for this machine */
 +    H5T_native_order_g = H5T_ORDER_LE;
 +
-+    /* Structure alignment for pointers, hvl_t, hobj_ref_t, hdset_reg_ref_t */
++    /* Structure alignment for pointers, vlen and reference types */
 +    H5T_POINTER_COMP_ALIGN_g = 4;
 +    H5T_HVL_COMP_ALIGN_g = 4;
 +    H5T_HOBJREF_COMP_ALIGN_g = 8;
 +    H5T_HDSETREGREF_COMP_ALIGN_g = 1;
++    H5T_REF_COMP_ALIGN_g = 8;
 +
 +done:
 +    if(ret_value < 0) {
@@ -1023,7 +1010,7 @@
 +    } /* end if */
 +
 +    FUNC_LEAVE_NOAPI(ret_value);
-+} /* end H5TN_init_interface() */
++} /* end H5T__init_native() */
 +
 +/****************************************/
 +/* ALIGNMENT and signal-handling status */
@@ -1038,13 +1025,15 @@
 +/******************************/
 +/* signal handlers statistics */
 +/******************************/
-+/* signal_handlers tested: 10 times */
++/* signal_handlers tested: 15 times */
 +/* sigbus_handler called: 5 times */
 +/* sigsegv_handler called: 5 times */
++/* sigill_handler called: 5 times */
+
 diff -rNu a/src/H5Tinit.c.mingw64 b/src/H5Tinit.c.mingw64
 --- a/src/H5Tinit.c.mingw64	1969-12-31 19:00:00.000000000 -0500
 +++ b/src/H5Tinit.c.mingw64	2014-09-01 11:52:24.240756904 -0400
-@@ -0,0 +1,980 @@
+@@ -0,0 +1,979 @@
 +/* Generated automatically by H5detect -- do not edit */
 +
 +
@@ -1056,15 +1045,12 @@
 + *                                                                           *
 + * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 + * terms governing use, modification, and redistribution, is contained in    *
-+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
-+ * of the source code distribution tree; Copyright.html can be found at the  *
-+ * root level of an installed copy of the electronic HDF5 document set and   *
-+ * is linked from the top-level documents page.  It can also be found at     *
-+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
-+ * access to either file, you may request a copy from help@hdfgroup.org.     *
-+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-+ *
-+ * Created:		Aug 31, 2014
++ * the COPYING file, which can be found at the root of the source code       *
++ * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
++ * If you do not have access to either file, you may request a copy from     *
++ * help@hdfgroup.org.                                                        *
++ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
++ * Created:		May 22, 2020
 + *			
 + *
 + * Purpose:		This machine-generated source code contains
@@ -1078,7 +1064,7 @@
 + *			printed from most significant bit to least
 + *			significant bit even though the actual bytes
 + *			might be stored in a different order in
-+ *			memory.	 The integers above each binary byte
++ *			memory.     The integers above each binary byte
 + *			indicate the relative order of the bytes in
 + *			memory; little-endian machines have
 + *			decreasing numbers while big-endian machines
@@ -1089,8 +1075,8 @@
 + *			`M' for the mantissa magnitude, and `E' for
 + *			the exponent.  The exponent has an associated
 + *			bias which can be subtracted to find the
-+ *			true exponent.	The radix point is assumed
-+ *			to be before the first `M' bit.	 Any bit
++ *			true exponent.    The radix point is assumed
++ *			to be before the first `M' bit.     Any bit
 + *			of a floating-point value not falling into one
 + *			of these categories is printed as a question
 + *			mark.  Bits of integer types are printed as
@@ -1099,7 +1085,7 @@
 + *			If the most significant bit of the normalized
 + *			mantissa (always a `1' except for `0.0') is
 + *			not stored then an `implicit=yes' appears
-+ *			under the field description.  In thie case,
++ *			under the field description.  In this case,
 + *			the radix point is still assumed to be
 + *			before the first `M' but after the implicit
 + *			bit.
@@ -1116,17 +1102,17 @@
 +/* Module Setup */
 +/****************/
 +
-+#define H5T_PACKAGE /*suppress error about including H5Tpkg.h*/
++#include "H5Tmodule.h"          /* This source code file is part of the H5T module */
 +
 +
 +/***********/
 +/* Headers */
 +/***********/
-+#include "H5private.h"		/* Generic Functions			*/
-+#include "H5Eprivate.h"		/* Error handling		  	*/
-+#include "H5FLprivate.h"	/* Free Lists				*/
-+#include "H5Iprivate.h"		/* IDs			  		*/
-+#include "H5Tpkg.h"		/* Datatypes 				*/
++#include "H5private.h"        /* Generic Functions            */
++#include "H5Eprivate.h"        /* Error handling              */
++#include "H5FLprivate.h"    /* Free Lists                */
++#include "H5Iprivate.h"        /* IDs                      */
++#include "H5Tpkg.h"        /* Datatypes                 */
 +
 +
 +/****************/
@@ -1172,26 +1158,26 @@
 +
 +
 +/*-------------------------------------------------------------------------
-+ * Function:	H5TN_init_interface
++ * Function:    H5T__init_native
 + *
-+ * Purpose:	Initialize pre-defined native datatypes from code generated
++ * Purpose:    Initialize pre-defined native datatypes from code generated
 + *              during the library configuration by H5detect.
 + *
-+ * Return:	Success:	non-negative
-+ *		Failure:	negative
++ * Return:    Success:    non-negative
++ *        Failure:    negative
 + *
-+ * Programmer:	Robb Matzke
++ * Programmer:    Robb Matzke
 + *              Wednesday, December 16, 1998
 + *
 + *-------------------------------------------------------------------------
 + */
 +herr_t
-+H5TN_init_interface(void)
++H5T__init_native(void)
 +{
-+    H5T_t	*dt = NULL;
-+    herr_t	ret_value = SUCCEED;
++    H5T_t    *dt = NULL;
++    herr_t    ret_value = SUCCEED;
 +
-+    FUNC_ENTER_NOAPI(FAIL)
++    FUNC_ENTER_PACKAGE
 +
 +   /*
 +    *    0
@@ -1992,11 +1978,12 @@
 +    /* Set the native order for this machine */
 +    H5T_native_order_g = H5T_ORDER_LE;
 +
-+    /* Structure alignment for pointers, hvl_t, hobj_ref_t, hdset_reg_ref_t */
++    /* Structure alignment for pointers, vlen and reference types */
 +    H5T_POINTER_COMP_ALIGN_g = 8;
 +    H5T_HVL_COMP_ALIGN_g = 8;
 +    H5T_HOBJREF_COMP_ALIGN_g = 8;
 +    H5T_HDSETREGREF_COMP_ALIGN_g = 1;
++    H5T_REF_COMP_ALIGN_g = 8;
 +
 +done:
 +    if(ret_value < 0) {
@@ -2007,7 +1994,7 @@
 +    } /* end if */
 +
 +    FUNC_LEAVE_NOAPI(ret_value);
-+} /* end H5TN_init_interface() */
++} /* end H5T__init_native() */
 +
 +/****************************************/
 +/* ALIGNMENT and signal-handling status */
@@ -2022,58 +2009,367 @@
 +/******************************/
 +/* signal handlers statistics */
 +/******************************/
-+/* signal_handlers tested: 10 times */
++/* signal_handlers tested: 15 times */
 +/* sigbus_handler called: 5 times */
 +/* sigsegv_handler called: 5 times */
-diff -rNu a/src/Makefile.am b/src/Makefile.am
---- a/src/Makefile.am	2012-10-11 13:30:56.000000000 -0400
-+++ b/src/Makefile.am	2014-09-01 11:57:11.711319644 -0400
-@@ -22,17 +22,12 @@
- include $(top_srcdir)/config/lt_vers.am
- 
- 
--# How to build H5detect for number format detection.
--# Use -g to force no optimization since many compilers (e.g., Intel) takes
--# a long time to compile it with any optimization on.  H5detect is used
--# to generate H5Tinit.c once. So, optimization is not critical.
--noinst_PROGRAMS = H5detect H5make_libsettings
++/* sigill_handler called: 5 times */
+
+diff --git "a/src/H5lib_settings.c.mingw32" "b/src/H5lib_settings.c.mingw32"
+index e69de29..ce90d85 100644
+--- "a/src/H5lib_settings.c.mingw32"
++++ "b/src/H5lib_settings.c.mingw32"
+@@ -0,0 +1,121 @@
++/* Generated automatically by H5make_libsettings -- do not edit */
++
++
++
++/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
++ * Copyright by The HDF Group.                                               *
++ * Copyright by the Board of Trustees of the University of Illinois.         *
++ * All rights reserved.                                                      *
++ *                                                                           *
++ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
++ * terms governing use, modification, and redistribution, is contained in    *
++ * the COPYING file, which can be found at the root of the source code       *
++ * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
++ * If you do not have access to either file, you may request a copy from     *
++ * help@hdfgroup.org.                                                        *
++ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
++ * Created:		May 26, 2020
++ *			
++ *
++ * Purpose:		This machine-generated source code contains
++ *			information about the library build configuration
++ *
++ * Modifications:
++ *
++ *	DO NOT MAKE MODIFICATIONS TO THIS FILE!
++ *	It was generated by code in `H5make_libsettings.c'.
++ *
++ *-------------------------------------------------------------------------
++ */
++
++char H5libhdf5_settings[]=
++	"        SUMMARY OF THE HDF5 CONFIGURATION\n"
++	"        =================================\n"
++	"\n"
++	"General Information:\n"
++	"-------------------\n"
++	"                   HDF5 Version: 1.12.0\n"
++	"                  Configured on: 2020-05-26\n"
++	"                  Configured by: Unix Makefiles\n"
++	"                    Host system: Linux-5.4.0-31-generic\n"
++	"              Uname information: Windows\n"
++	"                       Byte sex: little-endian\n"
++	"             Installation point: \n"
++	"\n"
++	"Compiling Options:\n"
++	"------------------\n"
++	"                     Build Mode: Release\n"
++	"              Debugging Symbols: OFF\n"
++	"                        Asserts: OFF\n"
++	"                      Profiling: OFF\n"
++	"             Optimization Level: OFF\n"
++	"\n"
++	"Linking Options:\n"
++	"----------------\n"
++	"                      Libraries: \n"
++	"  Statically Linked Executables: OFF\n"
++	"                        LDFLAGS: \n"
++	"                     H5_LDFLAGS: \n"
++	"                     AM_LDFLAGS: \n"
++	"                Extra libraries: m;ws2_32;wsock32\n"
++	"                       Archiver: /home/osboxes/Documents/Repositories/Octave/mxe-octave-w32/usr/bin/i686-w64-mingw32-ar\n"
++	"                         Ranlib: /home/osboxes/Documents/Repositories/Octave/mxe-octave-w32/usr/bin/i686-w64-mingw32-ranlib\n"
++	"\n"
++	"Languages:\n"
++	"----------\n"
++	"                              C: YES\n"
++	"                     C Compiler: /home/osboxes/Documents/Repositories/Octave/mxe-octave-w32/usr/bin/i686-w64-mingw32-gcc 9.3.0\n"
++	"                       CPPFLAGS: \n"
++	"                    H5_CPPFLAGS: \n"
++	"                    AM_CPPFLAGS: \n"
++	"                         CFLAGS:   -std=c99  -fstdarg-opt  -Wall -Wcast-qual -Wconversion -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-include-dirs -Wno-c++-compat -Wno-format-nonliteral -Wshadow -Wundef -Wwrite-strings -pedantic -fmessage-length=0\n"
++	"                      H5_CFLAGS: \n"
++	"                      AM_CFLAGS: \n"
++	"               Shared C Library: YES\n"
++	"               Static C Library: NO\n"
++	"\n"
++	"                        Fortran: OFF\n"
++	"               Fortran Compiler: /home/osboxes/Documents/Repositories/Octave/mxe-octave-w32/usr/bin/i686-w64-mingw32-gfortran \n"
++	"                  Fortran Flags: \n"
++	"               H5 Fortran Flags: \n"
++	"               AM Fortran Flags: \n"
++	"         Shared Fortran Library: YES\n"
++	"         Static Fortran Library: NO\n"
++	"\n"
++	"                            C++: OFF\n"
++	"                   C++ Compiler: /home/osboxes/Documents/Repositories/Octave/mxe-octave-w32/usr/bin/i686-w64-mingw32-g++ \n"
++	"                      C++ Flags:  \n"
++	"                   H5 C++ Flags: \n"
++	"                   AM C++ Flags: \n"
++	"             Shared C++ Library: YES\n"
++	"             Static C++ Library: NO\n"
++	"\n"
++	"                            JAVA: OFF\n"
++	"                 JAVA Compiler:  \n"
++	"\n"
++	"Features:\n"
++	"---------\n"
++	"                   Parallel HDF5: OFF\n"
++	"Parallel Filtered Dataset Writes: \n"
++	"              Large Parallel I/O: \n"
++	"              High-level library: ON\n"
++	"                Build HDF5 Tests: OFF\n"
++	"                Build HDF5 Tools: ON\n"
++	"                    Threadsafety: OFF\n"
++	"             Default API mapping: v112\n"
++	"  With deprecated public symbols: ON\n"
++	"          I/O filters (external):  DEFLATE\n"
++	"                             MPE: \n"
++	"                      Direct VFD: \n"
++	"              (Read-Only) S3 VFD: \n"
++	"            (Read-Only) HDFS VFD: \n"
++	"                         dmalloc: \n"
++	"  Packages w/ extra debug output: \n"
++	"                     API Tracing: OFF\n"
++	"            Using memory checker: OFF\n"
++	" Memory allocation sanity checks: OFF\n"
++	"          Function Stack Tracing: OFF\n"
++	"       Strict File Format Checks: OFF\n"
++	"    Optimization Instrumentation: \n"
++;
++
 
- # Our main target, the HDF5 library
- lib_LTLIBRARIES=libhdf5.la
- 
- # Add libtool numbers to the HDF5 library (from config/lt_vers.am)
--libhdf5_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
-+libhdf5_la_LDFLAGS= -no-undefined -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
- 
- # H5Tinit.c and H5lib_settings.c are generated files and should be cleaned.
- MOSTLYCLEANFILES=H5Tinit.c H5lib_settings.c
-@@ -121,25 +114,17 @@
+diff --git "a/src/H5lib_settings.c.mingw64" "b/src/H5lib_settings.c.mingw64"
+index e69de29..41f03c9 100644
+--- "a/src/H5lib_settings.c.mingw64"
++++ "b/src/H5lib_settings.c.mingw64"
+@@ -0,0 +1,121 @@
++/* Generated automatically by H5make_libsettings -- do not edit */
++
++
++
++/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
++ * Copyright by The HDF Group.                                               *
++ * Copyright by the Board of Trustees of the University of Illinois.         *
++ * All rights reserved.                                                      *
++ *                                                                           *
++ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
++ * terms governing use, modification, and redistribution, is contained in    *
++ * the COPYING file, which can be found at the root of the source code       *
++ * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
++ * If you do not have access to either file, you may request a copy from     *
++ * help@hdfgroup.org.                                                        *
++ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
++ * Created:		May 22, 2020
++ *			
++ *
++ * Purpose:		This machine-generated source code contains
++ *			information about the library build configuration
++ *
++ * Modifications:
++ *
++ *	DO NOT MAKE MODIFICATIONS TO THIS FILE!
++ *	It was generated by code in `H5make_libsettings.c'.
++ *
++ *-------------------------------------------------------------------------
++ */
++
++char H5libhdf5_settings[]=
++	"        SUMMARY OF THE HDF5 CONFIGURATION\n"
++	"        =================================\n"
++	"\n"
++	"General Information:\n"
++	"-------------------\n"
++	"                   HDF5 Version: 1.12.0\n"
++	"                  Configured on: 2020-05-22\n"
++	"                  Configured by: Unix Makefiles\n"
++	"                    Host system: Linux-5.4.0-31-generic\n"
++	"              Uname information: Windows\n"
++	"                       Byte sex: little-endian\n"
++	"             Installation point: \n"
++	"\n"
++	"Compiling Options:\n"
++	"------------------\n"
++	"                     Build Mode: Release\n"
++	"              Debugging Symbols: OFF\n"
++	"                        Asserts: OFF\n"
++	"                      Profiling: OFF\n"
++	"             Optimization Level: OFF\n"
++	"\n"
++	"Linking Options:\n"
++	"----------------\n"
++	"                      Libraries: \n"
++	"  Statically Linked Executables: OFF\n"
++	"                        LDFLAGS: \n"
++	"                     H5_LDFLAGS: \n"
++	"                     AM_LDFLAGS: \n"
++	"                Extra libraries: m;ws2_32;wsock32\n"
++	"                       Archiver: /home/osboxes/Documents/Repositories/Octave/mxe-octave/usr/bin/x86_64-w64-mingw32-ar\n"
++	"                         Ranlib: /home/osboxes/Documents/Repositories/Octave/mxe-octave/usr/bin/x86_64-w64-mingw32-ranlib\n"
++	"\n"
++	"Languages:\n"
++	"----------\n"
++	"                              C: YES\n"
++	"                     C Compiler: /home/osboxes/Documents/Repositories/Octave/mxe-octave/usr/bin/x86_64-w64-mingw32-gcc 9.3.0\n"
++	"                       CPPFLAGS: \n"
++	"                    H5_CPPFLAGS: \n"
++	"                    AM_CPPFLAGS: \n"
++	"                         CFLAGS:   -std=c99  -fstdarg-opt  -Wall -Wcast-qual -Wconversion -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-include-dirs -Wno-c++-compat -Wno-format-nonliteral -Wshadow -Wundef -Wwrite-strings -pedantic -fmessage-length=0\n"
++	"                      H5_CFLAGS: \n"
++	"                      AM_CFLAGS: \n"
++	"               Shared C Library: YES\n"
++	"               Static C Library: NO\n"
++	"\n"
++	"                        Fortran: OFF\n"
++	"               Fortran Compiler: /home/osboxes/Documents/Repositories/Octave/mxe-octave/usr/bin/x86_64-w64-mingw32-gfortran \n"
++	"                  Fortran Flags: \n"
++	"               H5 Fortran Flags: \n"
++	"               AM Fortran Flags: \n"
++	"         Shared Fortran Library: YES\n"
++	"         Static Fortran Library: NO\n"
++	"\n"
++	"                            C++: OFF\n"
++	"                   C++ Compiler: /home/osboxes/Documents/Repositories/Octave/mxe-octave/usr/bin/x86_64-w64-mingw32-g++ \n"
++	"                      C++ Flags:  \n"
++	"                   H5 C++ Flags: \n"
++	"                   AM C++ Flags: \n"
++	"             Shared C++ Library: YES\n"
++	"             Static C++ Library: NO\n"
++	"\n"
++	"                            JAVA: OFF\n"
++	"                 JAVA Compiler:  \n"
++	"\n"
++	"Features:\n"
++	"---------\n"
++	"                   Parallel HDF5: OFF\n"
++	"Parallel Filtered Dataset Writes: \n"
++	"              Large Parallel I/O: \n"
++	"              High-level library: ON\n"
++	"                Build HDF5 Tests: OFF\n"
++	"                Build HDF5 Tools: ON\n"
++	"                    Threadsafety: OFF\n"
++	"             Default API mapping: v112\n"
++	"  With deprecated public symbols: ON\n"
++	"          I/O filters (external):  DEFLATE\n"
++	"                             MPE: \n"
++	"                      Direct VFD: \n"
++	"              (Read-Only) S3 VFD: \n"
++	"            (Read-Only) HDFS VFD: \n"
++	"                         dmalloc: \n"
++	"  Packages w/ extra debug output: \n"
++	"                     API Tracing: OFF\n"
++	"            Using memory checker: OFF\n"
++	" Memory allocation sanity checks: OFF\n"
++	"          Function Stack Tracing: OFF\n"
++	"       Strict File Format Checks: OFF\n"
++	"    Optimization Instrumentation: \n"
++;
++
+
+diff --git "a/src/H5win32defs.h" "b/src/H5win32defs.h"
+index 0a0bd37..405e9e8 100644
+--- "a/src/H5win32defs.h"	
++++ "b/src/H5win32defs.h"
+@@ -42,7 +42,7 @@ typedef __int64             h5_stat_size_t;
+ #define HDisatty(F)         _isatty(F)
  
- # Number format detection
- # The LD_LIBRARY_PATH setting is a kludge.
--# Things should have been all set during H5detect making.
- # Remove the generated .c file if errors occur unless HDF5_Make_Ignore
- # is set to ignore the error.
--H5Tinit.c: H5detect$(EXEEXT)
--	LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) |                  \
--		sed -e 's/-L/:/g' -e 's/ //g'`"                               \
--	$(RUNSERIAL) ./H5detect$(EXEEXT) > $@  ||                               \
--	    (test $$HDF5_Make_Ignore && echo "*** Error ignored") ||          \
--	    ($(RM) $@ ; exit 1)
-+H5Tinit.c: H5Tinit.c.mingw
-+	cp $(srcdir)/H5Tinit.c.mingw $@
+ /* The isnan function needs underscore in VS2012 and earlier */
+-#if (_MSC_VER <= 1700)
++#if defined(_MSC_VER) && (_MSC_VER <= 1700)
+   #define HDisnan(X)      _isnan(X)
+ #endif /* MSC_VER < 1700 */
+ 
+diff --git "a/src/CMakeLists.txt" "b/src/CMakeLists.txt"
+--- "a/src/CMakeLists.txt"	
++++ "b/src/CMakeLists.txt"
+@@ -1087,7 +1087,8 @@ else ()
+   endif ()
+ endif ()
+ 
++if (NOT EXISTS "${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c")
+ add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
+ target_include_directories (H5make_libsettings PRIVATE "${HDF5_SRC_DIR};${HDF5_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+ target_compile_definitions(H5make_libsettings PUBLIC ${HDF_EXTRA_C_FLAGS} ${HDF_EXTRA_FLAGS})
+ TARGET_C_PROPERTIES (H5make_libsettings STATIC)
+@@ -1097,28 +1098,49 @@ target_link_libraries (H5make_libsettings
+ )
  
- # Build configuration header file generation
- # The LD_LIBRARY_PATH setting is a kludge.
--# Things should have been all set during H5make_libsettings making.
- # Remove the generated .c file if errors occur unless HDF5_Make_Ignore
- # is set to ignore the error.
--H5lib_settings.c: H5make_libsettings$(EXEEXT) libhdf5.settings
--	LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) |                  \
--		sed -e 's/-L/:/g' -e 's/ //g'`"                               \
--	$(RUNSERIAL) ./H5make_libsettings$(EXEEXT) > $@  ||                               \
-+H5lib_settings.c: $(top_srcdir)/bin/make_lib_settings libhdf5.settings
-+	perl $(top_srcdir)/bin/make_lib_settings < libhdf5.settings > $@  ||  \
- 	    (test $$HDF5_Make_Ignore && echo "*** Error ignored") ||          \
- 	    ($(RM) $@ ; exit 1)
+ add_custom_command (
+-    OUTPUT ${HDF5_BINARY_DIR}/H5lib_settings.c
+-           ${HDF5_BINARY_DIR}/gen_SRCS.stamp2
++    OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c
++           ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp2
+     COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5make_libsettings>
+-    ARGS ${HDF5_BINARY_DIR}/H5lib_settings.c
++    ARGS ${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c
+     COMMAND    ${CMAKE_COMMAND}
+     ARGS       -E touch ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp2
+     DEPENDS H5make_libsettings
+-    WORKING_DIRECTORY ${HDF5_BINARY_DIR}
++    WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
+ )
+-set_source_files_properties (${HDF5_BINARY_DIR}/H5lib_settings.c PROPERTIES GENERATED TRUE)
++set_source_files_properties (${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c PROPERTIES GENERATED TRUE)
+ if (BUILD_SHARED_LIBS)
+   add_custom_command (
+-      OUTPUT ${HDF5_BINARY_DIR}/shared/H5lib_settings.c
+-             ${HDF5_BINARY_DIR}/shared/shared_gen_SRCS.stamp2
++      OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/shared/H5lib_settings.c
++             ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp2
+       COMMAND    ${CMAKE_COMMAND}
+-      ARGS       -E copy_if_different "${HDF5_BINARY_DIR}/H5lib_settings.c" "${HDF5_BINARY_DIR}/shared/H5lib_settings.c"
++      ARGS       -E copy_if_different "${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c" "${HDF5_GENERATED_SOURCE_DIR}/shared/H5lib_settings.c"
+       COMMAND    ${CMAKE_COMMAND}
+       ARGS       -E touch ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp2
+-      DEPENDS    ${HDF5_BINARY_DIR}/H5lib_settings.c
+-      WORKING_DIRECTORY ${HDF5_BINARY_DIR}
++      DEPENDS    ${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c
++      WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
++  )
++  set_source_files_properties (${HDF5_GENERATED_SOURCE_DIR}/shared/H5lib_settings.c PROPERTIES GENERATED TRUE)
++endif ()
++else ()
++  add_custom_command (
++      OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp2
++      COMMAND    ${CMAKE_COMMAND}
++      ARGS       -E touch ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp2
++      DEPENDS    ${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c
++      WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
+   )
+-  set_source_files_properties (${HDF5_BINARY_DIR}/shared/H5lib_settings.c PROPERTIES GENERATED TRUE)
++  if (BUILD_SHARED_LIBS)
++    add_custom_command (
++        OUTPUT     ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp2
++        COMMAND    ${CMAKE_COMMAND}
++        ARGS       -E copy_if_different "${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c" "${HDF5_GENERATED_SOURCE_DIR}/shared/H5lib_settings.c"
++        COMMAND    ${CMAKE_COMMAND}
++        ARGS       -E touch ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp2
++        DEPENDS    ${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c
++        WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
++    )
++    set_source_files_properties (${HDF5_GENERATED_SOURCE_DIR}/shared/H5lib_settings.c PROPERTIES GENERATED TRUE)
++  endif ()
+ endif ()
  
+ ## all_packages="AC,B,B2,D,F,FA,FL,FS,HL,I,O,S,ST,T,Z"
+@@ -1129,7 +1151,7 @@ option (HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages" OFF)
+ # Add H5Tinit source to build - generated by H5detect/CMake at configure time
+ #-----------------------------------------------------------------------------
+ if (NOT ONLY_SHARED_LIBS)
+-  set (gen_SRCS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c ${HDF5_BINARY_DIR}/H5lib_settings.c)
++  set (gen_SRCS ${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c ${HDF5_GENERATED_SOURCE_DIR}/H5lib_settings.c)
+   add_custom_target (gen_${HDF5_LIB_TARGET} ALL DEPENDS ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp1 ${HDF5_GENERATED_SOURCE_DIR}/gen_SRCS.stamp2)
+ 
+   add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
+@@ -1164,7 +1186,7 @@ if (NOT ONLY_SHARED_LIBS)
+ endif ()
+ 
+ if (BUILD_SHARED_LIBS)
+-  set (shared_gen_SRCS ${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c ${HDF5_BINARY_DIR}/shared/H5lib_settings.c)
++  set (shared_gen_SRCS ${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c ${HDF5_GENERATED_SOURCE_DIR}/shared/H5lib_settings.c)
+   add_custom_target (gen_${HDF5_LIBSH_TARGET} ALL DEPENDS ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1 ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp2)
+ 
+   add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${shared_gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
+
--- a/src/of-communications.mk	Wed May 27 14:14:50 2020 -0400
+++ b/src/of-communications.mk	Mon May 25 18:14:52 2020 +0200
@@ -22,6 +22,9 @@
 endef
 
 define $(PKG)_BUILD
-    cd $(1)/src && autoconf
+    cd $(1)/src && ./configure \
+        $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
+        PKG_CONFIG='$(MXE_PKG_CONFIG)' \
+        PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig'
     $(call OCTAVE_FORGE_PKG_BUILD,$(1),$(2),$(3),$($(PKG)_OPTIONS))
 endef