From fe0eca39c9a82a4b24887f4d81f5903ac357a83d Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Wed, 22 Jan 2020 08:34:30 -0600 Subject: Merge pull request #2289 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:develop to develop * commit 'a92cfed71e0da0ff61af2550640e38bf6d415fee': Remove irrelevant sentence from comment. Remove duplicate lines noted on forum by Eric Bavier Add v111 version for H5O functions to enable version1 default for HDF5 1.8-1.10 and version 3 default for HDF5 1.12. Version 2 functions are available (deprecated) but will not be the default for any version. --- bin/h5cc.in | 7 ------- bin/make_vers | 18 ++++++++++++++++-- src/H5vers.txt | 19 ++++++++++++++----- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/bin/h5cc.in b/bin/h5cc.in index 9c4e3ca..d6b7a12 100644 --- a/bin/h5cc.in +++ b/bin/h5cc.in @@ -121,13 +121,6 @@ usage() { echo " -echo Show all the shell commands executed" echo " -prefix=DIR Prefix directory to find HDF5 lib/ and include/" echo " subdirectories [default: $prefix]" - # A wonderfully informative "usage" message. - echo "usage: $prog_name [OPTIONS] " - echo " OPTIONS:" - echo " -help This help message." - echo " -echo Show all the shell commands executed" - echo " -prefix=DIR Prefix directory to find HDF5 lib/ and include/" - echo " subdirectories [default: $prefix]" echo " -show Show the commands without executing them" echo " -showconfig Show the HDF5 library configuration summary" echo " -shlib Compile with shared HDF5 libraries [default for hdf5 built" diff --git a/bin/make_vers b/bin/make_vers index d2dca4e..e4cdae6 100755 --- a/bin/make_vers +++ b/bin/make_vers @@ -9,7 +9,7 @@ use warnings; # need to be decremented. - QAK) # Max. library "index" (0 = v1.0, 1 = 1.2, 2 = 1.4, 3 = 1.6, 4 = 1.8, 5 = 1.10, 6 = 1.12, etc) -$max_idx = 6; +$max_idx = 7; # Min. supported previous library version "index" (0 = v1.0, 1 = 1.2, etc) $min_sup_idx = 3; @@ -354,7 +354,18 @@ sub parse_line ($) { my $vers_idx; # Index of version in array # Do some validation on the input - if(!( $_ =~ /v1[02468]/ || $_ =~ /v11[02468]/ )) { + # Note: v111 is allowed because H5O functions were prematurely versioned + # in HDF5 1.10. Because users were affected by this, the versioning + # was rescinded but the H5O version 2 functions were kept to be + # called directly. Now that the version macros are added in 1.12, + # along with a 3rd version of the H5O functions, the H5O function + # version for default api=v110 should be version 1 to work correctly + # with 1.10 applications that were using unversioned H5O functions, + # and the H5O function version should be version 3 for default api=v112 + # (the default api version for 1.12). Allowing a v111 entry and + # incrementing its index 13 lines below allows a version 2 that is + # never accessed via the H5O function macros. + if(!( $_ =~ /v1[02468]/ || $_ =~ /v11[02468]/ || $_ =~ /v111/ )) { die "bad version information: $name"; } if(exists($sym_versions{$_})) { @@ -367,6 +378,9 @@ sub parse_line ($) { #print "parse_line: _=$_\n"; # Get the index of the version ($vers_idx) = ($_ =~ /v1(\d+)/); + if($vers_idx == 11) { + $vers_idx++; + } $vers_idx /= 2; #print "parse_line: vers_idx='$vers_idx'\n"; push(@vers_nums, $vers_idx); diff --git a/src/H5vers.txt b/src/H5vers.txt index 0df2675..ae1d600 100644 --- a/src/H5vers.txt +++ b/src/H5vers.txt @@ -62,11 +62,20 @@ FUNCTION: H5Literate; H5L_iterate; v18, v112 FUNCTION: H5Literate_by_name; H5L_iterate; v18, v112 FUNCTION: H5Lvisit; H5L_iterate; v18, v112 FUNCTION: H5Lvisit_by_name; H5L_iterate; v18, v112 -FUNCTION: H5Oget_info; ; v18, v10, v112 -FUNCTION: H5Oget_info_by_name; ; v18, v10, v112 -FUNCTION: H5Oget_info_by_idx; ; v18, v10, v112 -FUNCTION: H5Ovisit; ; v18, v10, v112 -FUNCTION: H5Ovisit_by_name; ; v18, v10, v112 +# Note: v111 is allowed in make_vers because H5O functions were prematurely +# versioned in HDF5 1.10. Because users were affected by this, the +# versioning was rescinded but the H5O version 2 functions were kept +# to be called directly. Now that the version macros are added in 1.12, +# along with a 3rd version of the H5O functions, the H5O function +# version for default api=v110 should be version 1 to work correctly +# with 1.10 applications that were using unversioned H5O functions, +# and the H5O function version should be version 3 for default api=v112 +# (the default api version for 1.12). +FUNCTION: H5Oget_info; ; v18, v111, v112 +FUNCTION: H5Oget_info_by_name; ; v18, v111, v112 +FUNCTION: H5Oget_info_by_idx; ; v18, v111, v112 +FUNCTION: H5Ovisit; ; v18, v111, v112 +FUNCTION: H5Ovisit_by_name; ; v18, v111, v112 FUNCTION: H5Pencode; ; v110, v112 FUNCTION: H5Pget_filter; ; v10, v18 FUNCTION: H5Pget_filter_by_id; ; v16, v18 -- cgit v0.12