From 52f67440513f0e72decb4c14cefc547b03efea06 Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Thu, 17 Dec 2020 18:38:57 -0800 Subject: [PATCH 01/12] Restores maintainer mode in the autotools (#200) Maintainer mode should be enabled in development branches. Also adds helpful commenting. Add bin/switch_maint_mode Disable maintainer mode for release. Fix incomplete merge for stub functions in H5Fdhdfs.c --- bin/switch_maint_mode | 81 +++++++++++++++++++++++++++++++++++++++++++ configure.ac | 51 +++++++++++++++++++++------ src/H5FDhdfs.c | 8 ++--- 3 files changed, 125 insertions(+), 15 deletions(-) create mode 100755 bin/switch_maint_mode diff --git a/bin/switch_maint_mode b/bin/switch_maint_mode new file mode 100755 index 00000000000..fb1568bdbb6 --- /dev/null +++ b/bin/switch_maint_mode @@ -0,0 +1,81 @@ +#!/bin/sh +# +# 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. +# +# Switch AM_MAINTAINER_MODE value in configure.ac +# Usage: See USAGE() +# Programmer: Dana Robinson +# Creation date: January 2016 + +USAGE() +{ +cat < + +EOF +} + +MODE="notset" +CONFIG_AC_PATH= + +# Display help/usage if any options were passed in +while [ $# -gt 0 ]; do + case "$1" in + -enable) + MODE="enable" + ;; + -disable) + MODE="disable" + ;; + -help) + USAGE + exit 0 + ;; + *) + CONFIG_AC_PATH="$1" + ;; + esac + shift +done + +# Did we get a file path? +if test -z $CONFIG_AC_PATH ; then + USAGE + exit 1 +fi + +# Did we get a mode? +if test -z $MODE ; then + USAGE + exit 1 +fi + +# Run perl over configure.ac +if test "X-$MODE" = "X-enable" ; then + perl -pi -e 's/^(AM_MAINTAINER_MODE\(\[)([a-z]+)(\]\))/$1enable$3/g' $CONFIG_AC_PATH +fi +if test "X-$MODE" = "X-disable" ; then + perl -pi -e 's/^(AM_MAINTAINER_MODE\(\[)([a-z]+)(\]\))/$1disable$3/g' $CONFIG_AC_PATH +fi + diff --git a/configure.ac b/configure.ac index 8673e2c5b48..d8f4436f9bf 100644 --- a/configure.ac +++ b/configure.ac @@ -36,17 +36,46 @@ AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign]) AM_SILENT_RULES([yes]) -## AM_MAINTAINER_MODE turns off "rebuild rules" that contain dependencies -## for Makefiles, configure, src/H5config.h, etc. If AM_MAINTAINER_MODE -## is *not* included here, these files will be rebuilt if out of date. -## This is a problem because if users try to build on a machine with -## the wrong versions of autoconf and automake, these files will be -## rebuilt with the wrong versions and bad things can happen. -## Also, CVS doesn't preserve dependencies between timestamps, so -## Makefiles will often think rebuilding needs to occur when it doesn't. -## Developers should './configure --enable-maintainer-mode' to turn on -## rebuild rules. -AM_MAINTAINER_MODE +## AM_MAINTAINER_MODE determines the behavior of "rebuild rules" that contain +## dependencies for Makefile.in files, configure, src/H5config.h, etc. If +## AM_MAINTAINER_MODE is enabled, these files will be rebuilt if out of date. +## When disabled, the autotools build files can get out of sync and the build +## system will not complain or try to regenerate downstream files. +## +## The AM_MAINTAINER_MODE macro also determines whether the +## --(enable|disable)-maintainer-mode configure option is available. When the +## macro is present, with or without a parameter, the option will be added +## to the generated configure script. +## +## In summary: +## +## AM_MAINTAINER_MODE([enable]) +## - Build dependencies ON by default +## - Configure option exists +## +## AM_MAINTAINER_MODE([disable]) +## - Build dependencies OFF by default +## - Configure option exists +## +## AM_MAINTAINER_MODE +## - Build dependencies OFF by default +## - Configure option exists +## +## No AM_MAINTAINER_MODE macro +## - Build dependencies ON by default +## - No configure option to control build dependencies +## +## The biggest concern for us is that version control systems like git +## usually don't preserve dependencies between timestamps, so the build +## system will often think that upstream build files like Makefile.am are +## dirty and that rebuilding needs to occur when it doesn't. This is a problem +## in release branches where we provide the autotools-generated files. Users +## who don't have autoconf, automake, etc. will then have difficulty building +## release branches checked out from git. +## +## By default, maintainer mode is enabled in development branches and disabled +## in release branches. +AM_MAINTAINER_MODE([disable]) ## ---------------------------------------------------------------------- ## Set prefix default (install directory) to a directory in the build area. diff --git a/src/H5FDhdfs.c b/src/H5FDhdfs.c index 31e92b80f2f..a481777ef78 100644 --- a/src/H5FDhdfs.c +++ b/src/H5FDhdfs.c @@ -1729,13 +1729,13 @@ H5Pget_fapl_hdfs(hid_t fapl_id, H5FD_hdfs_fapl_t *fa_out) { herr_t ret_value = FAIL; - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_API_NOINIT H5TRACE2("e", "i*x", fapl_id, fa_out); HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, FAIL, "HDFS VFD not included in the HDF5 library") done: - FUNC_LEAVE_NOAPI(ret_value) + FUNC_LEAVE_API(ret_value) } herr_t @@ -1743,13 +1743,13 @@ H5Pset_fapl_hdfs(hid_t fapl_id, H5FD_hdfs_fapl_t *fa) { herr_t ret_value = FAIL; - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_API_NOINIT H5TRACE2("e", "i*x", fapl_id, fa); HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, FAIL, "HDFS VFD not included in the HDF5 library") done: - FUNC_LEAVE_NOAPI(ret_value) + FUNC_LEAVE_API(ret_value) } #endif /* H5_HAVE_LIBHDFS */ From 9d1999cfaeb5e744a87c814811e647520026816d Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Fri, 18 Dec 2020 11:10:29 -0600 Subject: [PATCH 02/12] Update configure for Restores maintainer mode in the autotools (#200). --- configure | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/configure b/configure index f0d63307949..c5f3bb374b9 100755 --- a/configure +++ b/configure @@ -3764,16 +3764,45 @@ fi AM_BACKSLASH='\' -## AM_MAINTAINER_MODE turns off "rebuild rules" that contain dependencies -## for Makefiles, configure, src/H5config.h, etc. If AM_MAINTAINER_MODE -## is *not* included here, these files will be rebuilt if out of date. -## This is a problem because if users try to build on a machine with -## the wrong versions of autoconf and automake, these files will be -## rebuilt with the wrong versions and bad things can happen. -## Also, CVS doesn't preserve dependencies between timestamps, so -## Makefiles will often think rebuilding needs to occur when it doesn't. -## Developers should './configure --enable-maintainer-mode' to turn on -## rebuild rules. +## AM_MAINTAINER_MODE determines the behavior of "rebuild rules" that contain +## dependencies for Makefile.in files, configure, src/H5config.h, etc. If +## AM_MAINTAINER_MODE is enabled, these files will be rebuilt if out of date. +## When disabled, the autotools build files can get out of sync and the build +## system will not complain or try to regenerate downstream files. +## +## The AM_MAINTAINER_MODE macro also determines whether the +## --(enable|disable)-maintainer-mode configure option is available. When the +## macro is present, with or without a parameter, the option will be added +## to the generated configure script. +## +## In summary: +## +## AM_MAINTAINER_MODE([enable]) +## - Build dependencies ON by default +## - Configure option exists +## +## AM_MAINTAINER_MODE([disable]) +## - Build dependencies OFF by default +## - Configure option exists +## +## AM_MAINTAINER_MODE +## - Build dependencies OFF by default +## - Configure option exists +## +## No AM_MAINTAINER_MODE macro +## - Build dependencies ON by default +## - No configure option to control build dependencies +## +## The biggest concern for us is that version control systems like git +## usually don't preserve dependencies between timestamps, so the build +## system will often think that upstream build files like Makefile.am are +## dirty and that rebuilding needs to occur when it doesn't. This is a problem +## in release branches where we provide the autotools-generated files. Users +## who don't have autoconf, automake, etc. will then have difficulty building +## release branches checked out from git. +## +## By default, maintainer mode is enabled in development branches and disabled +## in release branches. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } From f34233c75f7d675e59342a65d08da41d35b29f99 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Fri, 18 Dec 2020 11:59:02 -0600 Subject: [PATCH 03/12] Update MANIFEST for switch_maint_mode script. --- MANIFEST | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST b/MANIFEST index bc1e44dcde8..1abe835888d 100644 --- a/MANIFEST +++ b/MANIFEST @@ -97,6 +97,7 @@ ./bin/runtest _DO_NOT_DISTRIBUTE_ ./bin/snapshot ./bin/snapshot_version _DO_NOT_DISTRIBUTE_ +./bin/switch_maint_mode _DO_NOT_DISTRIBUTE_ ./bin/test-driver ./bin/pkgscrpts/testbinaries.sh _DO_NOT_DISTRIBUTE_ ./bin/timekeeper _DO_NOT_DISTRIBUTE_ From 0277b7d8c1447ae3ad462d1e74e024d09e226050 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Mon, 21 Dec 2020 10:39:29 -0600 Subject: [PATCH 04/12] Update so numbers for 1.8.22 release. --- config/lt_vers.am | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/lt_vers.am b/config/lt_vers.am index afa827b78b3..95ee2b9ad8b 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -16,9 +16,9 @@ # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. -LT_VERS_INTERFACE = 13 -LT_VERS_REVISION = 1 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 14 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 ## If the API changes *at all*, increment LT_VERS_INTERFACE and ## reset LT_VERS_REVISION to 0. @@ -40,26 +40,26 @@ LT_VERS_AGE = 3 ## Version numbers for wrapper shared library files. LT_CXX_VERS_INTERFACE = 15 -LT_CXX_VERS_REVISION = 0 +LT_CXX_VERS_REVISION = 1 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 10 -LT_F_VERS_REVISION = 5 +LT_F_VERS_REVISION = 6 LT_F_VERS_AGE = 0 LT_HL_VERS_INTERFACE = 12 -LT_HL_VERS_REVISION = 1 +LT_HL_VERS_REVISION = 2 LT_HL_VERS_AGE = 2 LT_HL_CXX_VERS_INTERFACE = 12 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 10 -LT_HL_F_VERS_REVISION = 4 +LT_HL_F_VERS_REVISION = 5 LT_HL_F_VERS_AGE = 0 LT_TOOLS_VERS_INTERFACE = 10 -LT_TOOLS_VERS_REVISION = 6 +LT_TOOLS_VERS_REVISION = 7 LT_TOOLS_VERS_AGE = 0 From a008cd03809ee577e537eb7deb65e7a1c6e334c8 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Mon, 21 Dec 2020 11:00:15 -0600 Subject: [PATCH 05/12] Add so numbers changes in Makefile.ins for 1.8.22 release. --- c++/src/Makefile.in | 18 +++++++++--------- fortran/src/Makefile.in | 18 +++++++++--------- hl/c++/src/Makefile.in | 18 +++++++++--------- hl/fortran/src/Makefile.in | 18 +++++++++--------- hl/src/Makefile.in | 18 +++++++++--------- src/Makefile.in | 18 +++++++++--------- 6 files changed, 54 insertions(+), 54 deletions(-) diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 254662aede9..5a6605ec33f 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -696,26 +696,26 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. -LT_VERS_INTERFACE = 13 -LT_VERS_REVISION = 1 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 14 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 LT_CXX_VERS_INTERFACE = 15 -LT_CXX_VERS_REVISION = 0 +LT_CXX_VERS_REVISION = 1 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 10 -LT_F_VERS_REVISION = 5 +LT_F_VERS_REVISION = 6 LT_F_VERS_AGE = 0 LT_HL_VERS_INTERFACE = 12 -LT_HL_VERS_REVISION = 1 +LT_HL_VERS_REVISION = 2 LT_HL_VERS_AGE = 2 LT_HL_CXX_VERS_INTERFACE = 12 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 10 -LT_HL_F_VERS_REVISION = 4 +LT_HL_F_VERS_REVISION = 5 LT_HL_F_VERS_AGE = 0 LT_TOOLS_VERS_INTERFACE = 10 -LT_TOOLS_VERS_REVISION = 6 +LT_TOOLS_VERS_REVISION = 7 LT_TOOLS_VERS_AGE = 0 # This is our main target diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 9d59120cb2a..8eaa8935eb7 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -747,26 +747,26 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. -LT_VERS_INTERFACE = 13 -LT_VERS_REVISION = 1 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 14 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 LT_CXX_VERS_INTERFACE = 15 -LT_CXX_VERS_REVISION = 0 +LT_CXX_VERS_REVISION = 1 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 10 -LT_F_VERS_REVISION = 5 +LT_F_VERS_REVISION = 6 LT_F_VERS_AGE = 0 LT_HL_VERS_INTERFACE = 12 -LT_HL_VERS_REVISION = 1 +LT_HL_VERS_REVISION = 2 LT_HL_VERS_AGE = 2 LT_HL_CXX_VERS_INTERFACE = 12 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 10 -LT_HL_F_VERS_REVISION = 4 +LT_HL_F_VERS_REVISION = 5 LT_HL_F_VERS_AGE = 0 LT_TOOLS_VERS_INTERFACE = 10 -LT_TOOLS_VERS_REVISION = 6 +LT_TOOLS_VERS_REVISION = 7 LT_TOOLS_VERS_AGE = 0 AM_FCLIBS = $(LIBHDF5) diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 6bd6a98074c..564525fa61f 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -686,26 +686,26 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. -LT_VERS_INTERFACE = 13 -LT_VERS_REVISION = 1 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 14 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 LT_CXX_VERS_INTERFACE = 15 -LT_CXX_VERS_REVISION = 0 +LT_CXX_VERS_REVISION = 1 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 10 -LT_F_VERS_REVISION = 5 +LT_F_VERS_REVISION = 6 LT_F_VERS_AGE = 0 LT_HL_VERS_INTERFACE = 12 -LT_HL_VERS_REVISION = 1 +LT_HL_VERS_REVISION = 2 LT_HL_VERS_AGE = 2 LT_HL_CXX_VERS_INTERFACE = 12 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 10 -LT_HL_F_VERS_REVISION = 4 +LT_HL_F_VERS_REVISION = 5 LT_HL_F_VERS_AGE = 0 LT_TOOLS_VERS_INTERFACE = 10 -LT_TOOLS_VERS_REVISION = 6 +LT_TOOLS_VERS_REVISION = 7 LT_TOOLS_VERS_AGE = 0 # This is our main target diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index f96999abbfb..3ef663404ec 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -704,26 +704,26 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. -LT_VERS_INTERFACE = 13 -LT_VERS_REVISION = 1 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 14 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 LT_CXX_VERS_INTERFACE = 15 -LT_CXX_VERS_REVISION = 0 +LT_CXX_VERS_REVISION = 1 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 10 -LT_F_VERS_REVISION = 5 +LT_F_VERS_REVISION = 6 LT_F_VERS_AGE = 0 LT_HL_VERS_INTERFACE = 12 -LT_HL_VERS_REVISION = 1 +LT_HL_VERS_REVISION = 2 LT_HL_VERS_AGE = 2 LT_HL_CXX_VERS_INTERFACE = 12 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 10 -LT_HL_F_VERS_REVISION = 4 +LT_HL_F_VERS_REVISION = 5 LT_HL_F_VERS_AGE = 0 LT_TOOLS_VERS_INTERFACE = 10 -LT_TOOLS_VERS_REVISION = 6 +LT_TOOLS_VERS_REVISION = 7 LT_TOOLS_VERS_AGE = 0 # Our main target, the high-level fortran library diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 2246e8c03fb..cba704801a3 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -685,26 +685,26 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. -LT_VERS_INTERFACE = 13 -LT_VERS_REVISION = 1 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 14 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 LT_CXX_VERS_INTERFACE = 15 -LT_CXX_VERS_REVISION = 0 +LT_CXX_VERS_REVISION = 1 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 10 -LT_F_VERS_REVISION = 5 +LT_F_VERS_REVISION = 6 LT_F_VERS_AGE = 0 LT_HL_VERS_INTERFACE = 12 -LT_HL_VERS_REVISION = 1 +LT_HL_VERS_REVISION = 2 LT_HL_VERS_AGE = 2 LT_HL_CXX_VERS_INTERFACE = 12 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 10 -LT_HL_F_VERS_REVISION = 4 +LT_HL_F_VERS_REVISION = 5 LT_HL_F_VERS_AGE = 0 LT_TOOLS_VERS_INTERFACE = 10 -LT_TOOLS_VERS_REVISION = 6 +LT_TOOLS_VERS_REVISION = 7 LT_TOOLS_VERS_AGE = 0 # This library is our main target. diff --git a/src/Makefile.in b/src/Makefile.in index 697668d901c..fe848eb7c84 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -792,26 +792,26 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # See libtool versioning documentation online. # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. -LT_VERS_INTERFACE = 13 -LT_VERS_REVISION = 1 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 14 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 LT_CXX_VERS_INTERFACE = 15 -LT_CXX_VERS_REVISION = 0 +LT_CXX_VERS_REVISION = 1 LT_CXX_VERS_AGE = 0 LT_F_VERS_INTERFACE = 10 -LT_F_VERS_REVISION = 5 +LT_F_VERS_REVISION = 6 LT_F_VERS_AGE = 0 LT_HL_VERS_INTERFACE = 12 -LT_HL_VERS_REVISION = 1 +LT_HL_VERS_REVISION = 2 LT_HL_VERS_AGE = 2 LT_HL_CXX_VERS_INTERFACE = 12 -LT_HL_CXX_VERS_REVISION = 1 +LT_HL_CXX_VERS_REVISION = 2 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 10 -LT_HL_F_VERS_REVISION = 4 +LT_HL_F_VERS_REVISION = 5 LT_HL_F_VERS_AGE = 0 LT_TOOLS_VERS_INTERFACE = 10 -LT_TOOLS_VERS_REVISION = 6 +LT_TOOLS_VERS_REVISION = 7 LT_TOOLS_VERS_AGE = 0 # Our main target, the HDF5 library From 57df34d2aaee3d89b6f704955f5b4f4e42040157 Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Tue, 22 Dec 2020 14:48:37 -0600 Subject: [PATCH 06/12] Update pkgconfig settings with version - #218 (#223) --- c++/src/CMakeLists.txt | 4 ++-- fortran/src/CMakeLists.txt | 4 ++-- hl/c++/src/CMakeLists.txt | 4 ++-- hl/fortran/src/CMakeLists.txt | 4 ++-- hl/src/CMakeLists.txt | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt index 98c6024de6a..ba08f163d67 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -196,8 +196,8 @@ if (BUILD_SHARED_LIBS) set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_CPP_LIB_CORENAME}") endif () -set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME}") -set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME}") +set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") +set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") configure_file ( ${HDF_RESOURCES_DIR}/libhdf5.pc.in diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 85a93bfe35f..9172033aa9c 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -580,8 +580,8 @@ if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED) set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_F90_LIB_CORENAME}") endif () -set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME}") -set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME}") +set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") +set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") configure_file ( ${HDF_RESOURCES_DIR}/libhdf5.pc.in diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt index 77382c25bc7..0c9b04b6d63 100644 --- a/hl/c++/src/CMakeLists.txt +++ b/hl/c++/src/CMakeLists.txt @@ -105,8 +105,8 @@ if (BUILD_SHARED_LIBS) set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_HL_CPP_LIB_CORENAME}") endif () -set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_CORENAME}") -set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_CORENAME}") +set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") +set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") configure_file ( ${HDF_RESOURCES_DIR}/libhdf5.pc.in diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt index edde8310df8..929d867543e 100644 --- a/hl/fortran/src/CMakeLists.txt +++ b/hl/fortran/src/CMakeLists.txt @@ -245,8 +245,8 @@ if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED) set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_HL_F90_LIB_CORENAME}") endif () -set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_CORENAME}") -set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_CORENAME}") +set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") +set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") configure_file ( ${HDF_RESOURCES_DIR}/libhdf5.pc.in diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt index c2a879c8b1d..bb100886700 100644 --- a/hl/src/CMakeLists.txt +++ b/hl/src/CMakeLists.txt @@ -133,8 +133,8 @@ if (BUILD_SHARED_LIBS) set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_HL_LIB_CORENAME}") endif () -set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME}") -set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME}") +set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") +set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}") configure_file ( ${HDF_RESOURCES_DIR}/libhdf5.pc.in From 10dbac89bb99a07b716b6bccd6d89f337cf9a25e Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Tue, 22 Dec 2020 15:30:39 -0600 Subject: [PATCH 07/12] Add notice of final HDFF5 1.8 release. Add solaris 64bit alignment issue to "Known Problems". --- release_docs/RELEASE.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 6a608274ed9..5d817440700 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,6 +1,10 @@ HDF5 version 1.8.22-12 currently under development ================================================================================ +Notice: HDF5 1.8.22 will be followed later in 2021 by HDF5 1.8.23, the final +release of HDF5 1.8. HDF5 1.10 and HDF5 1.12 are currently available. New +features and migration details are available on the HDF5 web page (link below). + INTRODUCTION ============ @@ -724,6 +728,11 @@ Known Problems CPP ptable test fails on both VS2017 and VS2019 with Intel compiler, JIRA issue: HDFFV-10628. This test will pass with VS2015 with Intel compiler. + Various tests in dt_arith, fillval, and dtypes failed with core dump + during integer conversion on SunOS 5.11 with Sun C 5.15 SunOS_sparc in + 64-bit mode. It appears that these failures were caused by invalid + alignment, which is under investigation. + Known problems in previous releases can be found in the HISTORY*.txt files in the HDF5 source. Please report any new problems found to help@hdfgroup.org. From 458be3239b16820cbd702d74a406c48580160bea Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Tue, 22 Dec 2020 16:48:06 -0600 Subject: [PATCH 08/12] Update 1.8 final release notice. --- release_docs/RELEASE.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 5d817440700..181d183d1c7 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -2,8 +2,9 @@ HDF5 version 1.8.22-12 currently under development ================================================================================ Notice: HDF5 1.8.22 will be followed later in 2021 by HDF5 1.8.23, the final -release of HDF5 1.8. HDF5 1.10 and HDF5 1.12 are currently available. New -features and migration details are available on the HDF5 web page (link below). +release of HDF5 1.8. HDF5 1.10 and HDF5 1.12 are currently available. +Detailed information about these releases can be found at: +https://portal.hdfgroup.org/display/HDF5/Release+Specific+Information INTRODUCTION ============ From 5fde85a5c590ef1c48c40a07eafefc788c57eba3 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Tue, 22 Dec 2020 17:43:22 -0600 Subject: [PATCH 09/12] Update CMake/HDF5Examples version in bin/release --- bin/release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/release b/bin/release index d6377c0cdd3..7c664f89f47 100755 --- a/bin/release +++ b/bin/release @@ -225,7 +225,7 @@ tar2cmakezip() # step 3: add LIBAEC.tar.gz, ZLib.tar.gz and cmake files cp /mnt/scr1/pre-release/hdf5/CMake/LIBAEC.tar.gz $cmziptmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmziptmpsubdir - cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-0.2.11-Source.tar.gz $cmziptmpsubdir + cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-0.2.12-Source.tar.gz $cmziptmpsubdir cp $cmziptmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmziptmpsubdir cp $cmziptmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmziptmpsubdir cp $cmziptmpsubdir/$version/config/cmake/scripts/HDF5options.cmake $cmziptmpsubdir @@ -319,7 +319,7 @@ tar2cmaketgz() # step 3: add LIBAEC.tar.gz, ZLib.tar.gz and cmake files cp /mnt/scr1/pre-release/hdf5/CMake/LIBAEC.tar.gz $cmgztmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmgztmpsubdir - cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-0.2.11-Source.tar.gz $cmgztmpsubdir + cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-0.2.12-Source.tar.gz $cmgztmpsubdir cp $cmgztmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmgztmpsubdir cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmgztmpsubdir cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5options.cmake $cmgztmpsubdir From faf36a3a823fbc3a9ff6b95b79b8ae1888430e03 Mon Sep 17 00:00:00 2001 From: bmribler <39579120+bmribler@users.noreply.github.com> Date: Wed, 23 Dec 2020 18:47:35 -0500 Subject: [PATCH 10/12] Fixed typo in an error message. (#227) --- src/H5O.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/H5O.c b/src/H5O.c index 2adc27cc1b5..eab3f1c57c6 100644 --- a/src/H5O.c +++ b/src/H5O.c @@ -3346,7 +3346,7 @@ H5O_dec_rc(H5O_t *oh) /* check args */ if (!oh) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name") + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid object header") /* Decrement reference count */ oh->rc--; From 1c141c0240a22335d22b4d4b59cb4b28fa811fcf Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Tue, 5 Jan 2021 10:11:00 -0600 Subject: [PATCH 11/12] Remove duplicate setting (#239) --- config/cmake/HDF5PluginCache.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/config/cmake/HDF5PluginCache.cmake b/config/cmake/HDF5PluginCache.cmake index 99ea4b25e24..2b9e48c26f7 100644 --- a/config/cmake/HDF5PluginCache.cmake +++ b/config/cmake/HDF5PluginCache.cmake @@ -8,7 +8,6 @@ set (H5PL_BUILD_TESTING ON CACHE BOOL "Enable h5pl testing" FORCE) set (BUILD_EXAMPLES ON CACHE BOOL "Build h5pl Examples" FORCE) -set (HDF5_PACKAGE_NAME "hdf5" CACHE STRING "Name of HDF5 package" FORCE) set (HDF5_HDF5_HEADER "h5pubconf.h" CACHE STRING "Name of HDF5 header" FORCE) set (HDF5_LINK_LIBS ${HDF5_LIBSH_TARGET} CACHE STRING "hdf5 target" FORCE) #set (HDF5_INCLUDE_DIR $ CACHE PATH "hdf5 include dirs" FORCE) From 03ca350bb7ddaa7e773de880fa2b8ce862c8121b Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Thu, 14 Jan 2021 12:12:20 -0600 Subject: [PATCH 12/12] RELEASE.txt cleanup. --- release_docs/RELEASE.txt | 43 +++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index c9a7d412693..ed28ed0c427 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -57,28 +57,28 @@ New Features The HDF filter plugins project is a collection of registered compression filters that can be dynamically loaded when needed to access data stored - in a hdf5 file. This CMake-only option allows the plugins to be built and + in an hdf5 file. This CMake-only option allows the plugins to be built and distributed with the hdf5 library and tools. Like the options for szip and zlib, either a tgz file or a git repository can be specified for the source. The option was refactored to use the CMake FetchContent process. This allows more control over the filter targets, but required external project command - options to be moved to a CMake include file, HDF5PluginCache.cmake. Also - enabled the filter examples to be used as tests for operation of the + options to be moved to a CMake include file, HDF5PluginCache.cmake. It also + allows the filter examples to be used as tests for operation of the filter plugins. (ADB - 2020/12/10, OESS-98) - CMake option to use MSVC naming conventions with MinGW - HDF5_MSVC_NAMING_CONVENTION option enable to use MSVC naming conventions + HDF5_MSVC_NAMING_CONVENTION option enables using MSVC naming conventions when using a MinGW toolchain (xan - 2020/10/30) - CMake option to statically link gcc libs with MinGW - HDF5_MINGW_STATIC_GCC_LIBS allows to statically link libg/libstdc++ + HDF5_MINGW_STATIC_GCC_LIBS allows statically linking libg/libstdc++ with the MinGW toolchain (xan - 2020/10/30) @@ -87,7 +87,7 @@ New Features The HDF filter plugins project is a collection of registered compression filters that can be dynamically loaded when needed to access data stored - in a hdf5 file. This CMake-only option allows the plugins to be built and + in an hdf5 file. This CMake-only option allows the plugins to be built and distributed with the hdf5 library and tools. Like the options for szip and zlib, either a tgz file or a git repository can be specified for the source. @@ -138,8 +138,8 @@ New Features The open source AEC library is a replacement library for SZip. In order to use it for hdf5 the libaec CMake source was changed to add "-fPIC" and exclude test files. Autotools does not build the - compression libraries within hdf5 builds. New option USE_LIBAEC is - required to compensate for the different files produced by AEC build. + compression libraries within hdf5 builds. CMake requires new option + USE_LIBAEC to compensate for the different files produced by AEC build. (ADB - 2020/04/22, OESS-65) @@ -160,7 +160,7 @@ New Features Intel C, Fortran warnings flags were moved to files in a config sub-folder named intel-warnings. - There are flags in named "error-xxx" files with warnings that may + There are flags in files named "error-xxx" with warnings that may be promoted to errors. Some source files may still need fixes. There are also pairs of files named "developer-xxx" and "no-developer-xxx" @@ -260,12 +260,12 @@ New Features - Add mingw CMake support with a toolchain file - There has been a number of mingw issues that has been linked under + There have been a number of mingw issues that have been linked under HDFFV-10845. It has been decided to implement the CMake cross-compiling technique of toolchain files. We will use a linux platform with the mingw compiler stack for testing. Only the C language is fully supported, and the error tests are skipped. The C++ language works for static but shared - builds has a shared library issue with the mingw Standard Exception Handling + builds have a shared library issue with the mingw Standard Exception Handling library, which is not available on Windows. Fortran has a common cross-compile problem with the fortran configure tests. @@ -301,7 +301,7 @@ New Features (ADB - 2018/10/04, HDFFV-10594) - - Add warning flags for Intel compilers + - Add warnings flags for Intel compilers Identified Intel compiler specific warnings flags that should be used instead of GNU flags. @@ -321,9 +321,13 @@ New Features Library ------- - - Add S3 and HDFS VFDs to HDF5 maintenance + - Added S3 and HDFS Virtual File Drivers (VFDs) to HDF5 - Fix windows requirements and java tests. Windows requires CMake 3.13. + These new VFDs have been added in HDF5-1.8.22. Instructions to + enable them when configuring HDF5 on Linux and Mac may be found at + https://portal.hdfgroup.org/display/HDF5/Virtual+File+Drivers+-+S3+and+HDFS. + + Installing on Windows requires CMake 3.13 and the following additional setup. Install openssl library (with dev files); from "Shining Light Productions". msi package preferred. @@ -349,7 +353,9 @@ New Features - Allow pre-generated H5Tinit.c and H5make_libsettings.c to be used. Rather than always running H5detect and generating H5Tinit.c and - H5make_libsettings.c, supply a location for those files. + H5make_libsettings.c, supply a location for those files with CMake variables + HDF5_USE_PREGEN and HDF5_USE_PREGEN_DIR. See release_docs/README_HPC + section VI "Other cross compiling options". (ADB - 2018/09/18, HDFFV-10332) @@ -517,7 +523,7 @@ Bug Fixes since HDF5-1.8.21 ----- - h5repack was fixed to repack the reference attributes properly. The code line that checks if the update of reference inside a compound - datatype is misplaced outside the code block loop that carries out the + datatype was misplaced outside the code block loop that carries out the check. In consequence, the next attribute that is not the reference type was repacked again as the reference type and caused the failure of repacking. The fix is to move the corresponding code line to the correct @@ -546,6 +552,7 @@ Bug Fixes since HDF5-1.8.21 (LRK - 2019/05/09, HDFFV-10596) + C++ API ------- - None @@ -692,8 +699,8 @@ The following platforms are not supported but have been tested for this release. (cori) intel/19.0.3 Linux-4.4.180-94.107-default cray-mpich/7.7.6 - # 1SMP x86_64 GNU/Linux gcc/7.2.0, 8.2.0 - (mutrino) intel/17.0.4, 18.0.2, 19.0.4 + # 1SMP x86_64 GNU/Linux gcc/8.3.0, 9.3.0 + (mutrino) intel/19.0.4 Fedora32 5.8.18-200.fc32.x86_64 #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 10.2.1 20201016 (Red Hat 10.2.1-6)