summaryrefslogtreecommitdiffstats
path: root/release_docs
diff options
context:
space:
mode:
authorLarry Knox <lrknox@hdfgroup.org>2018-06-07 16:30:08 (GMT)
committerLarry Knox <lrknox@hdfgroup.org>2018-06-07 16:30:08 (GMT)
commit551f15f8ae02ca9c995619b216121081eb07633e (patch)
tree995de8be59b4d8524753eba6b542ce4039d54c79 /release_docs
parentb8c6b68c35fa2be23ef488a1d81097ff3ed55000 (diff)
parent664186b91d9198915baca4c6dca3f7b03695d316 (diff)
downloadhdf5-551f15f8ae02ca9c995619b216121081eb07633e.zip
hdf5-551f15f8ae02ca9c995619b216121081eb07633e.tar.gz
hdf5-551f15f8ae02ca9c995619b216121081eb07633e.tar.bz2
Merge pull request #1106 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:1.8/master to 1.8/masterhdf5-1_8_21
* commit '664186b91d9198915baca4c6dca3f7b03695d316': (124 commits) Commit HDF5 1.8.21 release version strings. Update INSTALL and INSTALL_parallel files to remove references to ancient systems and add generic steps for building HDF5 on HPC clusters. Update various INSTALL files for 1.8.21 release. Add missing space and correct typo. Modified a section for newly supported systems and compilers (vs. 1.8.20 release); Brought edits for tools bug fixes from 1.10.2 RELEASE.txt as we agreed with Allen. It is my test under Larry's guidance. Remove build directory which was unintentionally committed. Updated MANIFEST Switch default build mode to production. Update version to 1.8.21 in anticipation of release. Fixed EED-319 Description: Added an html version for the C++ function mapping table and removed the single web page version. Updated cpp_doc_config to use the html file. Fixed some typos. Running "doxygen cpp_doc_config" successfully. HDFFV-10473 fix HDFFV-10398 attribute location Add missing C++ entries to RELEASE.txt. pre1 release. Add missing RELEASE.txt entries for C++. Update Windows test machines Fix soversion naming and update cmake scripts Update version in RELEASE.txt. Correct merge errors from hdf5_1_8. Fixed typos Fixed typos Fixed typos ...
Diffstat (limited to 'release_docs')
-rw-r--r--release_docs/HISTORY-1_8.txt495
-rw-r--r--release_docs/INSTALL186
-rw-r--r--release_docs/INSTALL_CMake.txt8
-rw-r--r--release_docs/INSTALL_Cygwin.txt13
-rw-r--r--release_docs/INSTALL_parallel53
-rw-r--r--release_docs/RELEASE.txt468
-rw-r--r--release_docs/USING_HDF5_CMake.txt230
-rw-r--r--release_docs/USING_HDF5_VS.txt4
8 files changed, 1028 insertions, 429 deletions
diff --git a/release_docs/HISTORY-1_8.txt b/release_docs/HISTORY-1_8.txt
index a7aad02..2aa7bde 100644
--- a/release_docs/HISTORY-1_8.txt
+++ b/release_docs/HISTORY-1_8.txt
@@ -3,7 +3,8 @@ HDF5 History
This file contains development history of HDF5 1.8 branch
-21. Release Information for hdff5-1.8.19
+22. Release Information for hdf5-1.8.20
+21. Release Information for hdf5-1.8.19
20. Release Information for hdf5-1.8.18
19. Release Information for hdf5-1.8.17
18. Release Information for hdf5-1.8.16
@@ -27,6 +28,498 @@ This file contains development history of HDF5 1.8 branch
[Search on the string '%%%%' for section breaks of each release.]
+%%%%1.8.20%%%%
+
+
+HDF5 version 1.8.20 released on 2017-11-28
+================================================================================
+
+INTRODUCTION
+============
+
+This document describes the differences between HDF5-1.8.19 and
+HDF5-1.8.20, and contains information on the platforms tested and
+known problems in HDF5-1.8.20.
+For more details, see the files HISTORY-1_0-1_8_0_rc3.txt
+and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source.
+
+Links to the HDF5 1.8.20 source code, documentation, and additional materials
+can be found on the HDF5 web page at:
+
+ https://support.hdfgroup.org/HDF5/
+
+The HDF5 1.8.20 release can be obtained from:
+
+ https://support.hdfgroup.org/HDF5/release/obtain518.html
+
+User documentation for 1.8.20 can be accessed directly at this location:
+
+ https://support.hdfgroup.org/HDF5/doc1.8/
+
+New features in the HDF5-1.8.x release series, including brief general
+descriptions of some new and modified APIs, are described in the "What's New
+in 1.8.0?" document:
+
+ https://support.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html
+
+All new and modified APIs are listed in detail in the "HDF5 Software Changes
+from Release to Release" document, in the section "Release 1.8.20 (current
+release) versus Release 1.8.19
+
+ https://support.hdfgroup.org/HDF5/doc1.8/ADGuide/Changes.html
+
+If you have any questions or comments, please send them to the HDF Help Desk:
+
+ help@hdfgroup.org
+
+
+CONTENTS
+========
+
+- New Features
+- Support for New Platforms, Languages, and Compilers
+- Bug Fixes since HDF5-1.8.20
+- Supported Platforms
+- Supported Configuration Features Summary
+- More Tested Platforms
+- Known Problems
+
+
+New Features
+============
+
+ Tools
+ -----
+ - h5diff
+
+ h5diff has new option enable-error-stack.
+
+ Updated h5diff with the --enable-error-stack argument, which
+ enables the display of the hdf5 error stack. This completes the
+ improvement to the main tools; h5copy, h5diff, h5dump, h5ls and
+ h5repack.
+
+ (ADB - 2017/08/30, HDFFV-9774)
+
+
+ C++ API
+ -------
+ - The following C++ API wrappers have been added to the C++ Library:
+
+ // Creates a binary object description of this datatype.
+ void DataType::encode() - C API H5Tencode()
+
+ // Returns the decoded type from the binary object description.
+ DataType::decode() - C API H5Tdecode()
+ ArrayType::decode() - C API H5Tdecode()
+ CompType::decode() - C API H5Tdecode()
+ DataType::decode() - C API H5Tdecode()
+ EnumType::decode() - C API H5Tdecode()
+ FloatType::decode() - C API H5Tdecode()
+ IntType::decode() - C API H5Tdecode()
+ StrType::decode() - C API H5Tdecode()
+ VarLenType::decode() - C API H5Tdecode()
+
+ // Three overloaded functions to retrieve information about an object
+ H5Location::getObjectInfo() - H5Oget_info()/H5Oget_info_by_name()
+
+ (BMR - 2017/10/17, HDFFV-10175)
+
+ - New constructors to open existing datatypes added in ArrayType,
+ CompType, DataType, EnumType, FloatType, IntType, StrType, and
+ VarLenType.
+
+ (BMR - 2017/10/17, HDFFV-10175)
+
+ - A document is added to the HDF5 C++ API Reference Manual to show the
+ mapping from a C API to C++ wrappers. It can be found from the main
+ page of the C++ API Reference Manual.
+
+ (BMR - 2017/10/17, HDFFV-10151)
+
+
+ High-Level APIs
+ ---------------
+ - H5DOread_chunk
+
+ Users wanted to read compressed data directly from a file without any
+ processing by the HDF5 data transfer pipeline, just as they were able
+ to write it directly to a file with H5DOwrite_chunk.
+
+ New API function, corresponding to existing function H5DOwrite_chunk.
+ H5DOread_chunk reads a raw data chunk directly from a chunked dataset
+ in the file into the application buffer, bypassing the library’s internal
+ data transfer pipeline, including filters.
+
+ (VC - 2017/05/02, HDFFV-9934)
+
+
+Support for New Platforms, Languages, and Compilers
+===================================================
+
+ - Added NAG compiler
+
+
+Bug Fixes since HDF5-1.8.19
+===========================
+
+ Configuration
+ -------------
+ - cmake
+
+ The hdf5 library used shared szip and zlib, which needlessly required
+ applications to link with the same szip and zlib libraries.
+
+ Changed the target_link_libraries commands to use the static libs.
+ Removed improper link duplication of szip and zlib.
+ Adjusted the link dependencies and the link interface values of
+ the target_link_libraries commands.
+
+ (ADB - 2017/11/14, HDFFV-10329)
+
+ - cmake MPI
+
+ CMake implementation for MPI was problematic and would create incorrect
+ MPI library references in the hdf5 libraries.
+
+ Reworked the CMake MPI code to properly create CMake targets.Also merged
+ the latest CMake FindMPI.cmake changes to the local copy. This is necessary
+ until HDF changes the CMake minimum to 3.9 or greater.
+
+ (ADB - 2017/11/02, HDFFV-10321)
+
+
+ - Fixed Fortran linker flags when using the NAG Fortran compiler (autotools).
+
+ (HDFFV-10037, MSB, 2017/10/21)
+
+ - cmake
+
+ Too many commands for POST_BUILD step caused command line to be
+ too big on windows.
+
+ Changed foreach of copy command to use a custom command with the
+ use of the HDFTEST_COPY_FILE macro.
+
+ (ADB - 2017/07/12, HDFFV-10254)
+
+
+ Library
+ -------
+ - filter plugin handling in H5PL.c and H5Z.c
+
+ It was discovered that the dynamic loading process used by
+ filter plugins had issues with library dependencies.
+
+ CMake build process changed to use LINK INTERFACE keywords, which
+ allowed HDF5 C library to make dependent libraries private. The
+ filter plugin libraries no longer require dependent libraries
+ (such as szip or zlib) to be available.
+ (ADB - 2017/11/16, HDFFV-10328)
+
+ - Fix rare object header corruption bug
+
+ In certain cases, such as when converting large attributes to dense
+ storage, an error could occur which would either fail an assertion or
+ cause file corruption. Fixed and added test.
+
+ (NAF - 2017/11/14, HDFFV-10274)
+
+ - H5Zfilter_avail in H5Z.c
+
+ The public function checked for plugins, while the private
+ function did not.
+
+ Modified H5Zfilter_avail and private function, H5Z_filter_avail.
+ Moved check for plugin from public to private function. Updated
+ H5P__set_filter due to change in H5Z_filter_avail. Updated tests.
+
+ (ADB - 2017/10/10, HDFFV-10297, HDFFV-10319)
+
+ - Fix H5Sencode bug when num points selected is >2^32
+
+ Modified to fail if the 32 bit limit is exceeded when encoding either
+ offsets or counts in the selection.
+
+ (HDFFV-10323, VC, 2017/09/07)
+
+ - Fix H5HL_offset_into()
+
+ (1) Fix H5HL_offset_into() to return error when offset exceeds heap data
+ block size.
+ (2) Fix other places in the library that call this routine to detect
+ error routine.
+
+ (HDFFV-10216, VC, 2017/09/05)
+
+
+ Tools
+ -----
+ - h5repack
+
+ h5repack failed to copy a dataset with existing filter.
+
+ Reworked code for h5repack and h5diff code in tools library. Added
+ improved error handling, cleanup of resources and checks of calls.
+ Modified H5Zfilter_avail and private function, H5Z_filter_avail.
+ Moved check for plugin from public to private function. Updated
+ H5P__set_filter due to change in H5Z_filter_avail. Updated tests.
+ Note, h5repack output display has changed to clarify the individual
+ steps of the repack process. The output indicates if an operation
+ applies to all objects. Lines with notation and no information
+ have been removed.
+
+ (ADB - 2017/10/10, HDFFV-10297, HDFFV-10319)
+
+ - h5repack
+
+ h5repack always set the User Defined filter flag to H5Z_FLAG_MANDATORY.
+
+ Added another parameter to the 'UD=' option to set the flag by default
+ to '0' or H5Z_FLAG_MANDATORY, the other choice is '1' or H5Z_FLAG_OPTIONAL.
+
+ (ADB - 2017/08/31, HDFFV-10269)
+
+ - h5ls
+
+ h5ls generated error on stack when it encountered a H5S_NULL
+ dataspace.
+
+ Adding checks for H5S_NULL before calling H5Sis_simple (located
+ in the h5tools_dump_mem function) fixed the issue.
+
+ (ADB - 2017/08/17, HDFFV-10188)
+
+ - h5dump
+
+ h5dump segfaulted on output of XML file.
+
+ Function that escape'd strings used the full buffer length
+ instead of just the length of the replacement string in a
+ strncpy call. Using the correct length fixed the issue.
+
+ (ADB - 2017/08/01, HDFFV-10256)
+
+ - h5diff
+
+ h5diff segfaulted on compare of a NULL variable length string.
+
+ Improved h5diff compare of strings by adding a check for
+ NULL strings and setting the lengths to zero.
+
+ (ADB - 2017/07/25, HDFFV-10246)
+
+ - h5import
+
+ h5import crashed trying to import data from a subset of a dataset.
+
+ Improved h5import by adding the SUBSET keyword. h5import understands
+ to use the Count times the Block as the size of the dimensions.
+ Added INPUT_B_ORDER keyword to old-style configuration files.
+ The import from h5dump function expects the binary files to use native
+ types (FILE '-b' option) in the binary file.
+
+ (ADB - 2017/06/15, HDFFV-10219)
+
+
+ C++ API
+ -------
+ - Marked the following functions deprecated because they were moved to
+ class H5Object:
+ H5Location::createAttribute()
+ H5Location::openAttribute()
+ H5Location::attrExists()
+ H5Location::removeAttr()
+ H5Location::renameAttr()
+ H5Location::getNumAttrs()
+
+ (BMR - 2017/10/17)
+
+
+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.9.3, 5.3.0, 6.2.0
+ PGI C, Fortran, C++ for 64-bit target on
+ x86-64;
+ Version 16.10-0
+ Intel(R) C (icc), C++ (icpc), Fortran (icc)
+ compilers:
+ Version 17.0.0.196 Build 20160721
+ MPICH 3.1.4 compiled with GCC 4.9.3
+ OpenMPI 2.0.1 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/jelly Version 4.8.5 20150623 (Red Hat 4.8.5-4)
+ Versions 4.9.3, 5.3.0, 6.2.0
+ Intel(R) C (icc), C++ (icpc), Fortran (icc)
+ compilers:
+ Version 17.0.4.196 Build 20170411
+ MPICH 3.1.4 compiled with GCC 4.9.3
+ NAG Fortran Compiler Release 6.1(Tozai) Build 6116
+
+ 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)
+
+ 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)
+ Visual Studio 2015 w/ Intel C, Fortran 2017 (cmake)
+ Visual Studio 2015 w/ MSMPI 8 (cmake)
+ Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3)
+ gcc and gfortran compilers (GCC 5.4.0)
+ (cmake and autotools)
+
+ Windows 10 Visual Studio 2015 w/ Intel Fortran 16 (cmake)
+ Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3)
+ gcc and gfortran compilers (GCC 5.4.0)
+ (cmake and autotools)
+
+ Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 16 (cmake)
+
+ 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.6 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
+
+ Mac OS Sierra 10.12.6 Apple LLVM version 8.1 (clang-802.0.42)
+ 64-bit gfortran GNU Fortran (GCC) 7.1.0
+ (kite) Intel icc/icpc/ifort version 17.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/n n y y y
+Windows 7 x64 Cygwin n y/n n y y y
+Windows 10 y y/y n y y y
+Windows 10 x64 y 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
+Mac OS X El Capitan 10.11.6 64-bit n y/y n y y y
+Mac OS Sierra 10.12.6 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 7 x64 Cygwin n n n y
+Windows 10 y y y y
+Windows 10 x64 y y 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
+Mac OS X El Capitan 10.11.6 64-bit y n y y
+Mac OS Sierra 10.12.6 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
+ (mayll)
+
+ 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
+==============
+
+ The dynamically loaded plugin test libraries require undefined references
+ to HDF5 functions to be resolved at runtime in order to function properly.
+ With autotools on CYGWIN this results in build errors, and we have not
+ found a solution that satisfies both. Therefore the dynamically loaded
+ plugin tests have been disabled on CYGWIN.
+
+ Mac OS X 10.13 added additional subdirectory structure in .libs for shared
+ libraries. Consequently "make check" will fail testing java and dynamically
+ loaded plugin test libraries attempting to copy files from the previous
+ locations in .libs directories. This will be addressed in the next release
+ when support for the Mac OS X 10.13 platform is added.
+
+ 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.
+
+
%%%%1.8.19%%%%
diff --git a/release_docs/INSTALL b/release_docs/INSTALL
index 812d7ec..f84ddc2 100644
--- a/release_docs/INSTALL
+++ b/release_docs/INSTALL
@@ -2,18 +2,18 @@ Instructions for the Installation of HDF5 Software
==================================================
This file provides instructions for installing the HDF5 software.
-If you have any problems with the installation, please see The HDF Group's
-support page at the following location:
- http://www.hdfgroup.org/services/support.html
+For help with installing, questions can be posted to the HDF Forum or sent to the HDF Helpdesk:
+
+ HDF Forum: https://forum.hdfgroup.org/
+ HDF Helpdesk: https://portal.hdfgroup.org/display/support/The+HDF+Help+Desk
CONTENTS
--------
1. Obtaining HDF5
2. Quick installation
- 2.1. UNIX platforms
- 2.2. Windows and Cygwin
+ 2.1. Windows and Cygwin
3. HDF5 dependencies
3.1. Make
@@ -46,23 +46,17 @@ CONTENTS
5. Using the Library
- 6. Support
-
- A. Building and testing with other compilers
- A.1. Building and testing with Intel compilers
- A.2. Building and testing with PGI compilers
*****************************************************************************
1. Obtaining HDF5
The latest supported public release of HDF5 is available from
- https://support.hdfgroup.org/HDF5/release/obtain5.html. For Unix and
- UNIX-like platforms, it is available in tar format compressed with gzip.
+ https://www.hdfgroup.org/downloads/hdf5/. For Unix and UNIX-like
+ platforms, it is available in tar format compressed with gzip.
For Microsoft Windows, it is in ZIP format.
2. Quick installation
-2.1. UNIX platforms
For those who don't like to read ;-) the following steps can be used
to configure, build, test, and install the HDF5 Library, header files,
and support programs. For example, to install HDF5 version X.Y.Z at
@@ -98,7 +92,7 @@ CONTENTS
In this case, PATH_TO_SZIP would be replaced with the path to the
installed location of the SZIP library.
-2.2. Windows and Cygwin
+2.1. Windows and Cygwin
Users of Microsoft Windows should see the INSTALL_Windows files for
detailed instructions. INSTALL_Cygwin also exists for those platforms.
@@ -119,17 +113,19 @@ CONTENTS
3.3. Szip (optional)
The HDF5 Library includes a predefined compression filter that
uses the extended-Rice lossless compression algorithm for chunked
- datasets. For more information about Szip compression and license
- terms, see http://hdfgroup.org/doc_resource/SZIP/.
+ datasets. For information on Szip compression, license terms,
+ and obtaining the Szip source code, see:
- The Szip source code can be obtained from the HDF5 Download page
- http://www.hdfgroup.org/HDF5/release/obtain5.html#extlibs. Building
- instructions are available with the Szip source code.
+ https://portal.hdfgroup.org/display/HDF5/Szip+Compression+in+HDF+Products
+
+ Building instructions are available with the Szip source code.
The HDF Group does not distribute separate Szip precompiled libraries,
- but the HDF5 binaries available from
- http://www.hdfgroup.org/HDF5/release/obtain5.html include
- the Szip encoder enabled binary for the corresponding platform.
+ but the HDF5 pre-built binaries provided on The HDF Group download page
+ include the Szip library with the encoder enabled. These can be found
+ here:
+
+ https://www.hdfgroup.org/downloads/hdf5/
To configure the HDF5 Library with the Szip compression filter, use
the '--with-szlib=/PATH_TO_SZIP' flag. For more information, see
@@ -165,16 +161,12 @@ CONTENTS
$ gunzip < hdf5-X.Y.Z.tar.gz | tar xf -
Or
$ tar zxf hdf5-X.Y.Z.tar.gz
- Or
- $ tar xf hdf5-X.Y.Z.tar.gz
4.1.3. Bzip'd tar archive (*.tar.bz2)
$ bunzip2 < hdf5-X.Y.Z.tar.bz2 | tar xf -
Or
$ tar jxf hdf5-X.Y.Z.tar.bz2
- Or
- $ tar xf hdf5-X.Y.Z.tar.bz2
4.2. Source versus build directories
@@ -237,11 +229,13 @@ CONTENTS
$ CC=cc ./configure
- A parallel version of HDF5 can be built by specifying `mpicc' as
- the C compiler. Using the `mpicc' compiler will insure that the
- correct MPI and MPI-IO header files and libraries are used.
+ A parallel version of HDF5 can be built by specifying `mpicc'
+ as the C compiler. (The `--enable-parallel' flag documented
+ below is optional in this case.) Using the `mpicc' compiler
+ will insure that the correct MPI and MPI-IO header files and
+ libraries are used.
- $ CC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel
+ $ CC=/usr/local/mpi/bin/mpicc ./configure
4.3.3. Configuring for 64 or 32 bit support
Some machine architectures support 32-bit or 64-bit binaries.
@@ -294,7 +288,7 @@ CONTENTS
fort lf95 g95 ifc efc gfc. To use an alternate compiler specify it with
the FC variable:
- $ FC=/usr/local/bin/gfortran ./configure --enable-fortran --enable-fortran2003
+ $ FC=/usr/local/bin/g95 ./configure --enable-fortran --enable-fortran2003
Note: The Fortran and C++ interfaces are not supported on all the
platforms the main HDF5 Library supports. Also, the Fortran
@@ -399,10 +393,7 @@ CONTENTS
(such as type conversion execution times and extensive invariant
condition checking). To enable this debugging, supply a
comma-separated list of package names to to the `--enable-debug'
- switch. See "Debugging HDF5 Applications" for a list of package
- names:
-
- http://www.hdfgroup.org/HDF5/doc/H5.user/Debugging.html
+ switch.
Debugging can be disabled by saying `--disable-debug'.
The default debugging level for snapshots is a subset of the
@@ -418,22 +409,21 @@ CONTENTS
arguments, and the return values. To enable or disable the
ability to trace the API say `--enable-trace' (the default for
snapshots) or `--disable-trace' (the default for public releases).
- The tracing must also be enabled at runtime to see any output
- (see "Debugging HDF5 Applications," reference above).
+ The tracing must also be enabled at runtime to see any output.
4.3.10. Parallel versus serial library
The HDF5 Library can be configured to use MPI and MPI-IO for
parallelism on a distributed multi-processor system. Read the
- file INSTALL_parallel for detailed explanations.
+ file INSTALL_parallel for detailed information.
4.3.11. Threadsafe capability
The HDF5 Library can be configured to be thread-safe (on a very
large scale) with the `--enable-threadsafe' flag to the configure
script. Some platforms may also require the '-with-pthread=INC,LIB'
(or '--with-pthread=DIR') flag to the configure script.
- For further details, see "HDF5 Thread Safe Library":
+ For further information, see:
- http://www.hdfgroup.org/HDF5/doc/TechNotes/ThreadSafeLibrary.html
+ https://portal.hdfgroup.org/display/knowledge/Questions+about+thread-safety+and+concurrent+access
4.3.12. Backward compatibility
The 1.8 version of the HDF5 Library can be configured to operate
@@ -441,14 +431,14 @@ CONTENTS
--with-default-api-version=v16
configure flag. This allows existing code to be compiled with the
v1.8 library without requiring immediate changes to the application
- source code. For addtional configuration options and other details,
- see "API Compatibility Macros in HDF5":
+ source code. For additional configuration options and other details,
+ see "API Compatibility Macros":
- http://www.hdfgroup.org/HDF5/doc/RM/APICompatMacros.html
+ https://portal.hdfgroup.org/display/HDF5/API+Compatibility+Macros
4.4. Building
The library, confidence tests, and programs can be built by
- saying just:
+ specifying:
$ make
@@ -465,7 +455,7 @@ CONTENTS
4.5. Testing
HDF5 comes with various test suites, all of which can be run by
- saying
+ specifying
$ make check
@@ -494,12 +484,13 @@ CONTENTS
longer test, set HDF5TestExpress to 0. 1 is the default.
4.6. Installing HDF5
- The HDF5 Library, include files, and support programs can be
- installed in a (semi-)public place by saying `make install'. The
- files are installed under the directory specified with `--prefix=DIR'
- (default is 'hdf5' in the build directory) in directories named `lib',
- `include', and `bin'. The directories, if not existing, will be created
- automatically, provided the mkdir command supports the -p option.
+ The HDF5 library, include files, and support programs can be
+ installed by specifying `make install'. The files are installed under the
+ directory specified with `--prefix=DIR' (or if not specified, in 'hdf5'
+ in the top directory of the HDF5 source code). They will be
+ placed in directories named `lib', `include', and `bin'. The directories,
+ if not existing, will be created automatically, provided the mkdir command
+ supports the -p option.
If `make install' fails because the install command at your site
somehow fails, you may use the install-sh that comes with the
@@ -544,78 +535,35 @@ CONTENTS
The configuration information:
./src/H5pubconf.h
- The support programs that are useful are:
- ./tools/h5ls/h5ls (list file contents)
- ./tools/h5dump/h5dump (dump file contents)
- ./tools/misc/h5repart (repartition file families)
- ./tools/misc/h5debug (low-level file debugging)
- ./tools/h5import/h5import (imports data to HDF5 file)
- ./tools/h5diff/h5diff (compares two HDF5 files)
- ./tools/gifconv/h52gif (HDF5 to GIF converter)
- ./tools/gifconv/gif2h5 (GIF to HDF5 converter)
+ Useful support programs installed in bin and built in
+ subdirectories of tools/:
+ h5ls/h5ls (list file contents)
+ h5dump/h5dump (dump file contents)
+ h5copy/h5copy (copy objects to another file)
+ h5repack/h5repack (copy file changing compression/chunking)
+ h5jam/h5jam (add user block to front of HDF5 file)
+ h5jam/h5unjam (splits user block to separate file)
+ misc/h5repart (repartition file families)
+ misc/h5debug (low-level file debugging)
+ misc/h5mkgrp (create a new HDF5 group in a file)
+ h5import/h5import (imports data to HDF5 file)
+ h5diff/h5diff (compares two HDF5 files)
+ h5stat/h5stat (reports HDF5 file and object statistics)
+ gifconv/h52gif (HDF5 to GIF converter)
+ gifconv/gif2h5 (GIF to HDF5 converter)
+ misc/h5redeploy (update HDF5 compiler tools after
+ installing HDF5 in a new location)
+
5. Using the Library
- Please see the "HDF5 User's Guide" and the "HDF5 Reference Manual":
-
- http://www.hdfgroup.org/HDF5/doc/
-
- Most programs will include <hdf5.h> and link with -lhdf5.
- Additional libraries may also be necessary depending on whether
- support for compression, etc., was compiled into the HDF5 Library.
-
- A summary of the HDF5 installation can be found in the
- libhdf5.settings file in the same directory as the static and/or
- shared HDF5 Libraries.
-
-
-6. Support
- Support is described in the README file.
-
-
-*****************************************************************************
- APPENDICES
-*****************************************************************************
-
-A. Building and testing with other compilers
-A.1. Building and testing with Intel compilers
- When Intel compilers are used (icc or ecc), you will need to modify
- the generated "libtool" program after configuration is finished.
- On or around line 104 of the libtool file, there are lines which
- look like:
-
- # How to pass a linker flag through the compiler.
- wl=""
-
- Change these lines to this:
-
- # How to pass a linker flag through the compiler.
- wl="-Wl,"
-
- UPDATE: This is now done automatically by the configure script.
- However, if you still experience a problem, you may want to check this
- line in the libtool file and make sure that it has the correct value.
-
-A.2. Building and testing with PGI compilers
- When PGI C and C++ compilers are used (pgcc or pgCC), you will need to
- modify the generated "libtool" program after configuration is finished.
- On or around line 104 of the libtool file, there are lines which
- look like this:
-
- # How to pass a linker flag through the compiler.
- wl=""
-
- Change these lines to this:
- # How to pass a linker flag through the compiler.
- wl="-Wl,"
+ For information on using HDF5 see the documentation, tutorials and examples
+ found here:
- UPDATE: This is now done automatically by the configure script. However,
- if you still experience a problem, you may want to check this line in
- the libtool file and make sure that it has the correct value.
+ https://portal.hdfgroup.org/display/HDF5/HDF5
- To build the HDF5 C++ Library with pgCC (version 4.0 and later), set
- the environment variable CXX to "pgCC -tlocal"
- setenv CXX "pgCC -tlocal"
- before running the configure script.
+ A summary of the features included in the built HDF5 installation can be found
+ in the libhdf5.settings file in the same directory as the static and/or
+ shared HDF5 libraries.
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
index 58169fc..e33615d 100644
--- a/release_docs/INSTALL_CMake.txt
+++ b/release_docs/INSTALL_CMake.txt
@@ -563,8 +563,8 @@ if (HDF5_BUILD_FORTRAN)
---------------- HDF5 Advanced Options ---------------------
ALLOW_UNSUPPORTED "Allow unsupported combinations of configure options" OFF
HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF
+HDF5_ENABLE_ALL_WARNINGS "Enable all warnings" OFF
HDF5_Enable_Clear_File_Buffers "Securely clear file buffers before writing to file" ON
-HDF5_Enable_Instrument "Instrument The library" OFF
HDF5_ENABLE_CODESTACK "Enable the function stack tracing (for developer debugging)." OFF
HDF5_ENABLE_COVERAGE "Enable code coverage for Libraries and Programs" OFF
HDF5_ENABLE_DEPRECATED_SYMBOLS "Enable deprecated public API symbols" ON
@@ -580,6 +580,8 @@ HDF5_METADATA_TRACE_FILE "Enable metadata trace file collection"
HDF5_NO_PACKAGES "Do not include CPack Packaging" OFF
HDF5_PACK_EXAMPLES "Package the HDF5 Library Examples Compressed File" OFF
HDF5_PACK_MACOSX_FRAMEWORK "Package the HDF5 Library in a Frameworks" OFF
+HDF5_BUILD_FRAMEWORKS "TRUE to build as frameworks libraries,
+ FALSE to build according to BUILD_SHARED_LIBS" FALSE
HDF5_PACKAGE_EXTLIBS "CPACK - include external libraries" OFF
HDF5_STRICT_FORMAT_CHECKS "Whether to perform strict file format checks" OFF
HDF_TEST_EXPRESS "Control testing framework (0-3)" "0"
@@ -593,7 +595,7 @@ SKIP_HDF5_FORTRAN_SHARED "Do not build the fortran shared libraries"
if (APPLE)
HDF5_BUILD_WITH_INSTALL_NAME "Build with library install_name set to the installation path" OFF
if (CMAKE_BUILD_TYPE MATCHES Debug)
- HDF5_ENABLE_TRACE "Enable API tracing capability" ON
+ HDF5_ENABLE_INSTRUMENT "Instrument The library" OFF
if (HDF5_TEST_VFD)
HDF5_TEST_FHEAP_VFD "Execute fheap test with different VFDs" ON
@@ -643,7 +645,7 @@ adding an option (${CTEST_SCRIPT_ARG}) to the platform configuration script.
### ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201264 -C Release -VV -O hdf518.log ###
#############################################################################################
-cmake_minimum_required(VERSION 3.2.2 FATAL_ERROR)
+cmake_minimum_required (VERSION 3.10)
############################################################################
# Usage:
# ctest -S HDF518config.cmake,OPTION=VALUE -C Release -VV -O test.log
diff --git a/release_docs/INSTALL_Cygwin.txt b/release_docs/INSTALL_Cygwin.txt
index 4c92e41..5ebb503 100644
--- a/release_docs/INSTALL_Cygwin.txt
+++ b/release_docs/INSTALL_Cygwin.txt
@@ -66,12 +66,11 @@ Preconditions:
2.2.2 Szip
The HDF5 library has a predefined compression filter that uses
the extended-Rice lossless compression algorithm for chunked
- datatsets. For more information about Szip compression and
- license terms see
- http://hdfgroup.org/HDF5/doc_resource/SZIP/index.html.
+ datatsets. For more information on Szip compression, license terms,
+ and obtaining the Szip source code, see:
+
+ https://portal.hdfgroup.org/display/HDF5/Szip+Compression+in+HDF+Products
- The latest supported public release of SZIP is available from
- ftp://ftp.hdfgroup.org/lib-external/szip/2.1.
2.3 Additional Utilities
@@ -260,5 +259,7 @@ Build, Test and Install HDF5 on Cygwin
with cygwin on Windows.
-----------------------------------------------------------------------
+For further assistance, contact:
-Need Further assistance, email help@hdfgroup.org
+ HDF Forum: https://forum.hdfgroup.org/
+ HDF Helpdesk: https://portal.hdfgroup.org/display/support/The+HDF+Help+Desk
diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel
index e4c540c..23dc2a0 100644
--- a/release_docs/INSTALL_parallel
+++ b/release_docs/INSTALL_parallel
@@ -1,6 +1,18 @@
Installation instructions for Parallel HDF5
-------------------------------------------
+0. Use Build Scripts
+--------------------
+The HDF Group is accumulating build scripts to handle building parallel HDF5
+on various platforms (Cray, IBM, SGI, etc...). These scripts are being
+maintained and updated continuously for current and future systems. The reader
+is strongly encouraged to consult the repository at,
+
+https://github.com/HDFGroup/build_hdf5
+
+for building parallel HDF5 on these system. All contributions, additions
+and fixes to the repository are welcomed and encouraged.
+
1. Overview
-----------
@@ -28,9 +40,11 @@ and the parallel file system.
1.2. Further Help
-----------------
-If you still have difficulties installing PHDF5 in your system, please send
-mail to
- help@hdfgroup.org
+
+For help with installing, questions can be posted to the HDF Forum or sent to the HDF Helpdesk:
+
+ HDF Forum: https://forum.hdfgroup.org/
+ HDF Helpdesk: https://portal.hdfgroup.org/display/support/The+HDF+Help+Desk
In your mail, please include the output of "uname -a". If you have run the
"configure" command, attach the output of the command and the content of
@@ -68,23 +82,22 @@ This allows for >2GB sized files on Linux systems and is only available with
Linux kernels 2.4 and greater.
-2.3. Hopper (Cray XE6) (for v1.8 and later)
+2.3. Unix HPC Clusters (for v1.8 and later)
-------------------------
-The following steps are for building HDF5 for the Hopper compute
-nodes. They would probably work for other Cray systems but have
-not been verified.
-
-Obtain a copy from the HDF ftp server:
-http://www.hdfgroup.org/ftp/HDF5/current/src/
-(link might change, so always double check the HDF group website).
+The following steps are generic instructions for building HDF5 on
+several current HPC systems. The exact commands and scripts to use
+will vary according to the scheduling software on the individual
+system. Consult the system documentation to determine the details.
-$ wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-x.x.x.tar.gz
-unpack the tarball
+Obtain the HDF5 source code:
+ https://portal.hdfgroup.org/display/support/Downloads
-The entire build process should be done on a MOM node in an interactive allocation and on a file system accessible by all compute nodes.
-Request an interactive allocation with qsub:
-qsub -I -q debug -l mppwidth=8
+In general HDF5 can be built on a login/front-end node provided it is
+installed on a file system accessible by all compute nodes. If parallel
+tests run by "make check" or "make check-p" will be run on compute
+nodes in a batch job, the HDF5 build directory should also exist on a
+file system accessible by all compute nodes.
- create a build directory build-hdf5:
mkdir build-hdf5; cd build-hdf5/
@@ -92,12 +105,12 @@ qsub -I -q debug -l mppwidth=8
- configure HDF5:
RUNSERIAL="aprun -q -n 1" RUNPARALLEL="aprun -q -n 6" FC=ftn CC=cc /path/to/source/configure --enable-fortran --enable-parallel --disable-shared
- RUNSERIAL and RUNPARALLEL tells the library how it should launch programs that are part of the build procedure.
+ RUNSERIAL and RUNPARALLEL tells the library how it should launch programs that are part of the build procedure. Note that the command names and the specific options will vary according to the batch system.
- Compile HDF5:
gmake
-- Check HDF5
+- Check HDF5: on most systems this should be run as a batch job on compute nodes.
gmake check
- Install HDF5
@@ -107,8 +120,8 @@ The build will be in build-hdf5/hdf5/ (or whatever you specify in --prefix).
To compile other HDF5 applications use the wrappers created by the build (build-hdf5/hdf5/bin/h5pcc or h5fc)
-3. Detail explanation
----------------------
+3. Detailed explanation
+-----------------------
3.1. Installation steps (Uni/Multiple processes modes)
-----------------------
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 2050a1c..2b54b44 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -1,25 +1,25 @@
-HDF5 version 1.8.20 released on 2017-11-28
+HDF5 version 1.8.21 released on 2018-06-04
================================================================================
INTRODUCTION
============
-This document describes the differences between HDF5-1.8.19 and
-HDF5-1.8.20, and contains information on the platforms tested and
-known problems in HDF5-1.8.20.
+This document describes the differences between HDF5-1.8.20 and
+HDF5-1.8.21, and contains information on the platforms tested and
+known problems in HDF5-1.8.21.
For more details, see the files HISTORY-1_0-1_8_0_rc3.txt
and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source.
-Links to the HDF5 1.8.20 source code, documentation, and additional materials
+Links to the HDF5 1.8.21 source code, documentation, and additional materials
can be found on the HDF5 web page at:
https://support.hdfgroup.org/HDF5/
-The HDF5 1.8.20 release can be obtained from:
+The HDF5 1.8.21 release can be obtained from:
https://support.hdfgroup.org/HDF5/release/obtain518.html
-User documentation for 1.8.20 can be accessed directly at this location:
+User documentation for 1.8.21 can be accessed directly at this location:
https://support.hdfgroup.org/HDF5/doc1.8/
@@ -30,8 +30,8 @@ in 1.8.0?" document:
https://support.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html
All new and modified APIs are listed in detail in the "HDF5 Software Changes
-from Release to Release" document, in the section "Release 1.8.20 (current
-release) versus Release 1.8.19
+from Release to Release" document, in the section "Release 1.8.21 (current
+release) versus Release 1.8.20
https://support.hdfgroup.org/HDF5/doc1.8/ADGuide/Changes.html
@@ -55,252 +55,373 @@ CONTENTS
New Features
============
- Tools
- -----
- - h5diff
+ Configuration
+ -------------
+ - CMake
+
+ Change minimum version to 3.10.
+
+ This change removes the need to support a copy of the FindMPI.cmake module,
+ which has been removed, along with its subfolder in the config/cmake_ext_mod
+ location.
+
+ (ADB - 2018/03/09)
- h5diff has new option enable-error-stack.
+ - CMake
- Updated h5diff with the --enable-error-stack argument, which
- enables the display of the hdf5 error stack. This completes the
- improvement to the main tools; h5copy, h5diff, h5dump, h5ls and
- h5repack.
+ Add pkg-config file generation
- (ADB - 2017/08/30, HDFFV-9774)
+ Added pkg-config file generation for the C, C++, HL, and HL C++ libraries.
+ In addition, builds on linux will create h5cXXX scripts that use the pkg-config
+ files. This is a limited implementation of a script like autotools h5cc.
+ (ADB - 2018/03/08, HDFFV-4359)
+
+ - CMake
+
+ Refactor use of CMAKE_BUILD_TYPE for new variable, which understands
+ the type of generator in use.
+
+ Added new configuration macros to use new HDF_BUILD_TYPE variable. This
+ variable is set correctly for the type of generator being used for the build.
+
+ (ADB - 2018/01/08, HDFFV-10385, HDFFV-10296)
C++ API
-------
- - The following C++ API wrappers have been added to the C++ Library:
+ - The following C++ API wrappers have been added to class H5Location
+ + H5Lcreate_soft:
+ // Creates a soft link from link_name to target_name.
+ void link(const char *target_name, const char *link_name,...)
+ void link(const H5std_string& target_name,...)
+
+ + H5Lcreate_hard:
+ // Creates a hard link from new_name to curr_name.
+ void link(const char *curr_name, const Group& new_loc,...)
+ void link(const H5std_string& curr_name, const Group& new_loc,...)
+
+ // Creates a hard link from new_name to curr_name in the same location.
+ void link(const char *curr_name, const hid_t same_loc,...)
+ void link(const H5std_string& curr_name, const hid_t same_loc,...)
+
+ Note: previous version CommonFG::link will be deprecated.
- // Creates a binary object description of this datatype.
- void DataType::encode() - C API H5Tencode()
+ + H5Lcopy:
+ // Copy an object from a group of file to another.
+ void copyLink(const char *src_name, const Group& dst,...)
+ void copyLink(const H5std_string& src_name, const Group& dst,...)
- // Returns the decoded type from the binary object description.
- DataType::decode() - C API H5Tdecode()
- ArrayType::decode() - C API H5Tdecode()
- CompType::decode() - C API H5Tdecode()
- DataType::decode() - C API H5Tdecode()
- EnumType::decode() - C API H5Tdecode()
- FloatType::decode() - C API H5Tdecode()
- IntType::decode() - C API H5Tdecode()
- StrType::decode() - C API H5Tdecode()
- VarLenType::decode() - C API H5Tdecode()
+ // Copy an object from a group of file to the same location.
+ void copyLink(const char *src_name, const char *dst_name,...)
+ void copyLink(const H5std_string& src_name,...)
- // Three overloaded functions to retrieve information about an object
- H5Location::getObjectInfo() - H5Oget_info()/H5Oget_info_by_name()
+ + H5Lmove:
+ // Rename an object in a group or file to a new location.
+ void moveLink(const char* src_name, const Group& dst,...)
+ void moveLink(const H5std_string& src_name, const Group& dst,...)
- (BMR - 2017/10/17, HDFFV-10175)
+ // Rename an object in a group or file to the same location.
+ void moveLink(const char* src_name, const char* dst_name,...)
+ void moveLink(const H5std_string& src_name,...)
- - New constructors to open existing datatypes added in ArrayType,
- CompType, DataType, EnumType, FloatType, IntType, StrType, and
- VarLenType.
+ Note: previous version CommonFG::move will be deprecated.
- (BMR - 2017/10/17, HDFFV-10175)
+ + H5Ldelete:
+ // Removes the specified link from this location.
+ void unlink(const char *link_name,
+ const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
+ void unlink(const H5std_string& link_name,
+ const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
- - A document is added to the HDF5 C++ API Reference Manual to show the
- mapping from a C API to C++ wrappers. It can be found from the main
- page of the C++ API Reference Manual.
+ Note: An additional parameter is added to CommonFG::unlink and it
+ is moved to H5Location.
- (BMR - 2017/10/17, HDFFV-10151)
+ (BMR - 2018/05/11 - HDFFV-10445)
+ - New property list subclasses
- High-Level APIs
- ---------------
- - H5DOread_chunk
+ Property list subclasses StrCreatPropList, LinkCreatPropList, and
+ AttrCreatPropList are added for the C property list classes
+ H5P_STRING_CREATE, H5P_LINK_CREATE, and H5P_ATTRIBUTE_CREATE.
- Users wanted to read compressed data directly from a file without any
- processing by the HDF5 data transfer pipeline, just as they were able
- to write it directly to a file with H5DOwrite_chunk.
+ (BMR - 2018/05/11 - HDFFV-10445)
- New API function, corresponding to existing function H5DOwrite_chunk.
- H5DOread_chunk reads a raw data chunk directly from a chunked dataset
- in the file into the application buffer, bypassing the library’s internal
- data transfer pipeline, including filters.
+ - Another argument, LinkCreatPropList& lcpl, is added to the following
+ functions for the use of link creation property list.
+ Group createGroup(const char* name, size_t size_hint = 0,
+ const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT)
+ Group createGroup(const H5std_string& name, size_t size_hint = 0,
+ const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT)
+
+ (BMR - 2018/05/11 - HDFFV-10445)
- (VC - 2017/05/02, HDFFV-9934)
Support for New Platforms, Languages, and Compilers
===================================================
- - Added NAG compiler
-
+ - Added support for Visual Studio 2017 w/ Intel Fortran 18 on Windows 10 x64.
-Bug Fixes since HDF5-1.8.19
+
+Bug Fixes since HDF5-1.8.20
===========================
- Configuration
- -------------
- - cmake
+ - If an HDF5 file contains a filter pipeline message with a 'number of
+ filters' field that exceeds the maximum number of allowed filters,
+ the error handling code will attempt to dereference a NULL pointer.
- The hdf5 library used shared szip and zlib, which needlessly required
- applications to link with the same szip and zlib libraries.
+ This issue was reported to The HDF Group as issue #CVE-2017-17505.
- Changed the target_link_libraries commands to use the static libs.
- Removed improper link duplication of szip and zlib.
- Adjusted the link dependencies and the link interface values of
- the target_link_libraries commands.
+ NOTE: The HDF5 C library cannot produce such a file. This condition
+ should only occur in a corrupt (or deliberately altered) file
+ or a file created by third-party software.
- (ADB - 2017/11/14, HDFFV-10329)
+ This problem arose because the error handling code assumed that
+ the 'number of filters' field implied that a dynamic array of that
+ size had already been created and that the cleanup code should
+ iterate over that array and clean up each element's resources. If
+ an error occurred before the array has been allocated, this will
+ not be true.
- - cmake MPI
+ This has been changed so that the number of filters is set to
+ zero on errors. Additionally, the filter array traversal in the
+ error handling code now requires that the filter array not be NULL.
- CMake implementation for MPI was problematic and would create incorrect
- MPI library references in the hdf5 libraries.
+ (DER - 2018/02/06, HDFFV-10354)
- Reworked the CMake MPI code to properly create CMake targets.Also merged
- the latest CMake FindMPI.cmake changes to the local copy. This is necessary
- until HDF changes the CMake minimum to 3.9 or greater.
+ - If an HDF5 file contains a filter pipeline message which contains
+ a 'number of filters' field that exceeds the actual number of
+ filters in the message, the HDF5 C library will read off the end of
+ the read buffer.
- (ADB - 2017/11/02, HDFFV-10321)
+ This issue was reported to The HDF Group as issue #CVE-2017-17506.
+ NOTE: The HDF5 C library cannot produce such a file. This condition
+ should only occur in a corrupt (or deliberately altered) file
+ or a file created by third-party software.
- - Fixed Fortran linker flags when using the NAG Fortran compiler (autotools).
+ The problem was fixed by passing the buffer size with the buffer
+ and ensuring that the pointer cannot be incremented off the end
+ of the buffer. A mismatch between the number of filters declared
+ and the actual number of filters will now invoke normal HDF5
+ error handling.
- (HDFFV-10037, MSB, 2017/10/21)
+ (DER - 2018/02/26, HDFFV-10355)
- - cmake
+ - If an HDF5 file contains a malformed compound datatype with a
+ suitably large offset, the type conversion code can run off
+ the end of the type conversion buffer, causing a segmentation
+ fault.
- Too many commands for POST_BUILD step caused command line to be
- too big on windows.
+ This issue was reported to The HDF Group as issue #CVE-2017-17507.
- Changed foreach of copy command to use a custom command with the
- use of the HDFTEST_COPY_FILE macro.
+ NOTE: The HDF5 C library cannot produce such a file. This condition
+ should only occur in a corrupt (or deliberately altered) file
+ or a file created by third-party software.
- (ADB - 2017/07/12, HDFFV-10254)
+ THE HDF GROUP WILL NOT FIX THIS BUG AT THIS TIME
+ Fixing this problem would involve updating the publicly visible
+ H5T_conv_t function pointer typedef and versioning the API calls
+ which use it. We normally only modify the public API during
+ major releases, so this bug will not be fixed at this time.
- Library
- -------
- - filter plugin handling in H5PL.c and H5Z.c
+ (DER - 2018/02/26, HDFFV-10356)
+
+ - If an HDF5 file contains a malformed compound type which contains
+ a member of size zero, a division by zero error will occur while
+ processing the type.
- It was discovered that the dynamic loading process used by
- filter plugins had issues with library dependencies.
+ This issue was reported to The HDF Group as issue #CVE-2017-17508.
- CMake build process changed to use LINK INTERFACE keywords, which
- allowed HDF5 C library to make dependent libraries private. The
- filter plugin libraries no longer require dependent libraries
- (such as szip or zlib) to be available.
- (ADB - 2017/11/16, HDFFV-10328)
+ NOTE: The HDF5 C library cannot produce such a file. This condition
+ should only occur in a corrupt (or deliberately altered) file
+ or a file created by third-party software.
- - Fix rare object header corruption bug
+ Checking for zero before dividing fixes the problem. Instead of the
+ division by zero, the normal HDF5 error handling is invoked.
- In certain cases, such as when converting large attributes to dense
- storage, an error could occur which would either fail an assertion or
- cause file corruption. Fixed and added test.
+ (DER - 2018/02/26, HDFFV-10357)
- (NAF - 2017/11/14, HDFFV-10274)
+ - If an HDF5 file contains a malformed symbol table node that declares
+ it contains more symbols than it actually contains, the library
+ can run off the end of the metadata cache buffer while processing
+ the symbol table node.
- - H5Zfilter_avail in H5Z.c
+ This issue was reported to The HDF Group as issue #CVE-2017-17509.
+
+ NOTE: The HDF5 C library cannot produce such a file. This condition
+ should only occur in a corrupt (or deliberately altered) file
+ or a file created by third-party software.
+
+ Performing bounds checks on the buffer while processing fixes the
+ problem. Instead of the segmentation fault, the normal HDF5 error
+ handling is invoked.
+
+ (DER - 2018/03/12, HDFFV-10358)
+
+
+ Configuration
+ -------------
+ - Library
- The public function checked for plugins, while the private
- function did not.
+ Moved the location of gcc attribute.
- Modified H5Zfilter_avail and private function, H5Z_filter_avail.
- Moved check for plugin from public to private function. Updated
- H5P__set_filter due to change in H5Z_filter_avail. Updated tests.
+ The gcc attribute(no_sanitize), named as the macro HDF_NO_UBSAN,
+ was located after the function name. Builds with GCC 7 did not
+ indicate any problem, but GCC 8 issued errors. Moved the
+ attribute before the function name, as required.
- (ADB - 2017/10/10, HDFFV-10297, HDFFV-10319)
+ (ADB 2018/05/22, HDFFV-10473)
- - Fix H5Sencode bug when num points selected is >2^32
+ - CMake
- Modified to fail if the 32 bit limit is exceeded when encoding either
- offsets or counts in the selection.
+ Update CMake commands configuration.
- (HDFFV-10323, VC, 2017/09/07)
+ A number of improvements were made to the CMake commands. Most
+ changes simplify usage or eliminate unused constructs. Also,
+ some changes support better cross-platform support.
- - Fix H5HL_offset_into()
+ (ADB - 2018/02/01, HDFFV-10398)
- (1) Fix H5HL_offset_into() to return error when offset exceeds heap data
- block size.
- (2) Fix other places in the library that call this routine to detect
- error routine.
+ - CMake
- (HDFFV-10216, VC, 2017/09/05)
+ Correct usage of CMAKE_BUILD_TYPE variable.
+
+ The use of the CMAKE_BUILD_TYPE is incorrect for multi-config
+ generators (Visual Studio and XCode) and is optional for single
+ config generators. Created a new macro to check
+ GLOBAL PROPERTY -> GENERATOR_IS_MULTI_CONFIG
+ Created two new HDF variable, HDF_BUILD_TYPE and HDF_CFG_BUILD_TYPE.
+ Defaults for these variables is "Release".
+
+ (ADB - 2018/01/10, HDFFV-10385)
+
+ - CMake
+
+ Add replacement of fortran flags if using static CRT.
+
+ Added TARGET_STATIC_CRT_FLAGS call to HDFUseFortran.cmake file in
+ config/cmake_ext_mod folder.
+
+ (ADB - 2018/01/08, HDFFV-10334)
+
+
+ Library
+ -------
+ - Utility function can not handle lowercase Windows drive letters
+
+ Added call to toupper function for drive letter.
+
+ (ADB - 2017/12/18, HDFFV-10307)
Tools
-----
- h5repack
- h5repack failed to copy a dataset with existing filter.
+ h5repack changes the chunk parameters when a change of layout is not
+ specified and a filter is applied.
- Reworked code for h5repack and h5diff code in tools library. Added
- improved error handling, cleanup of resources and checks of calls.
- Modified H5Zfilter_avail and private function, H5Z_filter_avail.
- Moved check for plugin from public to private function. Updated
- H5P__set_filter due to change in H5Z_filter_avail. Updated tests.
- Note, h5repack output display has changed to clarify the individual
- steps of the repack process. The output indicates if an operation
- applies to all objects. Lines with notation and no information
- have been removed.
+ HDFFV-10297, HDFFV-10319 reworked code for h5repack and h5diff code
+ in the tools library. The check for an existing layout was incorrectly
+ placed into an if block and not executed. The check was moved into
+ the normal path of the function.
- (ADB - 2017/10/10, HDFFV-10297, HDFFV-10319)
+ (ADB - 2018/02/21, HDFFV-10412)
- - h5repack
+ - h5dump
- h5repack always set the User Defined filter flag to H5Z_FLAG_MANDATORY.
+ the tools library will hide the error stack during file open.
- Added another parameter to the 'UD=' option to set the flag by default
- to '0' or H5Z_FLAG_MANDATORY, the other choice is '1' or H5Z_FLAG_OPTIONAL.
+ While this is preferable almost always, there are reasons to enable
+ display of the error stack when a tool will not open a file. Adding an
+ optional argument to the --enable-error-stack will provide this use case.
+ As an optional argument it will not affect the operation of the
+ --enable-error-stack. h5dump is the only tool to implement this change.
- (ADB - 2017/08/31, HDFFV-10269)
+ (ADB - 2018/02/15, HDFFV-10384)
- - h5ls
+ - h5dump
- h5ls generated error on stack when it encountered a H5S_NULL
- dataspace.
+ h5dump would output an indented blank line in the filters section.
- Adding checks for H5S_NULL before calling H5Sis_simple (located
- in the h5tools_dump_mem function) fixed the issue.
+ h5dump overused the h5tools_simple_prefix function, which is a
+ function intended to account for the data index (x,y,z) option.
+ Removed the function call for header information.
- (ADB - 2017/08/17, HDFFV-10188)
+ (ADB - 2018/01/25, HDFFV-10396)
- - h5dump
+ - h5repack
- h5dump segfaulted on output of XML file.
+ h5repack incorrectly searched internal object table for name.
- Function that escape'd strings used the full buffer length
- instead of just the length of the replacement string in a
- strncpy call. Using the correct length fixed the issue.
+ h5repack would search the table of objects for a name, if the
+ name did not match it tried to determine if the name without a
+ leading slash would match. The logic was flawed! The table
+ stored names(paths) without a leading slash and did a strstr
+ of the table path to the name.
+ The assumption was that if there was a difference of one then
+ it was a match, however "pressure" would match "/pressure" as
+ well as "/pressure1", "/pressure2", etc. Changed logic to remove
+ any leading slash and then do a full compare of the name.
- (ADB - 2017/08/01, HDFFV-10256)
+ (ADB - 2018/01/18, HDFFV-10393)
- - h5diff
+ - h5repack
- h5diff segfaulted on compare of a NULL variable length string.
+ h5repack failed to handle command line parameters for customer filters.
- Improved h5diff compare of strings by adding a check for
- NULL strings and setting the lengths to zero.
+ User defined filter parameter conversions would fail when integers
+ were represented on the command line with character strings
+ larger than 9 characters. Increased local variable array for storing
+ the current command line parameter to prevent buffer overflows.
- (ADB - 2017/07/25, HDFFV-10246)
+ (ADB - 2018/01/17, HDFFV-10392)
- - h5import
+ - h5diff
- h5import crashed trying to import data from a subset of a dataset.
+ h5diff seg faulted if comparing VL strings against fixed strings.
- Improved h5import by adding the SUBSET keyword. h5import understands
- to use the Count times the Block as the size of the dimensions.
- Added INPUT_B_ORDER keyword to old-style configuration files.
- The import from h5dump function expects the binary files to use native
- types (FILE '-b' option) in the binary file.
+ Reworked solution for HDFFV-8625 and HDFFV-8639. Implemented the check
+ for string objects of same type in the diff_can_type function by
+ adding an if(tclass1 == H5T_STRING) block. This "if block" moves the
+ same check that was added for attributes to this function, which is
+ used by all object types. This function handles complex type structures.
+ Also added a new test file in h5diffgentest for testing this issue
+ and removed the temporary files used in the test scripts.
- (ADB - 2017/06/15, HDFFV-10219)
+ (ADB - 2018/01/04, HDFFV-8745)
C++ API
-------
- - Marked the following functions deprecated because they were moved to
- class H5Object:
- H5Location::createAttribute()
- H5Location::openAttribute()
- H5Location::attrExists()
- H5Location::removeAttr()
- H5Location::renameAttr()
- H5Location::getNumAttrs()
+ - Removal of memory leaks
+
+ A private function was inadvertently called, causing memory leaks. This
+ is now fixed.
- (BMR - 2017/10/17)
+ (BMR - 2018/04/12 - User reported in email)
+
+ - Changes in exception classes
+
+ Some exception classes are reorganized to reflect the HDF5 object
+ hierarchy and allow customization.
+ DataSetIException -> LocationException -> Exception
+ DataTypeIException -> LocationException -> Exception
+ GroupIException -> LocationException -> Exception
+ AttributeIException -> LocationException -> Exception
+ FileIException -> GroupIException -> LocationException -> Exception
+ Member functions in H5Location and H5Object now throw specific exceptions
+ associated with the invoking objects.
+
+ (BMR - 2018/05/11)
+
+ - H5Location::closeObjId is made static
+ (BMR - 2018/05/11)
+
+ - H5A wrappers in H5Location are removed as they have been in H5Object.
+ (BMR - 2018/05/11)
Supported Platforms
@@ -314,10 +435,10 @@ They are built with the configure process unless specified otherwise.
Versions 4.9.3, 5.3.0, 6.2.0
PGI C, Fortran, C++ for 64-bit target on
x86-64;
- Version 16.10-0
+ Version 17.10-0
Intel(R) C (icc), C++ (icpc), Fortran (icc)
compilers:
- Version 17.0.0.196 Build 20160721
+ Version 17.0.4.196 Build 20160721
MPICH 3.1.4 compiled with GCC 4.9.3
OpenMPI 2.0.1 compiled with GCC 4.9.3
@@ -341,25 +462,18 @@ They are built with the configure process unless specified otherwise.
(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)
+ Windows 7 Visual Studio 2015 w/ Intel Fortran 16 (cmake)
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)
Visual Studio 2015 w/ Intel C, Fortran 2017 (cmake)
Visual Studio 2015 w/ MSMPI 8 (cmake)
- Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3)
- gcc and gfortran compilers (GCC 5.4.0)
- (cmake and autotools)
Windows 10 Visual Studio 2015 w/ Intel Fortran 16 (cmake)
- Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3)
- gcc and gfortran compilers (GCC 5.4.0)
- (cmake and autotools)
Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 16 (cmake)
+ Visual Studio 2017 w/ Intel Fortran 18 (cmake)
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
@@ -401,7 +515,6 @@ Windows 7 Cygwin n y/n n y y y
Windows 7 x64 Cygwin n y/n n y y y
Windows 10 y y/y n y y y
Windows 10 x64 y 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
Mac OS X El Capitan 10.11.6 64-bit n y/y n y y y
Mac OS Sierra 10.12.6 64-bit n y/y n y y y
@@ -411,7 +524,7 @@ 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
+Linux 2.6.32-573.18.1.el6.ppc64 n y/n n y y y
Platform Shared Shared Shared Thread-
C libs F90 libs C++ libs safe
@@ -423,7 +536,6 @@ Windows 7 Cygwin n n n y
Windows 7 x64 Cygwin n n n y
Windows 10 y y y y
Windows 10 x64 y y 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
Mac OS X El Capitan 10.11.6 64-bit y n y y
Mac OS Sierra 10.12.6 64-bit y n y y
@@ -433,7 +545,7 @@ 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
+Linux 2.6.32-573.18.1.el6.ppc64 y y y y
Compiler versions for each platform are listed in the preceding
"Supported Platforms" table.
diff --git a/release_docs/USING_HDF5_CMake.txt b/release_docs/USING_HDF5_CMake.txt
index 589ef03..0261cae 100644
--- a/release_docs/USING_HDF5_CMake.txt
+++ b/release_docs/USING_HDF5_CMake.txt
@@ -37,7 +37,7 @@ I. Preconditions
1. We suggest you obtain the latest CMake for windows from the Kitware
web site. The HDF5 1.8.x product requires a minimum CMake version
- of 3.2.2.
+ of 3.10.1.
2. You have installed the HDF5 library built with CMake, by executing
the HDF Install Utility (the *.msi file in the binary package for
@@ -101,10 +101,10 @@ These steps are described in more detail below.
* Unix Makefiles
* Visual Studio 12 2013
* Visual Studio 12 2013 Win64
- * Visual Studio 11 2012
- * Visual Studio 11 2012 Win64
* Visual Studio 14 2015
* Visual Studio 14 2015 Win64
+ * Visual Studio 15 2017
+ * Visual Studio 15 2017 Win64
<options> is:
* BUILD_TESTING:BOOL=ON
@@ -180,7 +180,7 @@ Given the preconditions in section I, create a CMakeLists.txt file at the
source root. Include the following text in the file:
##########################################################
-cmake_minimum_required (VERSION 3.2.2)
+cmake_minimum_required (VERSION 3.10)
project (HDF5MyApp C CXX)
set (LIB_TYPE STATIC) # or SHARED
@@ -194,7 +194,6 @@ set (LINK_LIBS ${LINK_LIBS} ${HDF5_C_${LIB_TYPE}_LIBRARY})
set (example hdf_example)
add_executable (${example} ${PROJECT_SOURCE_DIR}/${example}.c)
-TARGET_NAMING (${example} ${LIB_TYPE})
TARGET_C_PROPERTIES (${example} ${LIB_TYPE} " " " ")
target_link_libraries (${example} ${LINK_LIBS})
@@ -217,71 +216,77 @@ adjust the forward slash to double backslashes, except for the HDF_DIR
environment variable.
NOTE: this file is available at the HDF web site:
- http://www.hdfgroup.org/HDF5/release/cmakebuild.html
+ https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake
HDF518_Examples.cmake
+ HDF5_Examples_options.cmake
Also available at the HDF web site is a CMake application framework template.
You can quickly add files to the framework and execute the script to compile
your application with an installed HDF5 binary.
========================================================================
-ctest
+ctest use of HDF518_Examples.cmake and HDF5_Examples_options.cmake
========================================================================
-cmake_minimum_required(VERSION 3.2.2 FATAL_ERROR)
+cmake_minimum_required (VERSION 3.10)
###############################################################################################################
# This script will build and run the examples from a folder
# Execute from a command line:
-# ctest -S HDF5_Examples.cmake,OPTION=VALUE -C Release -V -O test.log
+# ctest -S HDF518_Examples.cmake,OPTION=VALUE -C Release -V -O test.log
###############################################################################################################
-set (CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
-set (CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
+set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
+if("@CMAKE_GENERATOR_TOOLSET@")
+ set(CMAKE_GENERATOR_TOOLSET "@CMAKE_GENERATOR_TOOLSET@")
+endif()
+set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
# handle input parameters to script.
#INSTALLDIR - HDF5 root folder
#CTEST_CONFIGURATION_TYPE - Release, Debug, RelWithDebInfo
-#CTEST_SOURCE_NAME - name of source folder; HDF4Examples
-#STATIC_ONLY - Default is YES
-#FORTRAN_LIBRARIES - Default is NO
-#JAVA_LIBRARIES - Default is NO
-##NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac)
-if (DEFINED CTEST_SCRIPT_ARG)
- # transform ctest script arguments of the form
- # script.ctest,var1=value1,var2=value2
- # to variables with the respective names set to the respective values
- string (REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
- foreach (current_var ${script_args})
- if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
- set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
- endif ()
- endforeach ()
-endif ()
-if (NOT DEFINED INSTALLDIR)
- set (INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
-endif ()
-if (NOT DEFINED CTEST_CONFIGURATION_TYPE)
- set (CTEST_CONFIGURATION_TYPE "Release")
-endif ()
-if (NOT DEFINED CTEST_SOURCE_NAME)
- set (CTEST_SOURCE_NAME "HDF5Examples")
-endif ()
-if (NOT DEFINED STATIC_ONLY)
- set (STATICONLYLIBRARIES "YES")
-else ()
- set (STATICONLYLIBRARIES "NO")
-endif ()
-if (NOT DEFINED FORTRAN_LIBRARIES)
- set (FORTRANLIBRARIES "NO")
-else ()
- set (FORTRANLIBRARIES "YES")
-endif ()
-if (NOT DEFINED JAVA_LIBRARIES)
- set (JAVALIBRARIES "NO")
-else ()
- set (JAVALIBRARIES "YES")
-endif ()
+#CTEST_SOURCE_NAME - name of source folder; HDF5Examples
+if(DEFINED CTEST_SCRIPT_ARG)
+ # transform ctest script arguments of the form
+ # script.ctest,var1=value1,var2=value2
+ # to variables with the respective names set to the respective values
+ string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+ foreach(current_var ${script_args})
+ if("${current_var}" MATCHES "^([^=]+)=(.+)$")
+ set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+ endif()
+ endforeach()
+endif()
+
+###################################################################
+### Following Line is one of [Release, RelWithDebInfo, Debug] #####
+set(CTEST_CONFIGURATION_TYPE "$ENV{CMAKE_CONFIG_TYPE}")
+if(NOT DEFINED CTEST_CONFIGURATION_TYPE)
+ set(CTEST_CONFIGURATION_TYPE "Release")
+endif()
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCTEST_CONFIGURATION_TYPE:STRING=${CTEST_CONFIGURATION_TYPE}")
+##################################################################
+
+if(NOT DEFINED INSTALLDIR)
+ set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
+endif()
+
+if(NOT DEFINED CTEST_SOURCE_NAME)
+ set(CTEST_SOURCE_NAME "HDF5Examples")
+endif()
+
+if(NOT DEFINED HDF_LOCAL)
+ set(CDASH_LOCAL "NO")
+else()
+ set(CDASH_LOCAL "YES")
+endif()
+if(NOT DEFINED CTEST_SITE)
+ set(CTEST_SITE "local")
+endif()
+if(NOT DEFINED CTEST_BUILD_NAME)
+ set(CTEST_BUILD_NAME "examples")
+endif()
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDNAME:STRING=${CTEST_BUILD_NAME}")
#TAR_SOURCE - name of tarfile
#if (NOT DEFINED TAR_SOURCE)
@@ -289,60 +294,38 @@ endif ()
#endif ()
###############################################################################################################
-# Adjust the following SET Commands as needed
-###############################################################################################################
-if (WIN32)
- if (${STATICONLYLIBRARIES})
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
- endif ()
- set (ENV{HDF5_DIR} "${INSTALLDIR}/cmake")
- set (CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build)
- set (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
- set (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
-else (WIN32)
- if (${STATICONLYLIBRARIES})
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
- endif ()
- set (ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake")
- set (ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib")
- set (CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
- set (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
- set (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
-endif(WIN32)
-if (${FORTRANLIBRARIES})
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
-else ()
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
-endif ()
-if (${JAVALIBRARIES})
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_JAVA:BOOL=ON")
-else ()
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_JAVA:BOOL=OFF")
-endif ()
-set (BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF5_PACKAGE_NAME:STRING=@HDF5_PACKAGE@@HDF_PACKAGE_EXT@")
+if(WIN32)
+ set(SITE_OS_NAME "Windows")
+ set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake")
+ set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build)
+ set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
+ set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
+else()
+ set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake")
+ set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib")
+ set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
+ set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
+ set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
+endif()
+if(${CDASH_LOCAL})
+ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCDASH_LOCAL:BOOL=ON")
+endif()
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_NAME:STRING=@HDF5_PACKAGE@@HDF_PACKAGE_EXT@")
###############################################################################################################
-# For any comments please contact cdashhelp@hdfgroup.org
+# For any comments please contact help@hdfgroup.org
#
###############################################################################################################
-#-----------------------------------------------------------------------------
-# MAC machines need special option
-#-----------------------------------------------------------------------------
-if (APPLE)
- # Compiler choice
- execute_process (COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process (COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
- set (ENV{CC} "${XCODE_CC}")
- set (ENV{CXX} "${XCODE_CXX}")
- if (NOT NO_MAC_FORTRAN)
- # Shared fortran is not supported, build static
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
- else ()
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
- endif ()
- set (BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
-endif ()
+#############################################################################################
+#### Change default configuration of options in config/cmake/cacheinit.cmake file ###
+#### format for file: set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:YY=ZZZZ") ###
+#############################################################################################
+if(WIN32)
+ include(${CTEST_SCRIPT_DIRECTORY}\\HDF5_Examples_options.cmake)
+else()
+ include(${CTEST_SCRIPT_DIRECTORY}/HDF5_Examples_options.cmake)
+endif()
#-----------------------------------------------------------------------------
set (CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
@@ -416,6 +399,53 @@ endif ()
#-----------------------------------------------------------------------------
##############################################################################################################
+##############################################################################################################
+#### HDF5_Examples_options.cmake ###
+#### Change default configuration of options in config/cmake/cacheinit.cmake file ###
+##############################################################################################################
+#############################################################################################
+#### Change default configuration of options in config/cmake/cacheinit.cmake file ###
+#### format: set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:YY=ZZZZ") ###
+#### DEFAULT: ###
+#### BUILD_SHARED_LIBS:BOOL=OFF ###
+#### HDF_BUILD_C:BOOL=ON ###
+#### HDF_BUILD_CXX:BOOL=OFF ###
+#### HDF_BUILD_FORTRAN:BOOL=OFF ###
+#### BUILD_TESTING:BOOL=OFF ###
+#### HDF_ENABLE_PARALLEL:BOOL=OFF ###
+#### HDF_ENABLE_THREADSAFE:BOOL=OFF ###
+#############################################################################################
+
+### uncomment/comment and change the following lines for other configuration options
+### build with shared libraries
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=ON")
+
+#############################################################################################
+#### languages ####
+### disable C builds
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_C:BOOL=OFF")
+
+### enable C++ builds
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_CXX:BOOL=ON")
+
+### enable Fortran builds
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
+
+#############################################################################################
+### enable parallel program builds
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_ENABLE_PARALLEL:BOOL=ON")
+
+#############################################################################################
+### enable threadsafe program builds
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_ENABLE_THREADSAFE:BOOL=ON")
+
+#############################################################################################
+### enable test program builds, requires reference files in testfiles subdirectory
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=ON")
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCOMPARE_TESTING:BOOL=ON")
+
+#############################################################################################
+
========================================================================
diff --git a/release_docs/USING_HDF5_VS.txt b/release_docs/USING_HDF5_VS.txt
index 41d6a99..b098f12 100644
--- a/release_docs/USING_HDF5_VS.txt
+++ b/release_docs/USING_HDF5_VS.txt
@@ -54,11 +54,11 @@ Using Visual Studio with HDF5 Libraries
Many other common questions and hints are located online and being updated
in the HDF5 FAQ. For Windows-specific questions, please see:
- http://www.hdfgroup.org/HDF5/faq/windows.html
+ http://support.hdfgroup.org/HDF5/faq/windows.html
For all other general questions, you can look in the general FAQ:
- http://hdfgroup.org/HDF5-FAQ.html
+ http://support.hdfgroup.org/HDF5/HDF5-FAQ.html
************************************************************************
Please send email to help@hdfgroup.org for further assistance.