HDF5 develop branch. Most of the changes are for the switch from
subversion to it repositories. This copy is not used for THG daily
tests, but is available for testing on remote machines.
* commit '5aee5213190f145b5a734f5dc76a67c82f7d6b82':
emoved .gitattributes and .gitignore, as the manual migration did not create them. Corrected bbrelease script to create new release version with revision hash.
Translate svn commands to git commands for chkmanifest and bbrelease scripts with source in git repository. Removed the -p option from the command to run autogen.sh. It interfered with running chkmanifest on a machine with the correct autotools versions but without access to /usr/hdf/bin/AUTOTOOLS. The autogen.sh script says the option is for HDF group use only and is likely to be removed. The same effect can be achieved by adding /usr/hdf/bin/AUTOTOOLS to the beginning of PATH.
Removed the -p option from the command to run autogen.sh. It interfered with running chkmanifest on a machine with the correct autotools versions but without access to /usr/hdf/bin/AUTOTOOLS. The autogen.sh script says the option is for HDF group use only and is likely to be removed. The same effect can be achieved by adding /usr/hdf/bin/AUTOTOOLS to the beginning of PATH.
with running chkmanifest on a machine with the correct autotools
versions but without access to /usr/hdf/bin/AUTOTOOLS. The autogen.sh
script says the option is for HDF group use only and is likely to be
removed. The same effect can be achieved by adding
/usr/hdf/bin/AUTOTOOLS to the beginning of PATH.
Svn revisions reverted: 29341, 29326
Branch features/h5check_version was created for further development.
Files changed
test/tcheck_version.c
test/testcheck_version.sh.in
src/H5public.h
src/H5.c
config/lt_vers.am
bin/h5vers
Tested with h5committest.new
bin/h5vers:
Changed to copy the shared lib version from lt_vers.am to H5public.h
(Thanks to Larry who made the changes.)
config/lt_vers.am:
cosmetic change, nothing material.
src/H5public.h:
Changed by bin/h5vers.
src/H5.c:
Changed H5check_version() to use shared library version for compatibility
checking.
test/tcheck_version.c:
test/testcheck_version.sh.in:
Changed to use shared library version numbers instead of the HDF5 library
version numbers for testing.
Tested: tested in Jam (C only), platypus and osx1010dev (enable fortran and C++).
The current implementation for Mac OSX platform is a kludge that sometimes left behind mounted volumes.
Temporary screen out the checking of installtion_check step (so that daily test may pass).
Tested: by hand running cmakehdf5 in platypus and osx1010test.
installation.
Tried to find out what went wrong but all output files were deleted already.
Added a verbose option to display all cmake process output in order to see what
might have gone wrong. Default is on.
Using --disable-verbose will turn it off.
Tested: osx1010dev, osx1010test, playtypus.
This was giving a lot of users headaches and the parser code rarely
changes. There is now a new script (bin/genparser) which can be
run as needed.
Tested on: Ubuntu 15.10 (x86_64 Linux 4.2.0)
gcc 5.2.1, flex 2.5.39, bison 3.0.2
r27860-27883
r27892-27916
Tested on: - h5committest
- jam (parallel) fails with an existing, unrelated MPI config error
- platypus fails with due to an existing, unrelated cmakehdf5 error
where it does not recognize --enable-fortran2003.
Removes .pl extension from Perl scripts. This may be returned in the future,
but it's best to keep the script names unchanged while we merge with the
trunk.
Tested on: h5committest
The only remaining code consists of a few floating-point tests
that rely on pre-generated and checked-in VMS files. These have
been left alone, even though they will not be possible to
recreate, since testing VMS float behavior is still important.
Tested on: h5committest
Tested w/ h5committest
NOTES: - The manifest may still be messed up.
- Cmake fails since the dual binary work needs to be merged with
this repo's CMake externals.
The configure summary (libhdf5.settings) was missing from the configure output.
Solution:
Append the configure summary to the configure logfile if configure succeeds.
Tested:
hand ran cmakehdf5 in jam and inspected the logfile.
configure.ac
hl/src/H5LTparse.c
hl/src/H5LTparse.h
Address HDFFV-9010: configure issue with gcc 4.9.2 "-l ".
Change default to disable_shared on CYGWIN.
release_docs/INSTALL_Cygwin.txt
release_docs/RELEASE.txt
Update for changed default and no CYGWIN szip binary.
c++/src/cpp_doc_config
bin/h5vers
AddressHDFFV-9010: Add cpp_doc_config to h5vers
Tested with h5committest, on CYGWIN.
That broke the testings as some testfiles have zlib compressed datasets.
Added options control to enable the linking of zlib external libarary by
default and turn off the szip library linking as szip library may not be
avaiable. This matches the established settings.
Tested: run cmakehdf5 by hand in jam and platypus.
Also tested in wren but it failed in the testing stage.
Also tried "cmakehdf5 --script" in jam. It failed.
columns that are output by svn stat.
Previously, the script assumed that they would all be blank for newly-
added files. This is not always true when merging.
Part of: HDFFV-8895
Tested on: jam (bin/chkmanifest only)
calls that use a FUNC_ENTER macro that does not include parentheses.
This does not affect any source code at this time.
Part of: HDFFV-9141
Tested on: jam (bin/trace behavior only)
Updates the bin/chkmanifest script so that it parses the output
of svn commands instead of hacking at the .svn/entries file. This
will make the script more future-proof and allows it to work with
current Subversion repositories.
Tested on: jam (bin/chkmanifest only)
bin/genltanalyze script, which has been deleted. Also removed the
generated hl/src/H5LTparse.c/h and H5LTanalyze.c files.
Part of: HDFFV-9120
Tested on: Local Ubuntu VM
- Modified autogen.sh to run libtoolize.
NOTE: OS-X often uses glibtoolize. This will be fixed soon.
- Addational helpful output added to autogen.sh.
Part of HDFFV-9120
Tested on: 64-bit Linux VM
Fix cmakehdf5 so that it can figure out where the source directory is.
It expects cmakehdf5 itself resides at $srcdir/bin/cmamkehdf5.
Tested: Jam by invoking cmakehdf4 with different paths.
different language API's and testings. See "cmakehdf5 --help" for details.
Tested: jam using different combinations of option and verified correctness
by inspeacting libhdf5.settings output.
Merge 64-bit ID changes from branch to trunk. (Plus a few minor cleanups
that aren't on the branch)
Tested on:
Mac OSX/64 10.9.4 (amazon) w/C++ & FORTRAN
(h5committested on branch already for a week)
The temporary directory used by zip is the same as the rest but it has to be different.
Changed tar2zip to use a different (ztmpdir) name.
Tested: by hand running "bin/release ... gzip zip md5".
Need to unify Windows release process (zip file) and Unix release process (bin/release-> tarfile)
Solution:
Added a new option (zip) to generate Windows zip file from the release tarball.
Tested: by hand running "bin/release ... gzip zip" to verify zip file looks right.
Allen and Dana then confirmed the zip file can be used to build and test HDF5
library without error.
Remove all traces of MPI-POSIX VFD and GPFS detection/code.
Remove remaining traces of stream VFD.
Remove testpar/t_posix_compliant test (it's not actually verifying anything).
Clean up H5D__mpio_opt_possible() further.
Moved environment variable that disables MPI collective operations into
MPI-IO VFD (instead of it being in src/H5S.c).
A few other small code cleanups.
Tested on:
Mac OSX/64 10.9.2 (amazon) w/parallel & serial
Changed to use the quick steps described in INSTALL_CMake.txt.
Previous version is available by --old.
Added a help page to explain how to use.
Added a fix to figure out the current HDF5 version and use that to find the
correct file for install. (Still need to figure out the platform name.)
Tested: Jam and Koala
The h5dump tests only looked at headers and never the data. Data reads would fail with invalid number of params (7 expected 20).
Regenerated file and replacement ddls updated.
New h5dump test will be added to read the data.
Clean up warnings, switch library code to use Standard C/POSIX wrapper
macros, remove internal calls to API routines, update checkapi and checkposix
scripts.
Tested on:
Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
Big-Endian Linux/64 (ostrich)
Bring changes from Coverity branch to the trunk:
r20612:
Changed string functions to versions with string length to fix coverity issues
922, 942 and 943.
r20614:
Use HDsnprintf. --gh
r20675:
Fix for coverity #1714 due to the fix for #810.
Use HDfree() instead of H5MM_xfree().
r20678:
Repaired coverity issue #598 -- failure to check return value from a
call to fstat(), or to tidy up in the event of failure.
r20679:
Use HDstrncpy. --gh
r20681:
Use HDstrncat and HDstrncpy. --gh
Tested on:
Mac OSX/64 10.8.2 (amazon) w/Debug, etc.
(too minor to require h5committest)
Description:
Adds 2 new API functions, H5Dscatter and H5Dgather. H5Dscatter retrieves data
from a specified callback function and scatters it into a selection, defined by
a supplied dataspace, within a supplied memory buffer. H5Dgather gathers data
from a selection within a supplied memory buffer and passes it in a contiguous
form to a supplied callback function. Added tests for these functions
Tested: jam, ostrich, koala (h5committest); ummon
to the standout. This keeps command output terse and easier to tell if it
passes or not.
Added time stamps printing.
Added exit code and command executation summary.
All these will make it easier for user to tell if the command succeeds or not.
Tested: {jam,koala,ostrich} all passed. {Linew,fred,duck,owl} failed.
The failure is the cmake process, not cmakehdf5 itself.
HDFFV-8143 Provide a routine(s) for telling the user why the library broke collective data access
Description:
Added H5Pget_mpio_no_collective_cause() function that retrive reasons why the collective I/O was broken during Read/Write IO access.
Reasons to break collective I/O:
- SET_INDEPENDENT
- DATATYPE_CONVERSION
- DATA_TRANSFORMS
- MPIPOSIX
- NOT_SIMPLE_OR_SCALAR_DATASPACES (NULL Space)
- POINT_SELECTIONS
- NOT_CONTIGUOUS_OR_CHUNKED_DATASET (Compact or External-Storage)
- FILTERS
Tested:
jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
Tweak make_vers script so that it indents preprocessor commands inside
#ifdefs, is more forgiving and informative about the input file's prefix, and
is better parameterized with the global variables at the beginning of the
script. When major versions are branched from the trunk, the $max_idx value
should be the only value that needs to be changed in the version of the script
on the trunk.
Changes to H5version.h file are just indention.
Tested on:
Mac OS X/32 10.6.8 (amazon)
(too minor to require h5committest)
Test scripts sometimes need to filter some system-specific messages from the
actual output so that it can match the correct expected output. These filtering
functions, ususally called "STDOUT_FILTER()" and "STDERR_FILTER()" were being
repeated in individual test scripts. This becomes a maintenance problem and
is error prone.
Solution:
Extract the two filter functions code to bin/output_filter.sh and then each
test script sources it in. This allows reuse of coding and is much easier to
maintain and to add new filtering.
Tested:
LLNL Zeus (linux64 cluster) and Dawndev (Blue-Gene cluster), both for serial
mode only.
--This line, and those below, will be ignored--
M tools/misc/testh5mkgrp.sh
M tools/h5dump/testh5dump.sh.in
M tools/h5diff/testh5diff.sh
M tools/h5copy/testh5copy.sh
M tools/h5ls/testh5ls.sh.in
M MANIFEST
A bin/output_filter.sh
Teach the tracing script & routines about the 'unsigned long' and
'unsigned long long' types, so that the H5Pset_fapl_log() API routine gets
tracing information correct.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
FreeBSD/64 8.2 (freedom) w/gcc4.6, w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (koala) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, w/threadsafe, in production mode
Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.6 (amazon) in debug mode
Mac OS X/32 10.6.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Mac OS X/32 10.6.6 (amazon) w/parallel, in debug mode
The content of bin/config_para_ibm_sp.sh has been added to
release_docs/INSTALL_parallel long ago. Just got around to remove it.
Tested: no need since nothing refer to config_para_ibm_sp.sh except MANIFEST.
Ran bin/chkmanifest.
Description:
In an AIX 6.1 system, configure --enable-shared could not build a shared
HDF5 library. The problem was because the version of config.guess was too
old to recongnize AIX 6.X and also configure.in had a local fix which did
not recognize AIX 6.X.
Solution:
1. Mike McGreevy updated bin/config.guess to handle AIX 6.X.
2 Albert fixed configure.in to recognize AIX 6.X.
Note that though HDF5 can build shared lib for AIX 6.X systems
but it still could not install the proper library as in AIX 5.X
systems. Also, bin/config.sub should be updated too.
Tested: BP which is the AIX 6.1 system that exposed this problem.
Cleaned up the code a bit by:
1. It used to that -xxx options must be at the beginning such that
"buildhdf5 --disable-shared -config" was an error. Now -xxx options
can appear anywhere in the command options.
2. Eliminate the need of variables $CONFIG_CXX, $CONFIG_FORTRAN,
$CONFIG_PARALLEL by appending their values to $CONFIG_OP directly.
3. Also append $WITH_SZLIB to $CONFIG_OP when it is defined, not later.
4. Call CONFIG directly instead of setting up $CONFIGURE.
5. Removed the last TIMESTAMP since "trap 0" will call QUIT which calls
TIMESTAMP already. This eliminated the extra timestamp when it finishes
normal.
tested:
Tested by hand since h5committest does not really test this command.
Autotool Upgrade / Libtool Bug Fix
Description:
Updated autotools referenced in bin/reconfigure as follows:
Autoconf 2.64 --> Autoconf 2.65
Automake 1.11 --> Automake 1.11.1
Libtool 2.2.6a --> Libtool 2.2.6b-mcg
The referenced libtool version is a custom version of 2.2.6b. It
has been tweaked to fix a bug in libtool that occurs
when using PGI 10.0 compilers. A check incorrectly categorizes
the C++ compiler as version 1.0 instead of 10.0, and the link
line is subsequently set up incorrectly and fails to compile.
A patch has been made available and will be included in the next
release of libtool, but in the meantime I've applied the patch to a custom
installation as indicated above. This bin/reconfigure now references
the custom installation, and the resulting configure script will correctly
categorize the PGI 10.0 C++ compiler.
Ran bin/reconfigure to regenerate configure and makefiles.
Tested:
jam and amani with PGI 10.0 compilers.
h5committest
Bring changes from file free space branch back to the trunk. *yay!*
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.5.8 (amazon) in debug mode
Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Header Installation Fix
Description:
Updated the bin/install-sh script with the copy from the new Automake 1.11
distribution. This addresses the problem with Solaris only copying the
first header file on the one-line command to the install directory.
Tested:
Linew, Jam, Liberty, Smirom:
- build, test, install, installcheck.
Updating autotools
Description:
Installed new autotools and used them to reconfigure HDF5.
- Automake upgraded to 1.11
- Autoconf upgraded to 2.64
- bin/reconfigure script edited to use new versions (on jam), and
run to generate new configure script and Makefile.in's.
- configure.in script edited to add "_cv_" to all AC_CACHE_VAL strings
(in order to comply with new autoconf standard).
Tested:
Tested on machines jam, smirom, liberty, linew.
Tested w/ features c++, fortran, parallel.
Tested w/ compilers gcc, pgcc, icc.
Further testing via Daily Tests should catch any other outliers. Upon
passing DT's, I'll propogate the new tools into 1.8, hdf4, et cetera.
Bring r16846 from revise_chunks branch back to trunk:
Fix broken (for how long?) H5_ASSIGN_OVERFLOW macro to actually detect
overflows during assignments, along with several errors it [now] detected.
Cleaned up a fix minor warnings and/or pieces of code also.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
(h5committest not needed - multi-platform test performed on branch)
- Updated bin/reconfigure to use latest version of automake (1.10.2).
Re-generated Makefile.in's by running bin/reconfigure.
- Added libtool version numbers to c++, fortran, hl, hl c++, and hl fortran
libraries.
Tested:
jam, liberty, smirom
Bring r16305 back from revise_chunks branch:
Add detection of C99 "designated initializers" to configure script and
use new H5_HAVE_C99_DESIGNATED_INITIALIZER macro to conditionally compile
default layout variables in src/H5Pdcpl.c
Also, minor code cleanups, etc.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
(Other platforms tested on branch)
The Tail command in jam (a newer linux) does not accept the +2l option.
It ended up wiping most of the release_doc/RELEASE.txt file contents.
Replaced the "tail +2l" by "sed -e 1d".
Tested:
Tested in Jam to verify it functions properly again.
was not updated automatically and therefore
was always outdated. Modified h5vers script to update
the version for the VMS configuration file as we do for
the similar windows file.
Platforms tested:
kagiso with bin/h5vers
th user's definition of H5_USE_16_API. The H5_USE_16_API_DEFAULT is defined through
configure with the flag --with-default-api-version=v16.
Tested with h5committest.
Description:
- Remove need to set LD_LIBRARY_PATH when using shared szip library.
- Libtool 2.2.6a is now used to generate libraries.
- 'make check install' dependency bug is fixed, and should no longer
break the build.
- removed hard coding of shell in config/commence.am, as this causes
problems on Solaris with the new version of libtool.
- RELEASE.txt with appropriate changes.
Tested:
- kagiso, smirom, linew (merged from 1.8, pretty quick tests)
> 1.
Description: Added a new field 'app_count' to H5I_id_info_t struct, to track
the reference count on an id due to the application. the old 'count' field
tracks the total. Generally any id visible to the application gets placed
in app_count. Added app_ref boolean parameter to H5I_inc_ref, H5I_dec_ref,
H5I_register, H5I_clear_type, and a few other functions, to specify whether
the operation(s) being performed on the id(s) are due to the application
(TRUE) or not (FALSE). Test added for this case.
Tested: kagiso, smirom, linew (h5committest)
Description:
-- Remove a couple lines of debugging output
-- Make sure H5_PACKAGE_NAME outputs 'HDF5' rather than 'hdf5'
-- Take into account version strings with a postfix. This isn't currently used in HDF5 1.9 branch, but is in HDF5 1.8.
Tested:
kagiso
Description:
This commit is a major update to the Windows-maintained H5pubconf.h file. This file is statically-distributed because Windows cannot generate it dynamically as other platforms do. Previously, our Windows version contained a minimal subset of the macro definitions required. To update, I've gone through each macro (based on kagiso's output), and tested for the correct value on Windows. This allows us to better target code based on feature flags. It should also be easier to update in the future as changes are made to the configure script.
This commit also contains one small bug fix in h5ls.c. Some Windows-specific code was missing a local variable definition. The bug went unnoticed because Windows didn't define the feature flag correctly.
I've also made changes to the h5vers script. Whenever the version string is incremented (automatically by h5test after a snapshot), the strings in H5pubconf.h will also be updated.
Tested:
VS2005 on WinXP (32- and 64-bit)
VS.NET on WinXP 32-bit
h5vers tested under Cygwin
Description: Test gcov script on kagiso
Solution: The bin/gcov_script was not working on kagiso (it was written to
be used on heping, but since we don't have heping anymore, we
need it on kagiso). There was a problem in that the generated
.gcda files were being created in the /src/.libs directory when
the script was expecting them to be in the /src directory. Also,
-lgcov was added to LDFLAGS.
The script performs configuration of HDF5 and runs the tests, and
generates code coverage statistics for the source code files,
which it places in the gcov_logs directory.
The individual *.gcov files show the number of times each
individual line of the associated source file is executed, and
displays branches tken information as well. The file gcov.log
shows a summary of each source file's coverage statistics in one
easily accessible file.
Tested: kagiso
Description: Applying update to autotools that was applied to 1.8 a couple
of weeks ago to the trunk.
Updated bin/reconfigure script to reflect the new versions of
libtool and automake in the /home1/packages/ directory.
Rearranged configure.in script. When using libtool 2.2.2, the
libtool script doesn't generate until later in the configuration
process, so I had to move a test that parsed through the libtool
script to a point after where it was actually being generated.
Ran libtoolize on the project, and ran bin/reconfigure to
regenerate configure and Makefile.in's throughout.
Tested: kagiso, smirom, linew (h5committest)