Log message:
Update devel/hdf5 and devel/hdf5-c++ to version 1.8.18.
New Features
============
Configuration
-------------
- CMake: Added NAMESPACE hdf5:: to package configuration files to allow
projects using installed HDF5 binaries built with CMake to link with
them without specifying the HDF5 library location via IMPORTED_LOCATION.
(ADB, 2016/10/17, HDFFV-10003)
- CMake: Changed the CTEST_BUILD_CONFIGURATION option to
CTEST_CONFIGURATION_TYPE as recommended by the CMake documentation.
(ADB, 2016/10/17, HDFFV-9971)
- CMake: Added support for GIT
(ADB, 2016/07/12)
Bug Fixes since HDF5-1.8.17
===========================
Configuration
-------------
- Fixed a problem preventing HDF5 to be built on 32-bit CYGWIN by
condensing cygwin configuration files into a single file and
removing outdated compiler settings.
(ABD, 2016/07/12, HDFFV-9946)
- CMake: Fixed a command length overflow error by converting custom
commands inside CMakeTest.cmake files into regular dependencies and
targets.
(ABD, 2016/07/12, HDFFV-9939)
- CMake: Fixed a timeout error that would occasionally occur when running
the virtual file driver tests simultaneously due to test directory and file
name collisions.
(ABD, 2016/09/19, HDFFV-9431)
Library
-------
- Fixed a memory leak that would occur when the library allocated memory
for an external file prefix (H5Pset_efile_prefix) and failed to free it.
(DER, 2016/04/29)
- Fixed an error that would occur when calling H5Adelete on an attribute
which is attached to an externally linked object in the target file and
whose datatype is a committed datatype in the main file.
(VC, 2016-07-04, HDFFV-9940)
- Fixed a problem where a plugin compiled into a DLL in the default plugin
directory could not be found by the HDF5 library at runtime on Windows
when the HDF5_PLUGIN_PATH environment variable was not set.
(ABD, 2016/08/01, HDFFV-9706)
- Fixed an issue where H5Pset_alignment could result in misaligned blocks
with some input combinations, causing an assertion failure in debug mode.
(NAF, 2016/08/11, HDFFV-9948)
- A number of issues were fixed when reading/writing from/to corrupted
files to ensure that the library fails gracefully in these cases:
* Writing to a corrupted file that has an object message which is
incorrectly marked as sharable on disk results in a buffer overflow /
invalid write instead of a clean error message.
* Decoding data from a corrupted file with a dataset encoded with the
H5Z_NBIT decoding can result in a code execution vulnerability under
the context of the application using the HDF5 library.
* When decoding an array datatype from a corrupted file, the HDF5 library
fails to return an error in production if the number of dimensions
decoded is greater than the maximum rank.
* When decoding an "old style" array datatype from a corrupted \
file, the
HDF5 library fails to return an error in production if the number of
dimensions decoded is greater than the maximum rank.
(NAF, 2016/10/06, HDFFV-9950, HDFFV-9951, HDFFV-9992, HDFFV-9993)
- Fixed an error that would occur when copying an object with an attribute
which is a compound datatype consisting of a variable length string.
(VC, 2016-10-17, HDFFV-7991)
Parallel Library
----------------
- Fixed a bug that could occur when allocating a chunked dataset in parallel
with an alignment set and an alignment threshold greater than the chunk
size but less than or equal to the raw data aggregator size.
(NAF, 2016/08/11, HDFFV-9969)
Performance
-------------
- None
Tools
-----
- Fixed an error in the compiler wrapper scripts (h5cc, h5fc, et al.)
in which they would erroneously drop the file argument specified via
the -o flag when the -o flag was specified before the -c flag on the
command line, resulting in a failure to compile.
(LRK, 2016/06/08, HDFFV-9938, HDFFV-9530)
- h5repack User Defined (UD) filter parameters were not parsed correctly.
The UD filter parameters were not being parsed correctly. Reworked coding
section to parse the correct values and verify number of parameters.
(ADB, 2016/10/19, HDFFV-9996, HDFFV-9974, HDFFV-9515, HDFFV-9039)
Fortran API
-----------
- Fortran library fails to compile and fails tests with NAG compiler.
* Removed the non-standard assumption that KIND=SIZEOF, in the HDF5
configure programs.
* Removed Fortran 66 character/integer conversions from tests.
* Removed the use of C_SIZEOF in the test programs
* Changed to using STORAGE_SIZE in the test programs if available. Otherwise,
uses C_SIZEOF or SIZEOF.
(MSB, 2016/9/22, HDFFV-9973)
- Fortran segfaults for F03 tests with NAG compiler
* Removed INTENT(OUT) from 'fillvalue' in F2003 interface
for H5Pget_fill_value_f.
(MSB, 2016/9/22, HDFFV-9980)
C++ API
-------
- The macro H5_NO_NAMESPACE is deprecated from the HDF5 C++ API library.
In future releases, the macros H5_NO_STD and OLD_HEADER_FILENAME may
also be removed.
(BMR, 2016/10/27, HDFFV-9532)
High-Level APIs:
---------------
- The high-level API Packet Table (PT) did not write data correctly when
the datatype is a compound type that has string type as one of the
members. This problem started in 1.8.15, after the fix of HDFFV-9042
was applied, which caused the Packet Table to use native type to access
the data. It should be up to the application to specify whether the
buffer to be read into memory in the machineâs native architecture.
Thus, the PT is fixed to not use native type but to make a copy of the
user's provided datatype during creation or the packet table's datatype
during opening. If an application wishes to use native type to read the
data, then the application will request that. However, the Packet Table
doesn't provide a way to specify memory datatype in this release. This
feature will be available in future releases, HDFFV-10023.
(BMR, 2016/10/27, HDFFV-9758)
Fortran High-Level APIs:
------------------------
- None
Testing
-------
- None
Supported Platforms
===================
The following platforms are supported and have been tested for this release.
They are built with the configure process unless specified otherwise.
Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++)
#1 SMP x86_64 GNU/Linux compilers:
(platypus/mayll) Version 4.4.7 20120313
Versions 4.8.4, 4.9.3, 5.2.0
PGI C, Fortran, C++ for 64-bit target on
x86-64;
Version 15.7-0
Intel(R) C (icc), C++ (icpc), Fortran (icc)
compilers:
Version 15.0.3.187 Build 20150407
MPICH 3.1.4 compiled with GCC 4.9.3
Linux 2.6.32-573.18.1.el6 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
#1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
(ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
IBM XL C/C++ V13.1
IBM XL Fortran V15.1
Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++)
#1 SMP x86_64 GNU/Linux compilers:
(kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4)
Versions 4.9.3, 5.2.0
Intel(R) C (icc), C++ (icpc), Fortran (icc)
compilers:
Version 15.0.3.187 Build 20150407
MPICH 3.1.4 compiled with GCC 4.9.3
SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc
(emu) Sun Fortran 95 8.6 SunOS_sparc
Sun C++ 5.12 SunOS_sparc
Windows 7 Visual Studio 2012 w/ Intel Fortran 15 (cmake)
Visual Studio 2013 w/ Intel Fortran 15 (cmake)
Visual Studio 2015 w/ Intel Fortran 16 (cmake)
Cygwin(CYGWIN_NT-6.1 2.2.1(0.289/5/3) \
gcc(4.9.3) compiler and gfortran)
(cmake and autotools)
Windows 7 x64 Visual Studio 2012 w/ Intel Fortran 15 (cmake)
Visual Studio 2013 w/ Intel Fortran 15 (cmake)
Visual Studio 2015 w/ Intel Fortran 16 (cmake)
Windows 10 Visual Studio 2015 w/ Intel Fortran 16 (cmake)
Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 16 (cmake)
Mac OS X Mt. Lion 10.8.5 Apple LLVM version 5.1 (clang-503.0.40)
64-bit gfortran GNU Fortran (GCC) 4.8.2
(swallow/kite) Intel icc/icpc/ifort version 15.0.3
Mac OS X Mavericks 10.9.5 Apple LLVM version 6.0 (clang-600.0.57)
64-bit gfortran GNU Fortran (GCC) 4.9.2
(wren/quail) Intel icc/icpc/ifort version 15.0.3
Mac OS X Yosemite 10.10.5 Apple LLVM version 6.1 (clang-602.0.53)
64-bit gfortran GNU Fortran (GCC) 4.9.2
(osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.3
Mac OS X El Capitan 10.11.4 Apple LLVM version 7.3.0 (clang-703.0.29)
64-bit gfortran GNU Fortran (GCC) 5.2.0
(VM osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2
Tested Configuration Features Summary
=====================================
In the tables below
y = tested
n = not tested in this release
C = Cluster
W = Workstation
x = not working in this release
dna = does not apply
( ) = footnote appears below second table
<blank> = testing incomplete on this feature or platform
Platform C F90/ F90 C++ zlib SZIP
parallel F2003 parallel
SunOS 5.11 32-bit n y/y n y y y
SunOS 5.11 64-bit n y/y n y y y
Windows 7 y y/y n y y y
Windows 7 x64 y y/y n y y y
Windows 7 Cygwin n y/y n y y n
Windows 10 n y/y n y y y
Windows 10 x64 n y/y n y y y
Mac OS X Mountain Lion 10.8.5 64-bit n y/y n y y y
Mac OS X Mavericks 10.9.5 64-bit n y/y n y y y
Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y
AIX 6.1 32- and 64-bit n y/n n y y y
CentOS 6.7 Linux 2.6.32 x86_64 GNU y y/y y y y y
CentOS 6.7 Linux 2.6.32 x86_64 Intel n y/y n y y y
CentOS 6.7 Linux 2.6.32 x86_64 PGI n y/y n y y y
CentOS 7.1 Linux 3.10.0 x86_64 GNU y y/y y y y y
CentOS 7.1 Linux 3.10.0 x86_64 Intel n y/y n y y y
Linux 2.6.32-431.11.2.el6.ppc64 n y/n n y y y
Platform Shared Shared Shared Thread-
C libs F90 libs C++ libs safe
SunOS 5.11 32-bit y y y y
SunOS 5.11 64-bit y y y y
Windows 7 y y y y
Windows 7 x64 y y y y
Windows 7 Cygwin n n n y
Windows 10 y y y y
Windows 10 x64 y y y y
Mac OS X Mountain Lion 10.8.5 64-bit y n y y
Mac OS X Mavericks 10.9.5 64-bit y n y y
Mac OS X Yosemite 10.10.5 64-bit y n y y
AIX 6.1 32- and 64-bit y n n y
CentOS 6.7 Linux 2.6.32 x86_64 GNU y y y y
CentOS 6.7 Linux 2.6.32 x86_64 Intel y y y y
CentOS 6.7 Linux 2.6.32 x86_64 PGI y y y y
CentOS 7.1 Linux 3.10.0 x86_64 GNU y y y y
CentOS 7.1 Linux 3.10.0 x86_64 Intel y y y y
Linux 2.6.32-431.11.2.el6.ppc64 y y y y
Compiler versions for each platform are listed in the preceding
"Supported Platforms" table.
More Tested Platforms
=====================
The following platforms are not supported but have been tested for this release.
Linux 2.6.32-573.22.1.el6 g95 (GCC 4.0.3 (g95 0.94!)
#1 SMP x86_64 GNU/Linux
(platypus)
Debian8.4.0 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1 x86_64 GNU/Linux
gcc (Debian 4.9.2-10) 4.9.2
GNU Fortran (Debian 4.9.2-10) 4.9.2
(cmake and autotools)
Fedora24 4.7.2-201.fc24.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
gcc (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3)
GNU Fortran (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3)
(cmake and autotools)
CentOS 7.2 3.10.0-327.28.2.el7.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
(cmake and autotools)
Ubuntu 16.04 4.4.0-38-generic #62-Ubuntu SMP x86_64 GNU/Linux
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0
GNU Fortran (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0
(cmake and autotools)
Known Problems
==============
* On windows platforms in debug configurations, the VFD flush1 tests will fail
with the split and multi VFD drivers. These tests will display a modal debug
dialog which must be answered or wait for the test timeout to expire.
(ADB - 2014/06/23 - HDFFV-8851)
* CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv
catches some undefined behavior in the alignment algorithm of the macro DETECT_I
in H5detect.c (Issue 8147). Since the algorithm is trying to detect the alignment
of integers, ideally the flag -fcatch-undefined-behavior shouldn't to be used for
H5detect.c. In the future, we can separate flags for H5detect.c from the rest of
the library. (SLU - 2013/10/16)
* Make provided by Solaris fails in "make check". Solaris users should use
gmake to build and install the HDF5 software. (AKC - 2013/10/08 - HDFFV-8534)
* The C++ and FORTRAN bindings are not currently working on FreeBSD with the
native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the
ports (and probably gcc releases after that).
(QAK - 2012/10/19)
* The following h5dump test case fails in BG/P machines (and potentially other
machines that use a command script to launch executables):
h5dump --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 \
tl=0"
tno-subset.h5
This is due to the embedded spaces in the dataset name being interpreted
by the command script launcher as meta-characters, thus passing three
arguments to h5dump's -d flag. The command passes if run by hand, just
not via the test script.
(AKC - 2012/05/03)
* The STDIO VFD does not work on some architectures, possibly due to 32/64
bit or large file issues. The basic STDIO VFD test is known to fail on
64-bit SunOS 5.10 on SPARC when built with -m64 and 32-bit OS X/Darwin
10.7.0. The STDIO VFD test has been disabled while we investigate and
a fix should appear in a future release.
(DER - 2011/10/14 - HDFFV-8235)
* h5diff can report inconsistent results when comparing datasets of enum type
that contain invalid values. This is due to how enum types are handled in
the library and will be addressed in a future release.
(DER - 2011/10/14 - HDFFV-7527)
* The links test can fail under the stdio VFD due to some issues with external
links. This will be investigated and fixed in a future release.
(DER - 2011/10/14 - HDFFV-7768)
* After the shared library support was fixed for some bugs, it was discovered
that "make prefix=XXX install" no longer works for shared libraries. It
still works correctly for static libraries. Therefore, if you want to
install the HDF5 shared libraries in a location such as /usr/local/hdf5,
you need to specify the location via the --prefix option during configure
time. E.g, ./configure --prefix=/usr/local/hdf5 ...
(AKC - 2011/05/07 - HDFFV-7583)
* The parallel test, t_shapesame, in testpar/, may run for a long time and may
be terminated by the alarm signal. If that happens, one can increase the
alarm seconds (default is 1200 seconds = 20 minutes) by setting the
environment variable, $HDF5_ALARM_SECONDS, to a larger value such as 3600
(60 minutes). Note that the t_shapesame test may fail in some systems
(see the "While working on the 1.8.6 release..." problem below). If
it does, it will waste more time if $HDF5_ALARM_SECONDS is set
to a larger value.
(AKC - 2011/05/07)
* Shared Fortran libraries are not quite working on AIX. While they are
generated when --enable-shared is specified, the fortran and hl/fortran
tests fail. the issue. HL and C++ shared libraries should now be
working as intended, however.
(MAM - 2011/04/20)
* While working on the 1.8.6 release of HDF5, a bug was discovered that can
occur when reading from a dataset in parallel shortly after it has been
written to collectively. The issue was exposed by a new test in the parallel
HDF5 test suite, but had existed before that. We believe the problem lies with
certain MPI implementations and/or file systems.
We have provided a pure MPI test program, as well as a standalone HDF5
program, that can be used to determine if this is an issue on your system.
They should be run across multiple nodes with a varying number of processes.
These programs can be found at:
http://www.hdfgroup.org/ftp/HDF5/examples/known_problems/
(NAF - 2011/01/19)
* All the VFL drivers aren't backward compatible. In H5FDpublic.h, the
structure H5FD_class_t changed in 1.8. There is new parameter added to
get_eoa and set_eoa callback functions. A new callback function
get_type_map was added in. The public function H5FDrealloc was taken
out in 1.8. The problem only happens when users define their own driver
for 1.6 and try to plug in 1.8 library. Because there's only one user
complaining about it, we (Elena, Quincey, and I) decided to leave it as
it is (see bug report #1279). Quincey will make a plan for 1.10.
(SLU - 2010/02/02)
* The --enable-static-exec configure flag will only statically link libraries
if the static version of that library is present. If only the shared version
of a library exists (i.e., most system libraries on Solaris, AIX, and Mac,
for example, only have shared versions), the flag should still result in a
successful compilation, but note that the installed executables will not be
fully static. Thus, the only guarantee on these systems is that the
executable is statically linked with just the HDF5 library.
(MAM - 2009/11/04)
* A dataset created or rewritten with a v1.6.3 library or after cannot be read
with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled.
There was a bug in the calculation of the Fletcher32 checksum in the
library before v1.6.3; the checksum value was not consistent between big-
endian and little-endian systems. This bug was fixed in Release 1.6.3.
However, after fixing the bug, the checksum value was no longer the same as
before on little-endian system. Library releases after 1.6.4 can still read
datasets created or rewritten with an HDF5 library of v1.6.2 or before.
(SLU - 2005/06/30)
|
Log message:
Update hdf5 to 1.8.17.
New Features
============
Configuration
-------------
- Cmakehdf5: Added Ability to Run Multiple Make Commands
Added option --njobs to specify up to how many jobs to launch during
build (cmake) and testing (ctest).
(AKC - 2015/12/13, HDFFV-9612)
- Cmakehdf5: Added Szip Support and Verbose Option
Added --with-szlib to support the Szip library; and
--enable/disable-verbose to display all CMake process output.
(AKC - 2015/11/16, HDFFV-8932 and DAILYTEST-195)
- CMake minimum is now 3.1.0. (ADB - 2015/11/14)
- Large File System (LFS) Support has Changed in the Autotools
We assume that fseeko and ftello exist.
The *64 I/O functions and types are no longer explicitly used.
We now rely on a mapping provided by _FILE_OFFSET_BITS (or its
equivalent).
_LARGEFILE(64)_SOURCE is no longer exposed via AM_CPPFLAGS.
(DER - 2016/03/29, HDFFV-9626 and HDFFV-9541)
Library
-------
- New API Calls for Searching for External Dataset Storage
API calls that determine the search path for dataset external
storage were added. H5Pset/get_efile_prefix() API calls were added
to the library. These functions give control over the search path
for dataset external storage that has been configured with
H5Pset_external().
Additionally, the HDF5_EXTFILE_PREFIX environment variable can be
used to control the search path.
(DER - 2016/04/20, HDFFV-8740)
High-Level APIs
---------------
C Packet Table API
------------------
- Replacement of a Public Function with H5PTcreate
The existing function H5PTcreate_fl limits applications so they
can use the deflate compression only. The public function
H5PTcreate has been added to replace H5PTcreate_fl. H5PTcreate
takes a property list identifier to provide flexibility on
creation properties. This also removes the following warning:
"deprecated conversion from string constant to "char*"
[-Wwrite-strings]".
(BMR - 2016/04/25, HDFFV-9708, HDFFV-8615)
- New Public Functions: H5PTget_dataset and H5PTget_type
Two accessor functions have been added. H5PTget_dataset returns
the identifier of the dataset associated with the packet table,
and H5PTget_type returns the identifier of the datatype used by
the packet table.
(BMR - 2016/04/25, HDFFV-8623 patch 3)
- Regarding #ifdef VLPT_REMOVED
The #ifdef VLPT_REMOVED blocks have been removed from the packet
table (PT) library source except for the following functions:
+ H5PTis_varlen() has been made available again
+ H5PTfree_vlen_readbuff() is now H5PTfree_vlen_buff()
(BMR - 2016/04/25, HDFFV-442)
C++ Packet Table API
--------------------
- New Constructor in FL_PacketTable
An overloaded constructor has been added to FL_PacketTable and
takes a property list identifier to provide flexibility on
creation properties such as compression.
FL_PacketTable(hid_t fileID, const char* name, hid_t dtypeID,
hsize_t chunkSize = 0, hid_t plistID = H5P_DEFAULT)
(BMR - 2016/04/25, HDFFV-8623 patch 5)
- New Member Functions in PacketTable
Two accessor wrappers were added to class PacketTable.
PacketTable::GetDataset() returns the identifier of the dataset
associated with the packet table, and PacketTable::GetDatatype()
returns the identifier of the datatype that the packet table uses.
(BMR - 2016/04/25, HDFFV-8623 patch 4)
- New Member Functions with "char*" as an Argument
Overloaded functions were added to provide the "const char*"
argument; the existing version will be deprecated in future
releases. This also removes the following warning:
"deprecated conversion from string constant to "char*"
[-Wwrite-strings]".
(BMR - 2016/04/25, HDFFV-8623 patch 1, HDFFV-8615)
- Regarding #ifdef VLPT_REMOVED
The #ifdef VLPT_REMOVED blocks have been removed from the packet
table library source code except for the following functions:
+ VL_PacketTable::IsVariableLength() was moved to PacketTable
+ VL_PacketTable::FreeReadBuff() is now PacketTable::FreeBuff()
(BMR - 2016/04/25, HDFFV-442)
C++ API
-------
- New Member Function in DSetCreatPropList
DSetCreatPropList::setNbit() was added to setup N-bit compression for
a dataset.
(BMR - 2016/04/25, HDFFV-8623 patch 7)
- New Overloaded "const" Member Functions in ArrayType
The two following functions were added:
ArrayType::getArrayNDims() const
ArrayType::getArrayDims() const
to provide const version, and the non-const version was marked
deprecated. In-memory array information, ArrayType::rank and
ArrayType::dimensions, were removed. This is an implementation
detail and should not affect applications.
(BMR, 2016/04/25, HDFFV-9725)
- New member function added
The assignment operator ArrayType::operator= is added because ArrayType
has pointer data members.
(BMR, 2016/03/07, HDFFV-9562)
Support for New Platforms, Languages, and Compilers
===================================================
- Mac OS X El Capitan 10.11.4 with compilers Apple clang/clang++
version 7.3.0 from Xcode 7.3, gfortran GNU Fortran (GCC) 5.2.0
and Intel icc/icpc/ifort version 16.0.2
Bug Fixes since HDF5-1.8.16
===========================
Configuration
-------------
- Updated Linux Language Level Flags to Match the Autotools. Removed
Linux-specific Flags from OS X.
An addition to the flags simply being out of sync with the Autotools,
the Linux flags were used on OS X builds which led to symbols not being
found. Although this was non-fatal and compilation continued (implicit
definitions were used by the compiler and the symbols resolved at link
time), a large number of warnings were raised.
Linux changes:
* CHANGED: _POSIX_C_SOURCE (from 199605 to 200112L)
* ADDED: _GNU_SOURCE
* REMOVED: _BSD_SOURCE
* REMOVED: _DEFAULT_SOURCE
(DER - 2015/12/08, HDFFV-9627)
- The --enable-clear-file-buffers configure Option was Non-functional
so the Feature was Always Enabled (its default value).
Regardless of the configure flag, the setting was always enabled when
the Autotools were used to configure HDF5. This was due to the "no"
option being processed after the "*" option in configure.ac so \
"*"
matched first. CMake was unaffected.
The option now works correctly.
NOTE that builders are always advised to leave this option enabled.
When disabled, buffers that are written to disk may contain the
memory's previous contents, which may include secure information.
The performance overhead of the feature (a single memset call per
allocation) is minimal.
(DER - 2016/02/03, HDFFV-9676)
- Added a patch to remove '"'s from arguments for MPI compilers that
were causing errors compiling H5lib_settings.c with SGI MPT.
(LRK - 2016/04/20, HDFFV-9439)
Library
-------
- Fixed shared file pointer problem which caused a crash when running a
program provided by a user.
(VC - 2016/04/01, HDFFV-9469)
- Fixed some format string warnings that prevent compiling with
-Werror=format-security on gcc.
These only appeared in error messages and would not cause problems
under normal operation.
(DER - 2016/01/13, HDFFV-9640)
- Fixed a library segmentation fault when accessing a corrupted
file provided by a user.
(MSC - 2016/02/19, HDFFV-9670)
Tools
-----
- h5dump: Sub-setting Fixed for Dimensions Greater than Two
When a dataset has more than two dimensions, sub-setting would
incorrectly calculate the data that needed to be displayed.
Added in block and stride calculations that account for dimensions
greater than two. NOTE: lines that have line breaks inserted
because of display length calculations may have index info that
is incorrect until the next dimension break.
(ADB - 2016/03/07, HDFFV-9698)
- h5dump: Issue with Argument Segmentation Fault
When an argument with an optional value was at the end of the command
line with a value, h5dump would crash. Reworked check for remaining
arguments.
(ADB - 2016/03/07, HDFFV-9570, HDFFV-9684)
- h5dump: Issue with Default Fill Value
Added all default cases of fill value to the display of fill value.
(ADB -, 2016/03/07, HDFFV-9241)
- h5dump: Clarified Help
Clarified usage of -O F option in h5dump utility help.
(ADB - 2016/03/07, HDFFV-9066)
- h5dump: Issue with Double Free Fault
Added a check for filename not null before calling free().
(ADB - 2016/01/27, HDFFV-9639)
- VS2015 Release Changed how Timezone was Handled
Created a function, HDget_timezone, in H5system.c. Replaced
timezone variable usage with function call.
(ADB - 2015/11/02, HDFFV-9550)
C++ API
-------
- Removal of Obsolete Methods
The overloaded methods which had parameters that should be const
but were not have been removed.
(BMR - 2016/01/13, HDFFV-9789)
High-Level APIs:
---------------
- Fixed Memory Leak in Packet Table API
Applied user's patch to fix memory leak in the creation of a
packet table.
(BMR - 2016/04/25, HDFFV-9700)
Known Problems
==============
* On windows platforms in debug configurations, the VFD flush1 tests will fail
with the split and multi VFD drivers. These tests will display a modal debug
dialog which must be answered or wait for the test timeout to expire.
(ADB - 2014/06/23 - HDFFV-8851)
* CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv
catches some undefined behavior in the alignment algorithm of the macro DETECT_I
in H5detect.c (Issue 8147). Since the algorithm is trying to detect the alignment
of integers, ideally the flag -fcatch-undefined-behavior shouldn't to be used for
H5detect.c. In the future, we can separate flags for H5detect.c from the rest of
the library. (SLU - 2013/10/16)
* Make provided by Solaris fails in "make check". Solaris users should use
gmake to build and install the HDF5 software. (AKC - 2013/10/08 - HDFFV-8534)
* The C++ and FORTRAN bindings are not currently working on FreeBSD with the
native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the
ports (and probably gcc releases after that).
(QAK - 2012/10/19)
* The following h5dump test case fails in BG/P machines (and potentially other
machines that use a command script to launch executables):
h5dump --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 \
tl=0"
tno-subset.h5
This is due to the embedded spaces in the dataset name being interpreted
by the command script launcher as meta-characters, thus passing three
arguments to h5dump's -d flag. The command passes if run by hand, just
not via the test script.
(AKC - 2012/05/03)
* The STDIO VFD does not work on some architectures, possibly due to 32/64
bit or large file issues. The basic STDIO VFD test is known to fail on
64-bit SunOS 5.10 on SPARC when built with -m64 and 32-bit OS X/Darwin
10.7.0. The STDIO VFD test has been disabled while we investigate and
a fix should appear in a future release.
(DER - 2011/10/14 - HDFFV-8235)
* h5diff can report inconsistent results when comparing datasets of enum type
that contain invalid values. This is due to how enum types are handled in
the library and will be addressed in a future release.
(DER - 2011/10/14 - HDFFV-7527)
* The links test can fail under the stdio VFD due to some issues with external
links. This will be investigated and fixed in a future release.
(DER - 2011/10/14 - HDFFV-7768)
* After the shared library support was fixed for some bugs, it was discovered
that "make prefix=XXX install" no longer works for shared libraries. It
still works correctly for static libraries. Therefore, if you want to
install the HDF5 shared libraries in a location such as /usr/local/hdf5,
you need to specify the location via the --prefix option during configure
time. E.g, ./configure --prefix=/usr/local/hdf5 ...
(AKC - 2011/05/07 - HDFFV-7583)
* The parallel test, t_shapesame, in testpar/, may run for a long time and may
be terminated by the alarm signal. If that happens, one can increase the
alarm seconds (default is 1200 seconds = 20 minutes) by setting the
environment variable, $HDF5_ALARM_SECONDS, to a larger value such as 3600
(60 minutes). Note that the t_shapesame test may fail in some systems
(see the "While working on the 1.8.6 release..." problem below). If
it does, it will waste more time if $HDF5_ALARM_SECONDS is set
to a larger value.
(AKC - 2011/05/07)
* Shared Fortran libraries are not quite working on AIX. While they are
generated when --enable-shared is specified, the fortran and hl/fortran
tests fail. the issue. HL and C++ shared libraries should now be
working as intended, however.
(MAM - 2011/04/20)
* While working on the 1.8.6 release of HDF5, a bug was discovered that can
occur when reading from a dataset in parallel shortly after it has been
written to collectively. The issue was exposed by a new test in the parallel
HDF5 test suite, but had existed before that. We believe the problem lies with
certain MPI implementations and/or file systems.
We have provided a pure MPI test program, as well as a standalone HDF5
program, that can be used to determine if this is an issue on your system.
They should be run across multiple nodes with a varying number of processes.
These programs can be found at:
http://www.hdfgroup.org/ftp/HDF5/examples/known_problems/
(NAF - 2011/01/19)
* All the VFL drivers aren't backward compatible. In H5FDpublic.h, the
structure H5FD_class_t changed in 1.8. There is new parameter added to
get_eoa and set_eoa callback functions. A new callback function
get_type_map was added in. The public function H5FDrealloc was taken
out in 1.8. The problem only happens when users define their own driver
for 1.6 and try to plug in 1.8 library. Because there's only one user
complaining about it, we (Elena, Quincey, and I) decided to leave it as
it is (see bug report #1279). Quincey will make a plan for 1.10.
(SLU - 2010/02/02)
* The --enable-static-exec configure flag will only statically link libraries
if the static version of that library is present. If only the shared version
of a library exists (i.e., most system libraries on Solaris, AIX, and Mac,
for example, only have shared versions), the flag should still result in a
successful compilation, but note that the installed executables will not be
fully static. Thus, the only guarantee on these systems is that the
executable is statically linked with just the HDF5 library.
(MAM - 2009/11/04)
* A dataset created or rewritten with a v1.6.3 library or after cannot be read
with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled.
There was a bug in the calculation of the Fletcher32 checksum in the
library before v1.6.3; the checksum value was not consistent between big-
endian and little-endian systems. This bug was fixed in Release 1.6.3.
However, after fixing the bug, the checksum value was no longer the same as
before on little-endian system. Library releases after 1.6.4 can still read
datasets created or rewritten with an HDF5 library of v1.6.2 or before.
(SLU - 2005/06/30)
|
Log message:
Update to 1.8.14
Upstream changes:
Release 1.8.14 of November 2014 (current release) versus Release 1.8.13
In the main library C Interface
No new C functions have been added.
The behavior of the following C function has been changed:
The function H5Pset_core_write_tracking has been modified to enforce the \
limitation that the value of the page_size parameter cannot equal 0 (zero):
H5Pset_core_write_tracking
The following performance optimization has been implemented in the Parallel HDF5 \
library:
The algoritm for writing chunk fill values for new datasets has been \
optimized to write out all chunk fill values collectively in a single MPI-IO \
call. This was previously done independently by rank 0 (zero) one block at a \
time. This optimization should produce a significant performance improvement \
when creating chunked datasets in parallel, most notably when chunk dimensions \
are relatively small. This optimization will be evident in use of the following \
function:
H5Dcreate
In the high-level library C Interface
High-level HDF5 interfaces now ensure that strings are null-terminated and will \
not overflow a buffer.
In several high-level functions, the type from the file was previously \
re-used as the memory type and no check is made to ensure that a string was \
actually null-terminated.
All high-level functions now check for NULL pointers; verify that a received \
a string is null-terminated; and verify that the string will not overflow the \
buffer. The minimum length of the buffers is now used in strncmp to avoid \
overflow.
In the main library C++ Interface
No new C++ methods have been added.
The following changes have been made in the C++ interface:
Changed defaults
Default value of class member id:
The data member id in several classes that represent HDF5 objects are \
now initialized to H5I_INVALID_ID.
Default value of a PropList member id:
The data member id in class PropList is now initialized to H5P_DEFAULT.
In HDF5 Release 1.8.13 and earlier, the above were initialized to 0 (zero).
Changed file access flags
The flag H5F_ACC_CREAT has been removed from the C++ interface.
In the main library Fortran Interface
No new Fortran subroutines have been added.
Changed Fortran INTEGER parameter types:
Types of the following Fortran parameter constants have been changed from \
INTEGER to INTEGER(HID_T):
H5FD_CORE H5FD_MULTI
H5FD_FAMILY H5FD_SEC2
H5FD_LOG H5FD_STDIO
H5FD_MPIO
Other internal int types have been changed to hid_t, but this change is \
expected to be transparent to the user
Release 1.8.13 of May 2014 versus Release 1.8.12
In the C Interface (main library)
The following new C functions have been added:
To free memory allocated by HDF5 function calls:
H5free_memory
This function should be used to free memory that has been allocated by \
HDF5 API calls such as H5Tget_member_name and H5Pget_class_name.
The primary value for this call is on Windows systems, where it is \
common for application code and the HDF5 Library to be using different C \
run-time libraries (CRT). Using this new call ensures that the same CRT handles \
both the allocation and free.
This function can also be useful in any case where the library uses a \
different memory manager than the application, such as when a debug memory \
manager is in use or when the HDF5 Library is wrapped for use in a managed \
language like Python or Java.
New configuration property for the CORE driver:
H5Pset_core_write_tracking
H5Pget_core_write_tracking
With this property, the CORE driver, H5Pset_fapl_core, can be configured \
to track dirty regions in the file and write out only the changed regions on \
flush or close operations. Additionally, a page aggregation size can be set that \
will aggregate small writes into larger writes. For example, setting a 1 \
mebibyte (1 MiB) page aggregation size will logically partition the the \
in-memory file into 1 MiB pages that will be written out in their entirety if \
even a single byte is dirtied.
The following C functions have been modified:
H5Rget_name
If the name parameter is passed as NULL, then the size parameter is ignored \
and the function returns the size of the buffer required to read the name (not \
including the NULL terminator).
H5Zfilter_avail
This function has been updated to correctly identify dynamically loaded \
filters. If a filter is not found among registered filters, the function now \
checks for dynamically loaded filters.
In the C++ Interface
The following new features have been added:
Wrappers to the class H5Object to get an objectâs name:
ssize_t getObjName(char *obj_name, size_t buf_size = 0)
ssize_t getObjName(H5std_string& obj_name, size_t len = 0)
H5std_string getObjName()
Wrappers to the class H5CommonFG to get a child objectâs type from a \
group or file:
H5O_type_t childObjType(const H5std_string& objname)
H5O_type_t childObjType(const char* objname)
H5O_type_t childObjType(hsize_t index,
H5_index_t index_type=H5_INDEX_NAME,
H5_iter_order_t order=H5_ITER_INC, const char* objname=".")
Wrappers to the class DSetMemXferPropList for setting or getting a transform \
property list:
DSetMemXferPropList(const char* expression);
void setDataTransform(const char* expression)
void setDataTransform(const H5std_string& expression)
ssize_t getDataTransform(char* exp, size_t buf_size=0)
H5std_string getDataTransform()
Wrapper to CompType for setting the size of a compound datatype:
void setSize(size_t size)
Overloaded functions to provide prototypes that declare constant arguments const:
DataSet::fillMemBuf
DataSet::getVlenBufSize
DataSpace::extentCopy
DataType::commit
FileAccPropList::setSplit
H5File::getVFDHandle
Additional overload to the class H5Location to get a comment as a char*:
ssize_t getComment(const char* name, size_t buf_size, char* comment)
Additional overloads to the class Attribute to get an attributeâs name \
for convenience:
ssize_t getName(char* attr_name, size_t buf_size=0)
ssize_t getName(H5std_string& attr_name, size_t buf_size=0)
In the Fortran Interface
The following new Fortran subroutines have been added:
Fortran2003 subroutines:
h5pset_file_image_f
h5pget_file_image_f
h5fget_file_image_f (Added in Release 1.8.11, but not documented at that time.)
The following Fortran subroutine has been changed:
h5pset_chunk_cache_f
The values of the constants H5D_CHUNK_CACHE_NSLOTS_DFLT_F and \
H5D_CHUNK_CACHE_NBYTES_DFLT_F have been changed to INTEGER(KIND=size_t).
Other New Features
Parallel I/O support:
Parallel I/O support has been enhanced to allow collective I/O on point \
selections.
Thread safety (Windows only)
The thread-safe HDF5 library no longer leaks thread-local storage resources \
on Windows with Win32 threads. This cleanup can only be performed when the \
library is built as a shared library, so a thread-safe HDF5 static library with \
Win32 threads is no longer supported.
This change affects only Windows environments.
Also see âBuild and Configurationâ below.
Command-line Tools with Changed Behavior
h5repack
h5repack has been updated to correctly handle dynamically loaded filters.
Build and Configuration
Thread safety
When configuring a thread-safe HDF5 Library with --enable-threadsafe, it is \
no longer necessary to specify --with-pthreads if the Pthreads library is in a \
standard location.
Removed Functions and Wrappers
The MPI-POSIX driver has been removed. The following C functions and the \
corresponding Fortran subroutines and C++ wrappers therefore are no longer \
included in the HDF5 distribution:
H5Pset_fapl_mpiposix
H5Pget_fapl_mpiposix
Applications performing parallel I/O should use the MPI-IO driver, H5Pset_fapl_mpio.
|