Compare commits

...

1236 Commits

Author SHA1 Message Date
Mike McGreevy
992e741197 [svn-r19306] Purpose:
Patch release.

Description:

    - Reorganize RELEASE.txt to better highlight changes
      since 1.8.5.
    - Update version to hdf5-1.8.5-patch1
    - Generate release tarballs (repo changed to 'released').
2010-08-26 09:36:14 -05:00
Albert Cheng
a5bf7717da [svn-r19305] bug 1678: temporary fix.
Description: aix -q32 default to a memory limit that some HDF5 tests would
fail in malloc.

Solution:
Temporary hardset
RUNSERIAL=${RUNSERIAL="env LDR_CNTRL=MAXDATA=0x20000000@DSA"}
to bypass this problem until the test programs are fixed.  Though -q64 binary
has a higher default memory limit and does not need this patch, it is applied
the same for the sake of simplicity since it is a temporary fix.

Tested:
in uP, both -q32 and -q64 modes. No h5committest since this applies to the
AIX platform only.
2010-08-25 19:01:24 -05:00
Quincey Koziol
8399c7c8f8 [svn-r19299] Description:
Bring r19298 from 1.8 branch to 1.8.5 branch:

	Bring r19297 from trunk to 1.8 branch:

	Whack a few more memory errors exposed by valgrind.

	Make the debugging dump output a little bit prettier.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2010-08-25 16:18:57 -05:00
Quincey Koziol
efd616f1ed [svn-r19285] Description:
Bring r19823 & 19824 from 1.8 branch back to 1.8.5 branch:

r19823:
	Bring r19278 from trunk to 1.8 branch:

	More fixes to memory allocation, etc. exposed by valgrind.

r19824:
	Add note about correcting valgrind issues.

Tested on:
	FreeBSD /32 6.3 (duty) w/debug
	(too minor to require h5committest)
2010-08-24 06:22:05 -05:00
Quincey Koziol
ba70e95aa9 [svn-r19275] Description:
Bring r19274 from 1.8 branch to 1.8.5 branch:

	(Except for clear-memory #ifdef in src/H5SM.c that depends on
changes to data structures)

	Bring r19272 & 19273 from trunk to 1.8 branch:

	Close out various resource leaks and usages of uninitialized memory that
were flagged by valgrind.  [There's still some more valgrind warnings, but
it's better now... :-/ ]

	 Also clean up warnings and code formatting.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode (build only)
	(h5committested on 1.8 branch)
2010-08-20 17:40:24 -05:00
Neil Fortner
9eb4029aa4 [svn-r19241] Merge revision 19147 to 1.8.5 branch: bug with direct I/O driver.
Tested: fedora
2010-08-16 15:27:56 -05:00
Neil Fortner
097df879db [svn-r19240] Merge revision 19077 to 1.8.5 branch: bug with local heaps and H5Pset_sizes.
Tested: fedora
2010-08-16 13:59:55 -05:00
Mike McGreevy
15ddff7e81 [svn-r19239] Purpose:
- Bring revision 19078 from coverity branch to 1.8.5 branch
      to be included in patch release.

Description:

    This fix frees saved ID structures in the H5I interface
    when the library shuts down.

Tested:

    h5committest
2010-08-16 12:38:59 -05:00
Raymond Lu
3e63ca78b1 [svn-r19151] Correction from the previous checkin for H5Oattribute.c. Because the attribute structure it
is shared now. The only situation that requires copying the data is when the metadata cache 
evicts and reloads this attribute. The attribute structure will be different in that 
situation. 

Tested on jam.
2010-07-29 13:40:09 -05:00
Raymond Lu
7370e4af46 [svn-r19145] Update for bug fix #1956. 2010-07-28 14:47:53 -05:00
Raymond Lu
a1ba49d7b7 [svn-r19138] In line 861, there's no need to allocate data buffer or copy the data because the attribute
structure is shared now.  Only do an assertion check, instead.

Tested on jam - simple change.
2010-07-28 12:29:47 -05:00
Mike McGreevy
6b18ac11ed [svn-r18978] Update version to 1.8.5 and change status from
in development to released.
2010-06-04 13:30:01 -05:00
Frank Baker
b7f59c248f [svn-r18977] Description:
Add acknowledgment of LBNL contractual support.
2010-06-04 13:14:12 -05:00
Frank Baker
111726cc91 [svn-r18975] Description:
Copy edit.
2010-06-04 10:53:45 -05:00
Frank Baker
a53b85188c [svn-r18974] Description:
Editorial pass on all sections except "Known Problems."
    Editorial pass on "Known Problems" since the last release.
2010-06-04 10:16:24 -05:00
Albert Cheng
3f1abae1cd [svn-r18972] Updated with the new packed bits feature of h5dump. 2010-06-04 01:38:24 -05:00
Albert Cheng
0c5809e10b [svn-r18970] Updated with SNL Glory information.
Removed the retired thunderbird.
2010-06-03 19:30:24 -05:00
Albert Cheng
209028992d [svn-r18968] Updated with Red Storm information. 2010-06-03 19:20:07 -05:00
Albert Cheng
c9d5997265 [svn-r18966] updated with AIX support information. 2010-06-03 18:46:51 -05:00
Mike McGreevy
dfaf734ac3 [svn-r18960] Purpose:
Add acknowledgments file to top level of HDF5 1.8.5 distribution.
2010-06-03 15:08:19 -05:00
Frank Baker
c4a3442497 [svn-r18959] Description:
Expand discussion of "review-change-click cycle" in configuration step.
2010-06-03 14:44:47 -05:00
Allen Byrne
a9426c355c [svn-r18955] Corrected name of external libraries 2010-06-03 13:50:51 -05:00
Frank Baker
4343326996 [svn-r18953] Description:
Editorial review.
2010-06-03 11:49:21 -05:00
Mike McGreevy
da84f84387 [svn-r18952] Purpose:
Update to RELEASE.txt clarifying behavior of --disable-largefile flag.
2010-06-03 10:45:33 -05:00
Allen Byrne
21fd890234 [svn-r18949] Corrected where the static *.mod files are installed to 2010-06-02 16:00:24 -05:00
Allen Byrne
22923a7cac [svn-r18944] Added gcc version to cygwin line 2010-06-02 14:31:32 -05:00
Elena Pourmal
bd2b2cb6e6 [svn-r18941] Maintenance: Update the file with information about Mac Intel and PPC. 2010-06-01 16:35:14 -05:00
Allen Byrne
b69377a727 [svn-r18938] Removed support for MinGW. 2010-06-01 15:26:47 -05:00
Allen Byrne
69b2fbdcba [svn-r18935] Update Cygwin and Windows references 2010-06-01 14:30:07 -05:00
Mike McGreevy
b4a2d511b8 [svn-r18934] Purpose:
Update RELEASE.txt with compiler information
    and known issues for NCSA Cobalt.
2010-06-01 14:25:58 -05:00
Allen Byrne
4658ed08b1 [svn-r18931] Update Cygwin install instructions 2010-06-01 14:20:01 -05:00
Mike McGreevy
76fa739de3 [svn-r18921] Update version to 1.8.5-pre2 2010-05-28 09:00:26 -05:00
Larry Knox
57e066c7a3 [svn-r18919] Add $(TEST_PROG) and *.0 to CHECK_CLEANFILES and remove / between ${DESTDIR} and @prefix@ in config/commence.am. This gets propagated to Makefile.in and removes all the program and object files from the examples directories when make check-clean is run.
Tested amani, jam, linew, CYGWIN
2010-05-27 17:46:44 -05:00
Larry Knox
0b6531d21f [svn-r18918] Resolve installcheck issues for CYGWIN:
Remove extra / between ${DESTDIR}/@prefix@
  deal with added .exe for program files.

Tested with h5committest on amani, jam, linew, and with CYGWIN.
2010-05-27 15:30:51 -05:00
Allen Byrne
110447cb5b [svn-r18912] Added missing fortran library in list of libraries.
Tested: Windows, local linux
2010-05-27 11:48:43 -05:00
Larry Knox
24d02aa0e4 [svn-r18909] Updated RELEASE.txt for THG linux and solaris machines.
Added make install error on FREE_BSD (static only) to known problems in RELEASE.txt.
Fixed install-examples issue for CYGWIN.
Added '_' to sed script for solaris version to avoid losing name of compilers.

Tested on amani, jam, and linew with h5committest.
2010-05-26 17:39:49 -05:00
Allen Byrne
6649fd04f3 [svn-r18904] Updated with new name of CMake.txt 2010-05-26 11:54:46 -05:00
Allen Byrne
d7e9fb9f36 [svn-r18901] Renamed Cmake specific document, making more general for all platforms. Updated references in other files. 2010-05-26 11:42:03 -05:00
Raymond Lu
8075e3c4da [svn-r18900] I added the information of OpenVMS in the table of supported systems.
No test is needed.
2010-05-26 10:26:09 -05:00
Allen Byrne
92bc2a388d [svn-r18896] Added fortran /dbglibs option to fortran compile flags for windows intel fortran case.
Duplicated windows intel fortran flag block for hl/fortran

Tested: windows
2010-05-25 16:11:17 -05:00
Albert Cheng
0e8df42d9b [svn-r18893] Improvment:
Revised the online help page of h5dump to explain the packed bits feature and
added an example too.

Tested: h5committest.
2010-05-25 15:30:08 -05:00
Allen Byrne
e5eecfd17d [svn-r18891] Enable Packed Bits option as defualt ON 2010-05-25 11:06:15 -05:00
Allen Byrne
3a1b843aa9 [svn-r18888] Update CMake fortran configure/build with changes from community.
- Add an install rule to copy compiled fortran module files
- Only build the xlatefile utility if testing and tools are enabled
- Don't do MPI HAVE_XXX checks until MPI_FOUND is true
- Install needs H5version.h & H5overflow.h to be copied
- Add debug information flags to debug compile and link lines for win32 Intel compiler
2010-05-25 10:59:29 -05:00
Allen Byrne
f9e3835c07 [svn-r18887] Add -C {Debug | Release} to ctest command line 2010-05-24 10:13:38 -05:00
Elena Pourmal
1475d2f50d [svn-r18884] Maintenance: Brought fixes for bug 1851 (DS failures on PPC) to 1.8.5 branch
Platforms tested: juniper-w (Mac PPC), linew (64-bit), jam, amani
2010-05-22 14:12:17 -05:00
Allen Byrne
cad16e6ffd [svn-r18879] Update testh5diff.bat for --follow-symlinks change
Tested:  windows
2010-05-21 16:57:05 -05:00
Jonathan Kim
d7b9893967 [svn-r18875] Purpose:
Rename '--follow-links' to '--follow-symlinks' 

Description:
    The '--follow-links' option is to follow symbolic links (soft and external).
    Make the name more intuitive and specific to the feature.
    Merged from hdf5 1.8 branch r18874.

Tested:
    jam, amani
2010-05-21 16:04:21 -05:00
Neil Fortner
79a7bb647d [svn-r18870] Purpose: Fix bug in dataset shrinking algorithm
Description:
Previously, it was possible for a chunk to be flushed due to chunk operations in
the callback from H5B_iterate in H5D_chunk_prune_by_extent.  Because flushing
the chunk can force it to be reallocated if it is filtered, this can change the
contents of the chunk b-tree in the middle of H5B_iterate.  Because H5B_iterate
uses a locally cached copy of the b-tree, this causes subsequent operations
to be passed incorrect data.  Rewrote H5D_chunk_prune_by_extent to avoid
H5B_iterate entirely.

Also fixed a bug in the dataset expand algorithm that could cause extra chunks
to be created.

Tested: jam, linew, smirom (h5committest)
2010-05-20 17:09:14 -05:00
Allen Byrne
ad6eab2001 [svn-r18858] Change allocation of buffer to use the specified dimensions to calculate the size of a data buffer. Also removed any initialized values.
Tested: windows
2010-05-19 17:00:59 -05:00
Raymond Lu
da660dbc3d [svn-r18852] Albert added more tests for packed bits. I made the change accordingly.
I tested it for the 1.8 branch, not 1.8.5 yet.
2010-05-18 14:47:47 -05:00
Allen Byrne
252b5618b0 [svn-r18849] Added packed-bits tests to batch file
Tested: windows
2010-05-18 13:34:26 -05:00
Allen Byrne
1c51b0ec6a [svn-r18846] Removed obsolete packed bits tests 2010-05-18 12:31:21 -05:00
Allen Byrne
3b889fc8d0 [svn-r18843] Updated windows information. Added CMake Early Access information. 2010-05-18 10:52:15 -05:00
Mike McGreevy
172556284c [svn-r18842] Changed version to hdf5-1.8.5-pre1 to start pre-release testing. 2010-05-18 10:33:51 -05:00
Larry Knox
a41fb65b7c [svn-r18836] Added code to config files, libhdf5.settings.in and configure.in to add compiler version information for fortran and C++ in the settings file and the configure output for our common compilers on linux, solaris, and mac(gnu only).
Tested:  amani, jam, linew (h5committest) and with configure on these machines and tejeda.
2010-05-17 17:23:23 -05:00
Quincey Koziol
b85900177f [svn-r18835] Description:
Correct function enter macro and add 'done' label, for routine that is
only invoked when configured with --enable-debug=all.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug & production
    (too minor to require h5committest)
2010-05-17 16:18:46 -05:00
Quincey Koziol
ed89c38587 [svn-r18833] Description:
Correct error where variable didn't always get initialized correctly.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug & prod
    Windows w/debug & prod
2010-05-17 16:08:40 -05:00
Allen Byrne
b2b00a7c4d [svn-r18830] Updated CMake file with r18826
Tested: local linux
2010-05-17 14:51:06 -05:00
Albert Cheng
07ed9b81ae [svn-r18829] Updated with the newly added packed bit test files.
Tested: bin/chkmanifest'ed in Jam.
2010-05-17 14:50:30 -05:00
Quincey Koziol
c47a15cb54 [svn-r18828] Description:
Correct error where variable didn't always get initialized correctly.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug & prod
    Windows w/debug & prod
2010-05-17 14:29:21 -05:00
Albert Cheng
7144b18c76 [svn-r18826] Added packed bits tests on Compound and Array data types.
Tested: AlbertPax. Will do h5committest after check in.
2010-05-17 10:44:57 -05:00
HDF Tester
d146500357 [svn-r18825] Snapshot version 1.8 release 4 (snap22) 2010-05-16 20:52:48 -05:00
Albert Cheng
174cc7b19e [svn-r18821] Packed bits codes tidy up. Removed codes that are not needed
any more. Changed algorithm of creating mask which now sits
at the least significant bits. Display data by down shift
first and then mask it for display. Changed the variable
names to reflect the new purpose better.

Tested: AlbertPax (linux)
2010-05-15 00:40:00 -05:00
Elena Pourmal
b8f131dc78 [svn-r18820] Bug fix:
Fixed a bug (1822) in the H5DSdetach_scale function when 0 bytes
    were allocated after the last reference to a dim. scale
    was removed from the list of references in a VL element of the
    DIMENSION_LIST attribute; modified the function to comply
    with the Spec: DIMENSION_LIST attribute is deleted now when no
    dimension scales left attached.

Platforms tested: jam with electric fence, amani amd linew
2010-05-14 23:28:50 -05:00
Larry Knox
96c13847a6 [svn-r18817] Added scripts to compile and run installed examples. The scripts are installed with the examples, and there is one script to run the scripts for all hl examples and another to run the scripts for all the examples.
Tested:  amani, jam, linew (h5committest).
2010-05-14 17:05:48 -05:00
Allen Byrne
5c2734ec51 [svn-r18815] Move progname and d_status functions from h5tools to h5tools_util
Tested:
    linux and windows
2010-05-14 16:53:41 -05:00
Jonathan Kim
fdd92eb3b8 [svn-r18814] Purpose:
Add bug fixes for Tools.

Description:
    Added list from bugzilla:
    1726 - NPOESS: h5repack loses attributes for datasets of type H5T_REFERENCE
    1814 - NPOESS: h5repack doesn't handle references to the groups as an 
                   element of a dataset
    1817 - h5copy fail to copy dangling link by specifying link path directly
    1793 - h5ls on a non-existent file gives 0 return code

Tested:
    not need, just text update.
2010-05-14 16:52:14 -05:00
Allen Byrne
06bbdb5e59 [svn-r18812] moved reference to noname-packedbits file to packed bits section 2010-05-14 16:13:45 -05:00
Albert Cheng
3b9291b0b1 [svn-r18810] Bug fix:
Program failued in FreeBSD and Windows machines because uint is a local
backward compatibility extension of Linux.  Changed them to the proper
"unsigned int".

Tested: FreeBSD (liberty,duty), h5committested.
2010-05-14 16:09:34 -05:00
Mike McGreevy
c4b0bcda12 [svn-r18809] Purpose:
Fixed file cleanup during make distclean / make check.

Description:

    The h5jam Makefile and the h5importtestutil.sh script both included cleanup
    steps that removed "*.txt" from the directory. This resulted in the new
    CMake specific configuration file, CMakeLists.txt, getting blown away by 
    make distclean (for h5jam) and make check (for h5import).

    I've removed the *.txt from the h5jam Makefile as the directory looks to be
    getting cleaned appropriately without it, and I've modified the h5import
    script h5importtestutil.sh to point to the specific .txt files to clean.

Tested:

    jam
2010-05-14 15:30:58 -05:00
Mike McGreevy
9635cdc24f [svn-r18807] Purpose:
RELEASE.txt update

Description:

    Reorganize RELEASE.txt

Tested:

    None needed.
2010-05-14 13:55:34 -05:00
Mike McGreevy
912e7b99ee [svn-r18806] Purpose:
Update RELEASE.txt

Description:

    Remove outdated known issue (should have been removed 
    from 1.8.4, whoops) from RELEASE.txt

Tested:

    doc only, none needed.
2010-05-14 13:47:21 -05:00
Mike McGreevy
453a3910ab [svn-r18805] Purpose:
Fix memory leaks

Description

    Added a routine to free memory which addresses a memory leak
    when variable length strings are used as fill values.

    Also added some minor tweaks to the H5I 'save ID structures' mechanic.

Tested:

    h5committest and valgrind (on jam/amani) to confirm freed memory.
2010-05-14 13:45:07 -05:00
Binh-Minh Ribler
fbb8709e40 [svn-r18802] Description:
Added notes about
	+ CommonFG::getObjnameByIdx char* for name
        + CommonFG::getObjTypeByIdx char* for type
	+ PropList::PropList(id) pclass id/plist id
2010-05-14 10:09:58 -05:00
Quincey Koziol
9c1fa1d37c [svn-r18800] Description:
Added note about use of volatile for variables.

    Added blurb to release notes about fixing strict-aliasing problems.

Tested on:
    None - trivial change to comment.
2010-05-13 18:06:45 -05:00
Allen Byrne
23aa825f5e [svn-r18798] Updated CMakeLists to match changes r18794-18796
Even figured out which are expected to fail!

Tested: Local linux
2010-05-13 17:10:17 -05:00
Albert Cheng
651a34abd5 [svn-r18797] updated with added and deleted files for the h5dump packed-bits feature tests. 2010-05-13 16:47:51 -05:00
Albert Cheng
a44c942518 [svn-r18796] Enhancement 1853:
Install packed-bits feature for h5dump.

tools/h5dump/h5dump.c:
    Added lots of error checking into parse_mask_list() to catch and
    flagged packed-bits argument errors. For now, the packed bits
    are limited to 1 byte (8 bits) range.

tools/h5dump/testh5dump.sh.in
    Added 10 new packed-bits test to verify normal operation and argument
    error detection.

tools/lib/h5tools.h:
tools/lib/h5tools_str.c:
tools/lib/h5tools.c:
    Only name changes of the packed-bit global variables to reflect
    the nature of the variable better, IMO.

Tested: albertPax (linux)
------------------------------------------------------------------------
2010-05-13 16:42:16 -05:00
Albert Cheng
11562046e1 [svn-r18795] Enhancement 1853:
Install packed-bits feature for h5dump.

Added gent_packedbits() to generate the HDF5 test data
file, packedbits.h5, for packed-bit feature test.

Tested: albertPax (linux)
------------------------------------------------------------------------
2010-05-13 16:00:31 -05:00
Albert Cheng
5f2cf7e80c [svn-r18794] Enhancement 1853:
Install packed-bits feature for h5dump.

testfiles/packedbits.h5:
New HDF5 test data file. Generated by h5dump/h5dumpgentest.

testfiles/tpbitsLengthPositive.ddl:
testfiles/tpbitsMaxExceeded.ddl:
testfiles/tpbitsSigned.ddl:
testfiles/tpbitsOffsetNegative.ddl:
testfiles/tpbitsUnsigned.ddl:
testfiles/tpbitsMax.ddl:
testfiles/tpbitsIncomplete.ddl:
testfiles/tpbitsOverlapped.ddl:
testfiles/tpbitsLengthExceeded.ddl:
testfiles/tpbitsOffsetExceeded.ddl:
    Expected output files created to test various
    components of the packed-bits feature.

testfiles/tpackedbits2.ddl:
testfiles/tpackedbits.ddl:
    Previous output files no longer used.

Tested: albertPax (linux)
2010-05-13 15:49:31 -05:00
Quincey Koziol
26205360a4 [svn-r18792] Description:
Correct error in H5C_resize_entry() where protected entry sizes were
not updated if the entry being resized was both pinned and protected.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2010-05-13 10:30:40 -05:00
Allen Byrne
103da21db1 [svn-r18787] Added h5tools.h include to h5diff_common.h to fix warnings about the new progname and status functions
Tested: local linux
2010-05-13 09:21:22 -05:00
Allen Byrne
ba58f2ddb7 [svn-r18786] Corrected typo which prevented non-windows diff tests to work correctly
Tested: local linux
2010-05-13 09:01:11 -05:00
Quincey Koziol
e8b63136be [svn-r18784] Description:
Fix unterminated comment.

Tested on:
    None - just eyeballed.
2010-05-13 08:12:11 -05:00
Allen Byrne
df8026cc51 [svn-r18780] Corrected typo of variable used by H5srcdir_str.h.in.
No test as it is actually not used in branch
2010-05-12 16:22:38 -05:00
Larry Knox
fa416bde84 [svn-r18779] Add ${DESTDIR} to scripts and Makefiles so that make DESTDIR=<install directory> install, installcheck and uninstall is supported for installing examples, since they are now installed as part of make install. This was necessary for rpmbuilds, but should also be supported otherwise.
Tested:  amani, jam, linew with committest, rpmbuild on jam and amani.
2010-05-12 15:55:52 -05:00
Allen Byrne
eeeb393762 [svn-r18777] Moved declaration to top of function, windows compiler issue.
Tested: Windows
2010-05-12 14:53:17 -05:00
Raymond Lu
54276b5732 [svn-r18776] I corrected a typo.
No test.
2010-05-12 14:13:47 -05:00
Raymond Lu
9ba1882211 [svn-r18775] I added 2 tests for packed bits. I didn't use the new macro H5_HAVE_H5DUMP_PACKED_BITS for
these tests.  

Not tested yet.
2010-05-12 14:05:43 -05:00
Raymond Lu
a8a94d5710 [svn-r18774] I added a new macro H5_HAVE_H5DUMP_PACKED_BITS.
Not tested yet.
2010-05-12 13:57:59 -05:00
Allen Byrne
84103cef85 [svn-r18773] Add files to support building library with CMake
Tested: Local linux
2010-05-12 13:51:33 -05:00
Allen Byrne
08ce72aebd [svn-r18772] Remove hard coded path to generated file.
Tested: local linux, windows
2010-05-12 11:56:45 -05:00
Quincey Koziol
9c660949f5 [svn-r18769] Description:
Bring r18768 from trunk to 1.8 branch:

	Correct a mis-merged patch when marking an entry dirty.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
	(h5committested on trunk)
2010-05-11 19:41:09 -05:00
Allen Byrne
809e91b53c [svn-r18764] Corrected typo in Fortran CStub DLL section 2010-05-11 16:20:43 -05:00
Allen Byrne
e6364578ed [svn-r18762] File needed to correctly set new H5TOOLS_* export/import attribute 2010-05-11 16:00:21 -05:00
Allen Byrne
a46dea6017 [svn-r18758] Corrected missed progname to function instance 2010-05-11 14:40:17 -05:00
Allen Byrne
05d75af8b8 [svn-r18757] Enable tools lib to be built as a dll on windows. Added two get/set functions for progname and d_status.
Also add windows import/export declarations to functions.
Updated windows - H5pubconf.h for packed bits function

Tested:
   Windows, linux
2010-05-11 12:49:41 -05:00
Binh-Minh Ribler
9e595dec19 [svn-r18749] Purpose: Fixed bugs 1852 & 1599
Description:
    - When a property class id is given to PropList(id), create new prop
      list, but when a property list id is given, make a copy of it.
    - Fixed operator= to use setId() properly.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-05-09 20:04:50 -05:00
HDF Tester
4bebb65cc9 [svn-r18748] Snapshot version 1.8 release 4 (snap21) 2010-05-09 20:02:02 -05:00
Albert Cheng
bee2ae29db [svn-r18744] Updated with the three new expected output files for
the packed-bits tests.
2010-05-07 16:03:40 -05:00
Albert Cheng
7c16aec7e1 [svn-r18743] enhancement 1853:
Install packed-bits feature for h5dump.

Allen has installed the feature in the NPOESS feature branch.
I ported it back to the v1.8 branch for v1.8.5 release.

tools/h5dump/testh5dump.sh.in:
    Added tests for the packed-bits feature.
tools/h5dump/h5dump.c
tools/h5dump/h5dump.h
    Added code to parse and handled the packed-bits request.
tools/lib/h5tools.h
tools/lib/h5tools_str.c
tools/lib/h5tools.c
    Added code to print packed-bits.
tools/testfiles/tpackedbits2.ddl
tools/testfiles/tnofilename-with-packed-bits.ddl
tools/testfiles/tpackedbits.ddl
    Expected output files for packed-bits feature.

Tested:
    h5committested the NPOESS branch.
    Tested in the linux VM machine in my Dove.
2010-05-07 15:56:54 -05:00
Quincey Koziol
ae6f5891b5 [svn-r18741] Description:
Bring r18740 from trunk to 1.8 branch:

	Bring r18738 from metadata journaling 'merging' branch to trunk:

	Switch H5AC_resize_pinned_entry() to work on protected entries as well,
and rename to H5AC_resize_entry()

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2010-05-06 22:02:03 -05:00
Binh-Minh Ribler
e87f3dd558 [svn-r18728] Purpose: Fixed bug# 1719
Description:
    Closed a temporarily opened datatype to clean up memory leak,
    in getTypeClass.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-05-06 12:00:29 -05:00
Quincey Koziol
abd749619d [svn-r18726] Description:
Bring r18725 from trunk to 1.8 branch:

	Bring r18724 from metadata journaling 'merging' branch to trunk:

	Rename H5[A]C_rename to H5[A]C_move_entry.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2010-05-06 10:39:23 -05:00
Quincey Koziol
b95c7d1879 [svn-r18722] Description:
Bring r18721 from trunk to 1.8 branch:

	Bring r18720 from metadata journaling merging branch to trunk:

	Bring changes from metadata journaling branch to 'merging' branch:

	Rename H5[A]C_mark_pinned_or_protected_entry_dirty() to
H5[A]C_mark_entry_dirty() and get rid of H5[A]C_mark_pinned_entry_dirty().

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2010-05-06 09:19:28 -05:00
Quincey Koziol
2c38d7ea30 [svn-r18717] Description:
Bring r18716 from trunk to 1.8 branch:

	Bring r18715 from metadata journaling merging branch to trunk:

	Changes to further align trunk with state of metadata journaling branch.

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 (amani) 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-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2010-05-05 19:44:01 -05:00
Mike McGreevy
e984ec4948 [svn-r18710] Purpose:
Improve configure's large-file support control.

Description:

    Modified configure to now attempt to add defines necessary for
    supporting largefiles on all systems, instead of solely on linux. This 
    is in response to user requests to enable largefile support on Solaris 
    by default, as well as to give extra control on AIX (instead of just 
    jamming the necessary flag into the config files).

    The old --enable-linux-lfs flag is being deprecated in favor of the
    --enable-largefile flag (enabled by default), which can be used on all
    platforms. --disable-linux-lfs can still be used to disable largefile
    support (on linux) when the --enable-largefile flag is not specified.

    On systems where large files cannot be supported in this manner,
    configure will report as such.

Tested:

    h5committest
    AIX (NCSA's blue_print machine)
    duty, liberty, and linew.
2010-05-05 12:35:04 -05:00
Raymond Lu
c8ec7a14bc [svn-r18707] I added an item in the Known Problems for the compiler's rounding problem on Cygwin running on
Windows XP.  It happens in dt_arith.c when converting from unsigned long long to long double (see
bug #1813).
2010-05-05 11:26:17 -05:00
Raymond Lu
b93621ecf5 [svn-r18706] I changed the macro H5_CYGWIN (checked in with round 18696) to H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM to make it more descriptive.
I tested on jam and Cygwin.
2010-05-05 10:47:44 -05:00
Quincey Koziol
3f3a900177 [svn-r18704] Description:
Bring r18702 from trunk to 1.8 branch:

	Bring r18672 from metadata journaling "merging" branch to trunk:

	Mostly changes to move to only using one 'user data' parameter for
calls to H5AC_protect(), along with some minor reformatting code cleanups.

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 (amani) 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-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
       Mac OS X/32 10.6.3 (amazon) in debug mode
       Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2010-05-05 09:45:57 -05:00
Binh-Minh Ribler
f2190dd264 [svn-r18703] Purpose: Fixed bug# 1783
Description:
    Corrected typo in documentation.
Platforms tested:
    Linux/32 2.6 (jam) - very minor
2010-05-05 08:42:12 -05:00
Albert Cheng
f20bd5f624 [svn-r18701] ID 1853:
Added the configure option --enable-h5dump-packed-bits for the h5dump
optional feature.

Tested:
Jam (default and --disable-h5dump-packed-bits).
2010-05-04 18:57:47 -05:00
Raymond Lu
7cb55dd052 [svn-r18696] I added a macro definition if the system is Cygwin in configure.in. This macro is used to skip
the data conversion test from unsigned long long to long double.  The GCC on Cygwin seems to 
have rounding problem when doing conversion from unsigned long long to long double (Please bug
#1813).

Tested on jam.  I'll test it on Cygwin after this checkin.
2010-05-04 11:35:11 -05:00
Larry Knox
f80d971c3b [svn-r18694] Correct missing line (fi) in revision 18680 and remove incorrect code to install scripts to run examples. Correct code to install the scripts will be checked in later.
Tested on amani and talwit using daily test shell.
2010-05-03 14:40:36 -05:00
Binh-Minh Ribler
4f171f2b21 [svn-r18693] Description:
Using header file H5private.h for HDstrcpy in H5CommonFG.cpp.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/32 6.3 (duty)
2010-05-03 13:25:18 -05:00
Binh-Minh Ribler
7cdb95c5c2 [svn-r18691] Description:
Added #ifndef H5_NO_DEPRECATED_SYMBOLS to getObjTypeByIdx tests.
Platforms tested:
    amani - with --disable-deprecated-symbols
2010-05-03 11:37:25 -05:00
Binh-Minh Ribler
365e16c480 [svn-r18689] Description:
Added missing overloaded function getObjTypeByIdx to return type name
    as a char*.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-05-03 08:12:12 -05:00
HDF Tester
47fef210e8 [svn-r18688] Snapshot version 1.8 release 4 (snap20) 2010-05-02 20:39:59 -05:00
Binh-Minh Ribler
be0a7c4a64 [svn-r18683] Purpose: Fix bugzilla 1857
Description:
    Added missing overloaded function getObjnameByIdx to take char* for name.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-05-02 10:10:11 -05:00
Larry Knox
6d912b6394 [svn-r18680] Added running make install-examples to make install. Make install-examples will still install example files and make install will also install them. 2010-04-30 15:28:45 -05:00
Raymond Lu
d44e26b78a [svn-r18679] Albert fixed the bug (#1764) in H5detect.c and added a few new macros in H5config.h.in.
I added them - H5_HAVE_SETJMP, H5_HAVE_SIGPROCMASK, and H5_HAVE_SIGSETJMP.  

Tested on OpenVMS and everything passed.
2010-04-30 10:58:23 -05:00
Albert Cheng
ff0135b9b8 [svn-r18678] Just mopped up some looseends by using the macro HDxyz instead the xyz function
names.

Tested: Jam only since this is trivial.
2010-04-29 17:40:34 -05:00
Allen Byrne
09a958e1e1 [svn-r18676] Updated scripts for H5copy r18400 and H5ls r18643
Tested:   windows
2010-04-29 17:06:43 -05:00
Quincey Koziol
ff5c4800e8 [svn-r18667] Description:
Bring r18666 from trunk to 1.8 branch:

    Switch H5Rget_obj_type to H5Rget_obj_type2.

Tested on:
    Linux/64 2.4 (amani) w/PGI compiler
2010-04-29 08:11:22 -05:00
Quincey Koziol
ca02b2da58 [svn-r18665] Description:
Bring r18664 from trunk to 1.8 branch:

    Add a few H5Tequal() calls to make certain that the native datatype
constructed with H5Tget_native_type() is identical to the memory datatype
created from the struct in memory.

Tested on:
    Mac OS X/32 10.6.3 (amazon) in debug mode
    Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
    (h5committested on trunk)
2010-04-29 08:04:33 -05:00
Quincey Koziol
d0a1730ad8 [svn-r18661] Description:
Tweak H5detect to be even more careful about its actions, to allow 
gcc 4.5 to use '-O3'.  Also, minor code cleanups in H5Tfloat.c

Tested on:
        FreeBSD/64 6.3 (liberty) w/gcc 4.5 & production mode
        (h5committest not necessary/appropriate)
2010-04-28 15:57:44 -05:00
Albert Cheng
1c2f19b16e [svn-r18658] Bug: 1764
Description:
longjmp do not necessary restore signal that is blocked during the signal
handling. This caused the Alignment test to fail quietly, resulting in wrong
alignment information which will cause failures later.

Solution:
One can use sigsetjmp/siglongjmp to restore signal handling but not all systems
such as Cray XT or VMS supports sigsetjmp.  Backup solution is to use
sigprocmask to reset the signal. Again, some systems may not support it either.
Added code to try the first and then the second solution. Also added tests
to verify if the signal_handler routines are working properly.  Finally, added
code to print results of the verification (in form of comments) to H5Tinit.c
for inspection in case of failure.
(Note that many platforms do not have alignment limits at all and ALIGNMNET
code never raise the SIGBUS or SIGSEGV errors.  In those cases, it does not
matter whether the signal handlers work or not. Again, this can be deduced
from the results comments near the end of the H5Tinit.c. If the sum of signal
handlers called equals the total of verify, it means ALIGNMENT does not raise
any signals.)

Tested: htcommittested (linew is not accessible), jam(serial), Redstorm.
2010-04-28 12:11:11 -05:00
Raymond Lu
5a26307f86 [svn-r18656] I added some more comments. No test is needed. 2010-04-28 11:28:04 -05:00
Allen Byrne
ca4f05380b [svn-r18653] Bug 1741:
Added check in H5Rcreate for space_id = -1 and is region reference type.
    Added test of H5R package API parameters to testhdf5 test, these test only the public API parameter checks.
    
    
Tested: local linux
2010-04-28 10:08:54 -05:00
Quincey Koziol
2ad138dbb9 [svn-r18652] Description:
Bring r18650 from trunk to 1.8 branch:

	Bring back various minor tweaks & cleanups from the revise_chunks
branch.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
	(h5committested on trunk)
2010-04-27 17:40:05 -05:00
Raymond Lu
53f5793d38 [svn-r18646] In H5T_get_native_type of H5Tnative.c, I changed the way that the offset, alignment, and
size of nested compound type are calculated by using H5T_cmp_offset.  The old way had a bug 
in it (see bug #1850).

Tested on amani, linew, and jam.
2010-04-27 15:55:33 -05:00
Neil Fortner
8b93f9640e [svn-r18645] Add testing of H5Lcopy() and H5Lmove() between files for soft and external
links.

Tested: Fedora (too minor for commit test)
2010-04-27 15:34:44 -05:00
Jonathan Kim
36823c3ca1 [svn-r18643] Purpose:
Fix for Bug 1793 - h5ls on a non-existent file gives 0 return code

Description:
    Merged from hdf5 trunk r18642.
    After the fix, h5ls returns 1 (EXIT_FAILURE) if non-existent file is given.

Tested:
    jam
2010-04-27 15:28:45 -05:00
Binh-Minh Ribler
e331b97162 [svn-r18641] Description:
Added a null character to terminate a fixed-length string returned
    by H5Aread.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
2010-04-27 15:20:01 -05:00
Quincey Koziol
4966f07945 [svn-r18636] Description:
More tweaks to PGI compile flags, to avoid too many warnings in system
header files.

Tested on:
    Linux/64 2.4 (amani) w/PGI 9.x & 10.x
2010-04-27 14:17:54 -05:00
Quincey Koziol
e4ee157c86 [svn-r18635] Description:
Bring r18634 from trunk to 1.8 branch:

	Clean up compiler warnings.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2010-04-27 13:33:36 -05:00
Quincey Koziol
53d5ccb17e [svn-r18633] Description:
Bring r18632 from trunk to 1.8 branch:

    Clean up memory leak in test code.

Tested on:
   Linux/64 2.4 (amani) w/debug & valgrind
2010-04-27 13:20:16 -05:00
Quincey Koziol
bb8251f926 [svn-r18631] Description:
Bring r18630 from trunk to 1.8 branch:

    Fix remaining aliasing problems and enable optimizations w/gcc now.  This
addresses the remaining issues for Bug#1398.

Tested on:
    Mac OS X/32 10.6.3 (amazon) in debug mode
    Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
    (h5committested on trunk)
2010-04-26 21:47:02 -05:00
Quincey Koziol
b23da3a7f5 [svn-r18628] Description:
Bring r18627 from trunk to 1.8 branch:

    More progress toward addressing Bz#1398: add 'volatile' keyword to floating-
point types when detecting their properties.  Also, minor code formatting
cleanups.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug)
    (h5committested on trunk)
2010-04-24 20:02:17 -05:00
Quincey Koziol
46809b86cf [svn-r18626] Description:
Bring r18625 from trunk to 1.8 branch:

    Checkpoint progress on Bz#1398 - strict aliasing issues.  (Lots of compiler
warnings & code cleanups also)

Tested on:
    Mac OS X/32 10.6.3 (amazon) in debug mode
    (h5committested on trunk)
2010-04-23 15:20:57 -05:00
Quincey Koziol
55f2a52191 [svn-r18622] Description:
Bring r18621 from trunk to 1.8 branch:

    Clean up compiler warnings.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor to require h5committest)
2010-04-23 13:11:37 -05:00
Quincey Koziol
40c757d48b [svn-r18619] Description:
Bring r18618 from trunk to 1.8 branch:

	Add new internal object header routines to query the header chunk that
a message is in, and to lock/unlock a message into a chunk (so it doesn't get
moved into another chunk during allocation/free events).

       Also, move dataspace message to beginning of object header messages
added to a dataset's object header, so it can be locked into chunk #0 (when
performing SWMR operations).

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2010-04-22 17:07:35 -05:00
Quincey Koziol
683d60460a [svn-r18617] Description:
Bring r18616 from trunk to 1.8 branch:

    Clean up compiler warnings.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor to require h5committest)
2010-04-22 15:04:44 -05:00
Jonathan Kim
cacfe71beb [svn-r18615] Purpose:
Fix for bug 1817 : h5copy fail to copy dangling link by specifying 
    link path directly

Description:
    Merged from hdf5 trunk r18614.

Tested:
    jam, amani
2010-04-22 13:43:19 -05:00
Quincey Koziol
8881ff748c [svn-r18613] Description:
Bring r18612 from trunk to 1.8 branch:

    Clean up compiler warnings & code formatting

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor to require h5committest)
2010-04-22 10:14:07 -05:00
Quincey Koziol
030c18281c [svn-r18611] Description:
Bring r18610 from trunk to 1.8 branch:

    Clean up compiler warnings & code formatting issues.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug)
    (too minor to require h5committest)
2010-04-22 09:03:43 -05:00
Quincey Koziol
7f08e6b1d9 [svn-r18609] Description:
Bring r18608 from trunk to 1.8 branch:

	Simplify object header allocation routines, and clean up some compiler
warnings.

Tested on:
	FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2010-04-22 08:20:21 -05:00
Quincey Koziol
fd9ed5d743 [svn-r18606] Description:
Bring r18605 from trunk to 1.8 branch:

    Add new warning flags for gcc 4.5.x

Tested on:
    FreeBSD/32 6.3 (duty) w/gcc 4.5
    FreeBSD/64 6.3 (liberty) w/gcc 4.5
2010-04-22 06:00:14 -05:00
Quincey Koziol
ef3d6fc8dd [svn-r18602] Description:
Bring r18600 from trunk to 1.8 branch:

    Increment reference count on object header when "fake" object header
chunk proxy is returned from H5O_chunk_protect().  Also, clean up the
interface to H5O_chunk_unprotect by removing the unnecessary 'oh' parameter.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (h5committested on trunk)
2010-04-20 15:21:24 -05:00
Quincey Koziol
64af76ef7d [svn-r18598] Description:
Fix missing NULL initialization of pointers.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (h5committested on trunk)
2010-04-20 14:14:05 -05:00
Quincey Koziol
c403f235f9 [svn-r18596] Description:
Bring r18595 from trunk to 1.8 branch:

    Clean up compiler warnings

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor to require h5committest)
2010-04-20 14:05:15 -05:00
HDF Tester
37ef89af1d [svn-r18591] Snapshot version 1.8 release 4 (snap19) 2010-04-18 19:22:22 -05:00
Raymond Lu
e53d1d4e0d [svn-r18583] I added H5Ochunk.c as a new file. Not tested yet. 2010-04-16 14:16:44 -05:00
Mike McGreevy
168c5c4a2c [svn-r18580] Purpose:
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
2010-04-15 16:18:42 -05:00
Allen Byrne
bbd47ad738 [svn-r18575] Added new file to project 2010-04-15 15:48:33 -05:00
Quincey Koziol
80d5ae2fc1 [svn-r18574] Description:
Bring r18571 from trunk to 1.8 branch:

	Bring r18542 from metadata journaling "merging" branch to trunk:

	Bring new object header pin/unpin & protect/unprotect routines and
split-out object header chunk proxy changes from metadata_journaling branch to
"merging" branch, along with some other minor tweaks to clean up compiler
warnings, etc.

	Also: clean up chunk protect/unprotect calls when allocating or freeing
space in a chunk, optimize metadata accumulator code to avoid some re-reading
of information from the file, refactor H5O_pin/H5O_unpin from way they are done
on the merging branch back to way they were previously done on trunk, other
minor code cleanups, etc.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
	(h5committested on trunk)
2010-04-15 15:30:48 -05:00
Neil Fortner
4fa6fd807d [svn-r18568] Purpose: Fix error in call to memmove() in H5B_remove_helper. This error was
only reproducible through the use of electric fence.

Tested: Fedora (too minor for h5committest)
2010-04-15 14:22:26 -05:00
Quincey Koziol
597e1d894e [svn-r18566] Description:
Bring r18564 & r18565 from trunk to 1.8 branch: clean up compiler warnings
and whitespace issues.

Tested on:
    Mac OS X/32 10.6.3 (amazon)
    (too minor to require h5committest)
2010-04-15 13:22:32 -05:00
Raymond Lu
fb651812e6 [svn-r18562] I put a header in the output printout. No test is needed. 2010-04-15 12:20:05 -05:00
Raymond Lu
690656e601 [svn-r18561] I added header for output print out. No test is needed. 2010-04-15 11:32:38 -05:00
Raymond Lu
b3318499f9 [svn-r18558] I took out the dsets test because it's part of testhdf5 now. 2010-04-15 10:55:29 -05:00
Scot Breitenfeld
fee129b9c2 [svn-r18557] Description:
Merged Fortran changes from the trunk into the branch

svn merge -r 18098:18556 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Tested: jam (intel)
2010-04-15 09:49:08 -05:00
Raymond Lu
fcff5fc0f8 [svn-r18554] Update. I added vms/test/H5srcdir_str.h and vms/c++/test/H5srcdir_str.h. No test is needed. 2010-04-14 14:32:55 -05:00
Raymond Lu
a7ffd9a81a [svn-r18553] I updated 2 things: 1. I added H5make_libsettings.c into the makefile in the src/. It works
similar to H5detect.c.  2. I added H5srcdir_str.h under test/ and c++/test/.

Not tested yet.
2010-04-14 12:44:39 -05:00
Quincey Koziol
af9d015f46 [svn-r18550] Description:
Bring r18548 from trunk to 1.8 branch:

    Minor cleanups to compile with PGI C compiler 10.x.

Tested on:
    Mac OS X/32 10.6.3 (amazon)
    (tested on trunk)
2010-04-13 09:31:22 -05:00
HDF Tester
836d531494 [svn-r18546] Snapshot version 1.8 release 4 (snap18) 2010-04-11 23:52:30 -05:00
Mike McGreevy
ba8f894224 [svn-r18544] Description:
Allow 'save returned ID structures' mechanism to be toggled per ID type.
    Also added initialization of new fields omitted in a previous commit.

Tested:
    h5committest, and full check-vfd on linew, amani, and jam.
2010-04-10 17:40:07 -05:00
Neil Fortner
68a140d2cb [svn-r18536] Purpose: Fix bug 1815
Description:
Attempting to copy an object with NULL references (all bytes zero) with the
H5O_COPY_EXPAND_REFERENCE_FLAG flag set would cause a failure or an assertion
(depending on whether it was in debug mode).  Changed copy routine to detect
NULL references (object and region) and avoid attempting to expand the reference
in this case.

Tested: jam, linew, amani (h5committest)
2010-04-08 13:41:42 -05:00
Albert Cheng
ee7791d61c [svn-r18530] Bug fix:
When gcc is used in the AIX platform, it failed to compile tconfig.c
because it does not recognize the __int64 type.  The ibm-aix has the
sizeof __int64=8 cached, as if all compilers supported this type.

Solution:
Removed the cached value for the sizeof __int64 so that during
configure, gcc can report it does not support it and not to use
it in the source code.

Tested:
NCSA Blue which is an AIX machine, using gcc or xlc compiler.
(The gcc still have failure but is being fixed as separated bugs.)
2010-04-07 17:06:02 -05:00
Quincey Koziol
fa279bfcb7 [svn-r18526] Description:
Bring r18525 from trunk to 1.8 branch:

	Bring r18523 from metadata journaling "merging" branch to trunk:

	Bring metadata journaling branch into closer correspondence with trunk:
extract data structure freeing routines from metadata cache client 'destroy'
callbacks.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2010-04-06 17:01:24 -05:00
Quincey Koziol
eeb841b26b [svn-r18521] Description:
Bring r18520 from trunk to 1.8 branch:

	Bring r18519 from metadata journaling "merging" branch to trunk:

Converge metadata_journaling branch and trunk: separate destroy routines for data structures from cache callbacks.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2010-04-06 15:19:02 -05:00
Albert Cheng
c0d7b109c9 [svn-r18515] Bug:
PGI v10.2 in Red Storm Qual complained about the H5_IS_API macro with the
following message when -Mbounds is used:
   PGC-S-0053-Illegal use of void type 
The compiler did not like to treat the literal strings as arrays.
The -Mbounds option is used when --disable-production is used.

Solution:
Casted all the literal to (char *).

Tested:
h5committest passed.
Red Storm Qual passed with the fixed H5_IS_API macro though it has other
failures later. Will be fixed in another batch.
2010-04-05 16:41:54 -05:00
Allen Byrne
41dd296835 [svn-r18509] Updated project files to generate and link H5lib_settings.c 2010-04-05 10:48:56 -05:00
Mike McGreevy
1c7b305353 [svn-r18507] Purpose:
Fix Bug 1730 (in 1.8)

Description:

    This is a fix for Bug 1730. Note that this fix is only going into 1.8,
    as there is a more desired fix prepared for the trunk, but we don't 
    want that one in 1.8 for compatibility reasons.

    This change adds a mechanism to the H5I interface to save returned
    ID structures for immediate re-use if needed. This addresses a potential
    performance issue by delaying the case when the next ID to be 
    registered has grown so large that it wraps around and needs to be 
    checked to see if it is available for distribution again.

Tested:

    h5committest, and manually on jam, amani, liberty, others.
2010-04-02 10:59:36 -05:00
Quincey Koziol
b24165b4d6 [svn-r18506] Description:
Bring r18505 from trunk to 1.8 branch:

        Move code to free superblock data structure into separate routine, in
preparation for upcoming metadata journaling -> trunk merging.

Tested on:
	FreeBD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2010-04-02 00:35:17 -05:00
Quincey Koziol
2b551d282f [svn-r18503] Description:
Bring r18502 from trunk to 1.8 branch:

	Bring r18501 from metadata journaling "merging" branch to trunk:

	Extract data structure 'destroy' routines from metadata cache client
'destroy' callbacks.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2010-04-01 23:39:43 -05:00
Quincey Koziol
61817758dd [svn-r18499] Description:
Bring r18498 from trunk to 1.8 branch:

	Bring r18497 from metadata journaling "merging" branch to trunk:

	Extract data structure 'destroy' routines from metadata cache client
'destroy' callbacks.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2010-04-01 22:16:14 -05:00
Quincey Koziol
bacf7149e9 [svn-r18495] Description:
Bring r18494 from trunk to 1.8 branch:

	Bring r18491 from metadata journaling "merging" branch to trunk:

	Extract data structure 'destroy' routines from metadata cache client
'destroy' callbacks.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2010-04-01 20:48:23 -05:00
Albert Cheng
2b8896eea1 [svn-r18493] Bug fix:
Testlibinfo.sh failed again.

Solution:
Removed the const from H5libhdf5_settings definition, again.
Revamp the whole setting so that H5lib_settings.c is compiled
individually, just like H5Tinit.c.  Hope this will take care
of the problem once for all.

Tested:
Amani using --disable-shared with --enable and --disable-embedded-libinfo.
Will test this on the AIX platform after commit (cannot run bin/reconfigure
in the AIX platform and it is too clumsy to try to ssh files back and forth
and incurred "svn merge inconsistency" later too.
Pretty confident this fix should work in all other platforms.
2010-04-01 16:00:24 -05:00
Quincey Koziol
e8fd06c497 [svn-r18485] Description:
Bring r18484 from trunk to 1.8 branch:

	Bring r18483 from metadata journaling 'merging' branch to trunk:

	Remove unused symbol table entry dirty flag

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2010-04-01 11:51:26 -05:00
Albert Cheng
e1282224cd [svn-r18470] bug fix:
recent changes to the embedded library generation code does not quite work
for the AIX system. The strings command of AIX does not display the embedded
library information be default.

Solution:
Changed the H5libhhdf5_setting[] to be an extern variable. Also removed the
const qualifier so that strings can see the variable data.

Tested:
Blue-print (with embedded-libinfo enabled and disabled).
2010-03-30 13:55:41 -05:00
HDF Tester
abdfc0f817 [svn-r18467] Snapshot version 1.8 release 4 (snap17) 2010-03-28 19:21:10 -05:00
Quincey Koziol
5145220062 [svn-r18461] Description:
Bring r18460 from trunk to 1.8 branch:

	Fold metadata journaling changes into the trunk: mostly tweaky
small stuff, also removed the H5F_t* field from the H5G_entry_t struct.

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 (amani) 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
2010-03-26 06:17:03 -05:00
Jonathan Kim
25fb348729 [svn-r18455] Purpose:
Fix for the bug1726 - NPOESS: h5repack loses attributes for datasets of 
    type H5T_REFERENCE.

Description:
    Merged from hdf5 trunk rXXX

Tested:
    jam
2010-03-25 12:46:21 -05:00
Jonathan Kim
24ac7627d8 [svn-r18450] Purpose:
Resolve build issue on Sloaris due to white space from the previous
   checkin r18448

Tested:
    jam
2010-03-24 19:32:15 -05:00
Jonathan Kim
e7568c0719 [svn-r18448] Purpose:
Bug1727 - NPOESS: h5copy should copy region references

Description:
   Merged from hdf5 trunk r18447.
   Tested and added test cases from previous checkin r18321
   Reference Manual and tool's usage section for '-f ref' option is updated
   for more comprehensibility.

Tested:
    jam
2010-03-24 16:04:39 -05:00
Neil Fortner
a4dad54996 [svn-r18446] Purpose: Fix bug 1637
Description:
Modified algorithm for extending a dataset with early allocation so it only
deals with the new chunks.  Formerly, it would loop over all chunks, checking
to see if each existed in cache and on disk, causing major performance issues
with large numbers of chunks.

Tested: jam, linew, amani (h5committest)
2010-03-24 11:42:54 -05:00
Jonathan Kim
a844f8b21a [svn-r18443] Purpose:
Resolve windows build issue from previous checkin r18427

Description:
    The previous checkin was for bug1814 - NPOESS: h5repack doesn't handle 
    references to the groups as an element of a dataset            

Tested:
    jam
2010-03-23 14:24:21 -05:00
Allen Byrne
5e909dbaaa [svn-r18440] Corrected windows script file 2010-03-23 08:31:29 -05:00
Allen Byrne
bf9abc4fbc [svn-r18439] Changed copy script to copy all *.h files 2010-03-22 09:07:47 -05:00
HDF Tester
c83859d028 [svn-r18434] Snapshot version 1.8 release 4 (snap16) 2010-03-21 19:51:16 -05:00
Allen Byrne
fb5eabf776 [svn-r18429] Added missing copy H5srcdir_str.h commands to script. 2010-03-19 09:45:20 -05:00
Raymond Lu
23b8483bdc [svn-r18428] Binh-Minh integrated dsets.cpp into testhdf5.cpp. I changed the make file accordingly.
Not tested yet.
2010-03-19 09:37:07 -05:00
Jonathan Kim
8438c335ed [svn-r18427] Purpose:
Fix for bug1814 - NPOESS: h5repack doesn't handle references to the groups 
    as an element of a dataset 

Description:
    Merged from hdf5 trunk r18425
    handles object reference to named-datatype as well.
    Add test cases.

Tested:
    jam
2010-03-18 17:31:00 -05:00
Allen Byrne
a8bd5d03e9 [svn-r18424] Upgraded all project files to VS2008.
Changed batch files by removing VS2005 and IVF91 options.
Added libsettings project to behave like h5tinit.vcproj.
Updated Manifest
2010-03-18 16:31:30 -05:00
Allen Byrne
7370d9d648 [svn-r18423] Add windows define BIND_TO_CURRENT_VCLIBS_VERSION=1 to project files 2010-03-18 15:18:08 -05:00
Quincey Koziol
a608820193 [svn-r18422] Description:
Bring r18413:18420 from trunk to 1.8 branch:
	- unify srcdir query, etc.
	- Move libhdf5.settings string out of H5Tinit.c

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 (amani) 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.6.2 (amazon) in debug mode
        Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2010-03-18 13:05:13 -05:00
Allen Byrne
0e58a80e89 [svn-r18421] dsets c++ tests moved into testhdf5 c++ test. 2010-03-18 10:07:43 -05:00
Albert Cheng
7afbad33c7 [svn-r18412] Fixed a typo in a message.
No test needed since it is in a message string.
2010-03-17 09:31:49 -05:00
Binh-Minh Ribler
b781570943 [svn-r18409] Description:
Removed header file testhdf5.h from C++ tests to eliminate a non-standard
    problem on OpenVMS.  It wasn't essential.

    Also, moved dsets.cpp from a standalone program into testhdf5.cpp
    to be consistent with the rest of the tests.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
    Will ask Ray to test on OpenVMS.
2010-03-16 22:40:01 -05:00
HDF Tester
dcf0727a9e [svn-r18408] Snapshot version 1.8 release 4 (snap15) 2010-03-14 23:27:59 -05:00
Frank Baker
c2575fa440 [svn-r18402] Description:
Update copyright date to 2010.
2010-03-12 14:30:54 -05:00
Jonathan Kim
5345e2394e [svn-r18400] Purpose:
add test cases for h5copy - copy external links with/without ‘–f ext’ 
    option (relate to bug 1733)

Description:
    merged from hdf5 trunk (r18398 and r18399)

Tested:
    jam
2010-03-09 16:46:00 -05:00
Neil Fortner
8833db1c5b [svn-r18396] Purpose: Fix links.c failure
Description:
The core file driver previously matched files only based on the name used to
open them, even when a backing store is used.  This caused problems in the
failing test when it traversed an external link to itself, and did not recognize
that it was the same file.  Similar tests in links.c were skipped when the core
file driver was used.  The failure was previously masked by inappropriate file
flushes caused by external link traversal.  Added code to the core file driver
to keep track of low level file information of the backings store to allow for
accurate recognition of duplicate files.  Also re-enabled all links.c tests for
the core file driver.

Tested: Fedora (core and sec2 drivers; no time for full commit test, will
monitor daily tests)
2010-03-09 13:22:41 -05:00
Quincey Koziol
5deaaea3bb [svn-r18392] Description:
Bring r18391 from trunk to 1.8 branch:

        Clean up compiler warnings, check error values and fix whitespace.

Tested on:
        FreeBSD/64 6.3 (duty) w/debug
        (too minor to require h5committest)
2010-03-06 21:57:18 -05:00
Quincey Koziol
9211b9e5b6 [svn-r18389] Description:
Bring r18388 from trunk back to 1.8 branch:

    Bring changes from Coverity session from branch into trunk:

r18378:
Fixed coverity issues 207 and 322.  Pointer hdr was checked for NULL after being
asserted and dereferenced.  Check was removed.

r18379:
Fix coverity issues # 88 and # 435.

r18380:
Fixed Coverity issue # 85.  Added check of returned pointer for NULL before use.

r18381:
Resolve coverity issues # 214 and # 215

r18382:
Issue 131: Add null checks to allocations and check for free in error handling

r18383:
Issue 421:
Reorganized code to make intention clearer. Also, set local variable fl to NULL
after transfer to tail. Heap->freelist will take care of all allocations

r18384:
Coverity #249 and #250 - STRING_ATT_CHECK wasn't allocated before being used
and freed in function test_write_vl_string_attribute and
test_read_vl_string_attribute.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & prod
    (h5committested in daily tests)
2010-03-06 16:24:31 -05:00
Quincey Koziol
8b3a2b480b [svn-r18386] Description:
Bring r18385 from trunk to 1.8 branch:

    Tweak fix in r18372 to reset other messages read in also.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (too minor to require h5committest)
2010-03-06 13:53:00 -05:00
Neil Fortner
af527abf6c [svn-r18377] Purpose: Fix bug 1733
Description:
Support for expanding external links was not implemented in H5Ocopy, even though
a flag existed for H5Pset_copy_object to enable this.  This patch implements
this feature.

Tested: jam, amani, linew (h5committest); Fedora
2010-03-05 12:53:23 -05:00
Neil Fortner
3b921a4b4f [svn-r18375] Purpose: Fix bugs involving external links
Description:
Previously, the library would reopen the source file when traversing an external
link if unable to find the target file otherwise.  This has been corrected.
Also moved the call to H5F_flush from H5F_try_close to H5F_dest, so the file is
only flushed when the last identifier for the file is closed.  This prevernts
situations where the library could attempt to flush a file with protected
metadata.

Tested: jam, amani, linew (h5committest); Fedora
2010-03-05 12:46:56 -05:00
Raymond Lu
81896b337e [svn-r18370] Fix for bug #1773 - I added the call to H5O_msg_reset after H5D_chunk_bh_info to free the
PLINE structure in the function H5O_dset_bh_info.  This is to prevent memory leak.
 
Tested on jam with valgrind - simple fix.
2010-03-05 10:47:09 -05:00
Raymond Lu
dcfd77ab37 [svn-r18368] The OpenVMS link probably doesn't like too many object files. I just broke the link command
into 3 commands to make it happy.

Tested on OpenVMS.
2010-03-04 11:31:30 -05:00
Quincey Koziol
68c936cd23 [svn-r18358] Description:
Bring r18357 from trunk to 1.8 branch:

	Bring r18356 from metadata journaling merge branch to trunk:

	Converge metadata journaling branch with trunk with a bunch of v1 B-tree
changes:
      - Remove H5ACprivate.h header from H5Bprivate.h header
      - Revise v1 B-tree client callbacks
      - Get rid of H5B_serialize() by bringing it into H5B_flush()

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
       Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2010-03-02 15:13:22 -05:00
Quincey Koziol
48142bf5fd [svn-r18353] Description:
Bring r18352 from trunk to 1.8 branch:

	Make parallel I/O metadata cache operations obey the "evictions
enabled" flag in the cache.

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 (amani) 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
2010-03-01 15:38:03 -05:00
HDF Tester
e601ae8d4c [svn-r18351] Snapshot version 1.8 release 4 (snap14) 2010-02-28 17:56:20 -05:00
Quincey Koziol
c3e5a19194 [svn-r18348] Description:
Bring r18346 from trunk to 1.8 branch:

   Bring Coverity fixes back from branch to trunk:

r18336:
Fix coverity issues 275, 276, 277, 323, 432, 433, and 434

r18337:
Fix Coverity issue #106: release free space section node on error

r18338:
Fixed Coverity #94 - In H5P_register, new_class wasn't closed when there's an
error after it's created.

r18339:
Fix Coverity #185 - In test_conv_str_1, BUF wasn't freed when there's an error
in this function.

r18340:
Correct error in r18337 that wasn't releasing indirect fractal heap block
early enough.

r18341:
Close nodes if any failed in the middle of allocating new nodes. Coverity 140
and 141

r18342:
Correct [another] problem w/r18337.

r18343:
Fix coverity items 185, 20, and 21.

r18344:
Fix Coverity 213 - In H5FD_family_close, the double pointer file->memb was
dereferenced without NULL checking 
(We believe).

r18345:
Fix Coverity issue # 210;  removed NULL check after pointer dereferenced in
H5HFdblock.c.   Also assigned NULL to pointer in H5Pint.c to fix segmentation
fault.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug)
	(h5committested on trunk)
2010-02-27 15:51:49 -05:00
Jonathan Kim
c56a7d4ee2 [svn-r18332] Description:
Update to use H5Gcreate2 instead of H5Gcreate.
    Remove mis-used type related code.

Tested:
    jam, amani and linew
2010-02-24 16:11:05 -05:00
Jonathan Kim
7585e7520a [svn-r18330] Description:
Fix to handle $srcdir for nightly test as well as local testing
    Merged from hdf5 18329.

Tested:
    jam, amani and linew
2010-02-24 14:39:25 -05:00
Raymond Lu
1c393d5f1c [svn-r18327] I commented out the macro H5_HAVE_SYMLINK because I ran the following C test under hdf5/test
directory.  OpenVMS couldn't open a file through symbolic link.  This macro is mainly used
in test/links.c for the function call external_symlink and in src/H5F.c.

Tested on OpenVMS.

------------------------------------------------------------------------
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>

int main(void)
{
    int file1, file2;

    /* Create a symbolic link to the file 21b.c */
    if(symlink("[LU.hdf5_1_8_2_5.test.tmp2]21b.c", "[LU.hdf5_1_8_2_5.test.tmp]sym1") < 0)
        printf("symlink failed\n");

    /* Create the file 21b.c */
    if((file1 = open("[LU.hdf5_1_8_2_5.test.tmp2]21b.c", O_CREAT | O_TRUNC | O_RDWR)) < 0)
        printf("1st open failed\n");

    if(close(file1) < 0)
        printf("close failed\n");

    /* Open the 21b.c through the symbolic link */
    if((file2 = open("[LU.hdf5_1_8_2_5.test.tmp]sym1", O_RDWR)) < 0) {
        int errsv = errno;
        printf("2nd open failed, errno=%d\n", errsv);
    }

    if(close(file2) < 0)
        printf("close failed\n");

    return 0;
}
2010-02-24 09:45:42 -05:00
Allen Byrne
510ee78c0f [svn-r18324] Updated test script to match *nix shell script.
Tested: windows
2010-02-23 16:18:17 -05:00
Allen Byrne
a3d0c3b1de [svn-r18323] Updated test script to match *nix shell script.
Tested: windows
2010-02-23 16:06:48 -05:00
Jonathan Kim
d18ac8f562 [svn-r18321] Purpose:
Bug1727 - h5copy: add test cases for object and region references

Note: 
    merged from hdf5 trunk 18319 and 18320

File added:
    tools/h5copy/testfiles/h5copy_ref.out.ls
    tools/h5copy/testfiles/h5copy_ref.h5

Tested:
    jam
2010-02-23 15:07:17 -05:00
Allen Byrne
2aaa6b7dd9 [svn-r18318] Updated test script to match *nix shell script. Also corrected 629 file exit code
Tested: windows
2010-02-23 14:02:54 -05:00
Jonathan Kim
bd73a66ef7 [svn-r18313] Description:
move data1,data2 array declaration on top of each functions for 
    Windows build

Tested on Jam
2010-02-23 10:39:06 -05:00
Quincey Koziol
ae71cdc7af [svn-r18309] Description:
Added information to the release notes for fixing Bz#1755.
2010-02-23 09:31:17 -05:00
HDF Tester
7147e87089 [svn-r18307] Snapshot version 1.8 release 4 (snap13) 2010-02-22 15:56:03 -05:00
Quincey Koziol
e51e5cea3f [svn-r18303] Description:
Bring r18302 from trunk to 1.8 branch:

    Tweak allocation of attribute tables created from densely stored attributes
to allow for better cleanup on errors (like when the type of corruption from
Bz#1755 is encountered).

    Also, add some code to h5dump to display an error message when the
attribute iteration for an object fails.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (h5committested on trunk)
2010-02-19 23:36:27 -05:00
Quincey Koziol
8a9eb9fdcd [svn-r18301] Description:
Bring r18300 from trunk to 1.8 branch:

Bring Coverity fixes from branch to trunk:

r18282:
  Fix Coverity issue #428 by wrapping testing calls with if(pass) {} block.

r18283:
  Fix Coverity issue #425 by wrapping test calls in if(pass) {} block

r18284:
Issue 166:  init_error() malloc'd 3 pointers in initialization and never freed 
inc ase of errors. Init pointers to NULL, check allocation results and free
allocations in error block

r18285:
  Fix Coverity issue #410 by wrapping test calls with if(pass) {} block.

r18286:
Issue 165:  custom_print_cb() needed allocations freed in error block.

r18287:
Fix coverity issue # 409

Added if (pass) checks around calls to flush_cache. Additionally, 
added a check for file_ptr = NULL after call to setup_cache.

r18288:
Fix coverity# 107 free fh in H5HF_close() correctly before exit the function
even when failure occurs.

r18289:
  Fix Coverity issue #429: correct failure return values to match return type
from routine.

r18290:
  Fix Coverity issue #103: release allocated indirect section  on error

r18294:
Issue 153, 152:  Check allocations and free allocations in error block. Also
cleaned up hid_t identifer that were opened in error block.

r18295:
Fix coverity# 101 free new_loc in H5HF_man_iter_start_entry() correctly before
exit the function even when failure occurs

r18296:
Fix coverity# 100 free down_loc in H5HF_man_iter_down() before exit the function
when failure occurs

r18297:
Fixed coverity issues 54, 55 and 216.  Correctly handle the various ways that
allocation of attr_name can fail in test_attr_basic_write.

r18298:
Fix coverity# 119 free object in H5HG_read() before exit the function when
failure occurs

r18299:
Fix coverity issue #112:

Add cleanup during error handling of H5MP_create.


Tested on:
   Mac OS X/32 10.6.2 (amazon) w/debug & production
   Misc. Linux configurations (on original checkins)
2010-02-19 21:30:56 -05:00
Albert Cheng
d0a61166cc [svn-r18292] Added yodconfigure feature.
Tested in RSQual of Sandia.
2010-02-19 14:42:30 -05:00
Jonathan Kim
52d87caef3 [svn-r18279] Purpose:
Work for bugzilla 1754: h5diff: support comparing through links.

Description:
    merged from hdf5 trunk (18164, 18165, 18166, 18167, 18170, 18266, 18273)

Tested:
    h5committest (jam, amani and linew)
2010-02-18 21:39:22 -05:00
Quincey Koziol
6b9ddd6598 [svn-r18276] Description:
Bring r18275 from trunk to 1.8 branch:

    Remove incorrect encoding of fractal heap IDs for dense attribute storage
and dense shared object header message storage.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (h5committested on trunk)
2010-02-18 12:26:38 -05:00
Quincey Koziol
95223419fb [svn-r18272] Description:
Bring r18271 from trunk to 1.8 branch:

    Clean up the file closing behavior a little more.

Tested on:
   Mac OS X/32 10.6.2 (amazon) w/debug & production
  (too minor to require h5committest)
2010-02-18 10:02:17 -05:00
Vailin Choi
0fb3254237 [svn-r18270] Changes to h5stat in response to bug 1778:
1. Gather attribute info for named datatype,
2. Fixed -T, -G, -A, -D options
3. Brought over some changes from trunk h5stat

h5committested.
2010-02-17 15:50:50 -05:00
Raymond Lu
ec709b76da [svn-r18268] Bug fix for #1732 - The library had segmentation fault when tools call H5Close() after trying
to open corrupted files.  The problem turned out to be some memory leak when the library 
failed to open the file.  The solution is simply moving some code around to their proper 
places - moving H5AC_unpin_entry(f->shared->sblock) in H5F_dest of H5F.c and moving 
H5G_name_free(root_loc.path) in H5G_mkroot of H5Groot.c.

Tested on jam with development and production modes - simple change.
2010-02-17 10:57:52 -05:00
Neil Fortner
feae1cb35f [svn-r18263] Purpose: Fix bug in b-tree code
Description:
In certain cases, removal of an object in a v1  b-tree would cause the leftmost
key in the right neighbor to be overwritten.  While this did not pose a problem
for group b-trees, with chunked datasets it would overwrite the offset value
of the neighbor's leftmost child, causing corruption.  Reworked the code to
differentiate between b-trees whose children are fundamentally associated with
their left key and those who are associated with their right key.

Tested: jam, linew, amani (h5committest)
2010-02-16 12:23:38 -05:00
Quincey Koziol
bbd0b55158 [svn-r18257] Description:
Bring r18256 from trunk to 1.8 branch:

    Bring changes from Coverity fixing branch to trunk:

r18235:
Fixed coverity 114:
    if (NULL ==_dest)
       H5MM_free(dest);

r18236:
    Close Coverity issue #28 (again :-) by working through the logic of the
routine more thoroughly to eliminate the goto statements. (LK & QK)

r18237:
fixed coverity 133:
    if (NULL==_dest && NULL==ret_value && NULL != dest)
        H5MM_free(dest);

r18238:
Fix coverity items 421 and 422.  Added assertion that the heap's free list is
NULL when entering H5HL_fl_deserialize, guarateeing that the free list will
always be linked in even on failure.

r18239:
Fix coverity item 268.  Changed H5MM_xfree(read_buf) to read_buf = 
H5MM_xfree(read_buf) so that read_buf isn't manipulated after it's been freed.

r18241:
coverity fix: use correct free functon H5FL_FREE()from the previous fix

r18242:
Coverity fix 139: Free dst correctly in H5O_sdspace_copy().

r18243:
    Fix Coverity issue #417 by checking for NULL return value from
setup_cache() (LK & QK)

r18244:
Coverity Fix 132: free dest correctly in H5O_efl_copy()

r18245:
Issue 121:  H5S_hyper_make_spans() cannot deal with counts of 0. However,
H5Sselect_hyperslab() API does allow a count of 0.
Therefore, simply throw an error if this function encounters a count of 0.

r18246:
Check file_ptr to address coverity issue # 418

r18247:
Fixed coverity 113: 
    if (sequence)
         H5MM_xfree(sequence);

r18248:
    Coverity issue #414 by checking for NULL return from setup_cache() (LK & QK)

r18249:
fixed coverity 274: moved H5FL_FREE(H5A_t, attr); to a line above so that if
attr is null, it will not free it.

r18250:
Fix coverity issue #86.

Check return of malloc function to ensure non-null before continuing.


Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production)
    (h5committested in daily tests on branch)
2010-02-14 22:35:35 -05:00
HDF Tester
50dfe3439b [svn-r18255] Snapshot version 1.8 release 4 (snap12) 2010-02-14 17:55:45 -05:00
Quincey Koziol
92ba8d6a33 [svn-r18254] Description:
Larry asked me to revert an accidental change he made on Friday.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (too minor to require h5committest)
2010-02-14 14:43:56 -05:00
Quincey Koziol
3a66bae1d8 [svn-r18253] Description:
Bring r18252 from trunk to 1.8 branch:

    Rename test macros that are [nearly] identical to source code macros to
have "TEST" in their names, to avoid conflicts during compilation.  (And add
comment to originals in source code, to keep them in sync).

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    up041 machines (at Sandia)
2010-02-14 14:40:58 -05:00
HDF Tester
4eefbc505a [svn-r18234] Snapshot version 1.8 release 4 (snap11) 2010-02-12 12:20:49 -05:00
Quincey Koziol
5768fb97f9 [svn-r18231] Description:
Bring r18230 from trunk to 1.8 branch:

	Bring r18229 from metadata journaling "merging" branch into trunk:

	Bring r18227 from metadata_journaling branch to the merging branch:

	Small cleanups and move v1 cache maintenance macros into package header
file, to better align with changes to v2 cache.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2010-02-11 14:50:05 -05:00
Quincey Koziol
c5c85080a7 [svn-r18225] Description:
Bring r18244 from trunk to 1.8 branch:

    Bring revisions from Coverity session from hdf5_1_8_coverity branch to
trunk:

r18214:
Issue 423:  cache_ptr was not initialized. if global 'pass' was false,
cache_ptr could be used. Extended scope of if(pass) block to include whole
function-flush_cache().

r18215:
Fix coverity item 317.  Removed unreachable code in H5B2_hdr_alloc.

r18216:
Fixed Coverity issues 57 & 67.  Checked oid_count > 0 before memory allocation
and oid_list != NULL before dereferencing.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (daily tested on Coverity branch already)
2010-02-09 17:39:43 -05:00
Quincey Koziol
cc1c7331a5 [svn-r18223] Description:
Bring r18205 & r18222 from trunk to 1.8 branch:

    Add new H5Oexists_by_name() routine.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (daily tested on trunk already)
2010-02-09 16:59:13 -05:00
HDF Tester
658c1b9e75 [svn-r18219] Snapshot version 1.8 release 4 (snap10) 2010-02-07 19:21:03 -05:00
Quincey Koziol
5eb19fc529 [svn-r18213] Description:
Bring r18212 from trunk to 1.8 branch:

    Bring revisions from Coverity fixing branch to trunk:

r18184:
Fixed Coverity issue 373.  Allocated memory freed in line 762 in case of error.

r18185:
Fixed Coverity issues 357 & 358.  Added check for NULL pointer before use.

r18186:
Fix coverity item 65.   Added code to h5unjam to correctly handle failures in
read() and write, and also to correctly handle writes that write less than
requested.

r18187:
Fix coverity items 115 and 116.   Added code to H5Tenum.c to correctly close
opened datatypes in case of failure.

r18188:
Fixed Coverity issue 46.  Check that dataset->shared is not null when freeing
memory after error.

r18190:
Fix coverity item 95.   Added code to H5T_create_vlen to correctly close
allocated datatype in case of failure.

r18191:
Fixed Coverity error 59.  Checked sfirst for -1 value before use in line 10533.

r18192:
Fix Coverity items 121 and 28

Added Asserts:
121: assert that all dimensions of count have values greater than zero.
28: assert curr_span pointer is not null before dereference.

Note: still need too add checks in hyperslab APIs that fail
    when count values are zero, and appropriate tests.

r18194:
Fixed Coverity issues 61 & 62. Checked variable snpoints for value < 0 in line
218.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (already daily tested on coverity branch)
2010-02-04 22:07:41 -05:00
Raymond Lu
1a9136720e [svn-r18211] Added H5B2hdr.c to the list.
Not tested yet.
2010-02-03 13:54:26 -05:00
Quincey Koziol
08fb72859d [svn-r18207] Description:
Removed assert() statement when HDrealloc() returned NULL in H5MM_realloc().

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug
    (too minor to require h5committest)
2010-02-03 10:33:44 -05:00
Raymond Lu
26c1c19e28 [svn-r18204] Updates. Not tested yet. 2010-02-02 14:27:59 -05:00
HDF Tester
187e9377fa [svn-r18203] Snapshot version 1.8 release 4 (snap9) 2010-02-02 11:01:14 -05:00
Raymond Lu
d115783685 [svn-r18202] I added a known problem item. Please see bug report #1279.
No test is needed.
2010-02-02 10:48:38 -05:00
HDF Tester
fc96b2cec3 [svn-r18201] Snapshot version 1.8 release 4 (snap8) 2010-01-31 19:15:34 -05:00
Quincey Koziol
fa1f33701d [svn-r18198] Description:
Trim trailing whitespace from source code files, with following command:

find . \( -name "*.[ch]" -or -name "*.cpp" -or -name "*.f90" \) -print |xargs -n 1 sed -i "" 's/[[:blank:]]*$//'

Tested on:
    None - eyeballed only
2010-01-29 23:33:04 -05:00
Raymond Lu
e3c8027744 [svn-r18189] I added a test for copying an existing DCPL and using the copy to create a new dataset. There's
a bug report (#1608) saying h5repack failed to do that sometimes.  But I couldn't reproduce it.
So I added this test and closed the report.  The test is in the function test_copy_dcpl in dsets.c.

Tested on jam, amani, and linew.
2010-01-29 15:03:53 -05:00
Albert Cheng
be5b92837f [svn-r18173] Bug ID 1753: added macro version of GetTestVerbosity.
The previous implementation did not work for WIndows.
Moved the macro definition of HDGetTestVerbosity from testhdf5.h
to h5test.h.

Removed as much as possible macro definitions that use HDGetTestVerbosity
directly.

Tested: Jam (serial and parallel).  Did not run h5committest since this
is a trival change that is portable.
2010-01-27 16:38:45 -05:00
Quincey Koziol
581d57ba7b [svn-r18172] Description:
Bring r18171 from trunk to 1.8 branch (with appropriate tweaks):
	Bring r18169 from 'merge_metadata_journaling' branch back to trunk:

	Converge changes on metadata_journaling branch and trunk:
		- Remove H5F_t* parameter from H5HL_unprotect()
		- Remove H5F_t* parameter from H5HL_dirty()
		- Remove H5F_t* parameter from H5O_unprotect()
		- Bring changes to metadata caching routines back:
		     - H5AC_pin_protected_entry()
		     - H5AC_resize_pinned_entry()
		     - H5AC_unpin_entry()
		     - H5AC_mark_pinned_entry_dirty()
		     - H5AC_mark_pinned_or_protected_entry_dirty()
		 - Revise internal H5C routines to drop H5F_t* and/or H5C_t* as
			parameter where possible
		 - Revise tests to follow internal routine changes

	Also, other minor changes to speedup the 'cache' test.

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 (amani) 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.6.2 (amazon) in debug mode
      Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
2010-01-27 11:33:16 -05:00
HDF Tester
f5c061aa21 [svn-r18161] Snapshot version 1.8 release 4 (snap7) 2010-01-24 19:05:23 -05:00
Quincey Koziol
346d487d16 [svn-r18160] Description:
Bring r18159 from trunk to 1.8 branch:

    Bring Coverity fixes from 1/22/10 session to trunk:

r18137:
219: Initialized hid_t to -1 and added close to error block.
189-191: Initialized line to NULL and added free line, and close fp to error block.

r18138:
19: Moved code block for printing that the number of enums is empty to the error block. (Would never have been executed otherwise)

r18139:
Fix coverity item 58.  Moved code related to displaying the parent of a repeated
group to the else(isRoot) section, as the root group has no parent.

r18140:
218: Initialized ret_value variable to -1. Because of throw Exception in default case of switch, the coverity problem would not have executed anyway. Good pratice is to initialize variables.

r18141:
Fix coverity item 92.  Added code to H5E_register_class to free cls in case of
an error.

r18142:
Fix coverity item 91.  Added code to H5E_create_msg to free msg in case of an
error.

r18143:
fixed issue 14,
took away "if" and used #ifndef_xxx.

r18144:
Fix coverity item 110.   Added code to H5Eget_minor to free msg_str in case of
an error.

r18145:
fixed coverity #18 removed "aligned", it is always NULL.

r18146:
Fix coverity item 109.   Added code to H5Eget_major to free msg_str in case of
an error.

r18147:
Fixed coverity #81 and #82, Check for bad pointer(s), but can't issue error, just leave

r18148:
Fix coverity item 97.   Added code to H5FD_fapl_open to free copied_driver_info
in case of an error.

r18149:
Fix coverity item 96.   Added code to H5FD_dxpl_open to free copied_driver_info
in case of an error.

r18150:
Fix Coverity issue #29: Protected cache_ptr dereferences with "if(pass)"
block

r18151:
Fix coverity item 93.   Added code to H5FL_fac_init to free factory and new_node
in case of an error.

r18152:
Fix coverity items 98 and 99.   Added code free allocated space in case of
error.

r18155:
124: Freed head pointer before jumping to done. There was no error handling block and normal exit used same path out.
120-123: Freed list of lists in error handling block.

r18156:
Fix coverity issues 179, 180, 181, 182, 183, 184, 186, 320, 407.  These were resource leak issues where allocated memory was not freed, generally in the case of tests that failed.

Tested on:
   Mac OS X/32 10.6.2 (amazon) debug & production
2010-01-23 02:11:57 -05:00
Quincey Koziol
ab37aae39f [svn-r18158] Description:
Bring r18157 from trunk to 1.8 branch:

    Bring back changes from Coverity session on 1/15/10:

r18111:
Fix Coverity issue #130: make certain that the cache gets freed on error.

r18112:
Fix Coverity issue #43 by making cache testing calls protected by 'pass'
variable.

r18113:
Fix Coverity issue #129 by releasing the cache on error.

r18115:
Coverity #45 fix: patched an error check in H5Screate_simple to prevent future dereferencing of a NULL point.
Added a verification in test/th5s.c.

r18116:
Fix Coverity issue #43 by releasing cache on error.

r18117:
Coverity #362,363 by adding HGOTO_DONE, freeing allocations and associated changes. REsolving coverity results #364-368, 369, 370-372, 377, 379, and 380.

r18118:
Fix Coverity issue #42: assert that cache & test specification pointer are
valid.

r18122:
Coverity #362,363 by adding HGOTO_DONE and freeing allocations. This also takes care of #357,358.

r18123:
Coverity #359-361, 373-376: Added HGOTO_DONE(FAIL) statement after checking allocation for NULL. Verified allocation is freed in done block.

r18128:
Fixed coverity issue #10 -- removed dead code.

Tested on:
    Mac OS X/32 10.6.2 (amazon)
2010-01-22 23:53:22 -05:00
Albert Cheng
e8538794ef [svn-r18153] ID 1753: added macro version of GetTestVerbosity.
GetTestVerbosity() is called many times during tests. Implemented a more
efficient macro version HDGetTestVerbosity.

Tested: Jam (serial and parallel).  Did not run h5committest since this
is a trival change that is portable, I am 99% sure.
2010-01-22 16:17:21 -05:00
Jonathan Kim
1eac1391e2 [svn-r18135] Purpose:
Additional fix relted to the fix of bug1672.

Description:
    The fix of bug1672 caused some changes of output which required modifying
    some test cases.  After some discussion, restoring the changes of the test 
    cases was decided.  After many experiments for the solution, this fix was 
    made so the code which improved performance can stay.

Tested on Jam.
2010-01-21 15:39:03 -05:00
Jonathan Kim
969c86f29d [svn-r18132] Add test files for h5diff relate to r18130 commit. 2010-01-21 14:49:43 -05:00
Jonathan Kim
fb90eecb4e [svn-r18130] Purpose:
Add test case relate to bug1749. Also corrected command echo line which
    is not match with actual test.

Tested on Jam.
2010-01-21 13:55:01 -05:00
Jonathan Kim
3026e03ffe [svn-r18127] Purpose:
Fix for bug1749: Incorrect code in diff() function for links compare
    Also removed duplicated redundant code, which improves performance.

Description:
    When comparing file1 to file2 and both files contain same soft-links and/or
    external-links, if file2's target object path name is longer than file1's
    target object path name, the current code allocates memory buffer 
    incorrectly, so it could end up buffer overflow or wrong result.

Tested on Jam.
2010-01-20 16:26:17 -05:00
Raymond Lu
9196ccf059 [svn-r18124] I added the support of bitfield in H5Tget_native_type. Bitfield is similar to unsigned
integer.  I also added a test.

Tested on amani, jam, linew.
2010-01-20 15:15:27 -05:00
HDF Tester
12d1c08b10 [svn-r18121] Snapshot version 1.8 release 4 (snap6) 2010-01-17 17:45:24 -05:00
Quincey Koziol
bee73cf0aa [svn-r18110] Description:
Bring r18109 from trunk to 1.8 branch:

  Bring r18076-18096 from hdf5_1_8_coverity branch to trunk:

r18076:
Correct Coverity issue #1 by removing dead code

r18077:
Fix coverity item 142.  When an error occurred while copying a linked list in
H5S_point_copy, the library would not free the partially allocated list.  Added
code to free the list in this case.

r18078:
Correct Coverity issue #2 by removing impossible to reach code.

r18079:
Correct #3 by removing impossible to reach code.

r18080:
Correct Coverity issue #4 by removing impossible to reach code.

r18081:
fix coverity 26 , check (dblik->parent) before calls H5HF_man_iblock_detach().

r18082:
Fixed coverity issues 321 and 316.
   321: freed sm_buf in error handling to remove resource leak. 
       Also set sm_buf to NULL after other instances in which 
       it is freed to prevent double free.
   316: initialized nmembs to 0.

r18083:
Correct Coverity issue #6 by removing debugging knob from error reporting code.

r18084:
Fix coverity item 269 + others.  When a error occurred in a function using the
h5tools error framework, the "past_catch" variable would not be set to true
because that statement was before the label that goto jumped to.  This could
cause a failure in the cleanup section to go back to the start of the section,
freeing variables twice, etc.

Moved the label infront of past_catch=TRUE.

r18085:
fixed coverity #27, check if (heap) before use heap->obj....

r18086:
fixed coverity #28, check curr_span not null before use it at if(curr_span &&
   (io_bytes_left==0 || curr_seq>=maxseq))

r18087:
Correct Coverity issue #7 by cleaning up correctly on error

r18088:
Correct Coverity #8 by removing unchanged variable checking code.

r18089:
Correct Coverity issue #9 - remove impossible to reach code.

r18090:
Correct Coverity issue #11 by removing impossible to reach code.  Also clean
up some minor style issues.

r18091:
Fix coverity items 314 and 318.  Changed the improper assertion of the return
value of a library function to a check, and a return(void) on failure.

r18092:
Fix coverity item 70.  Changed the improper assertion of the return value of a
library function to a check, and a return(void) on failure.

r18093:
Correct Coverity issue #12 by removing dead code.

r18094:
Correct Coverity issue #16 by removing debugging code.

r18095:
Fixed coverity issue # 271.

Removed redundant checking and freeing of sm_buf1 and sm_buf2.

r18096:
Correct Coverity issue #17 by refactoring test to remove dead code.

   Also, removed previous "coverity" statements in comments, we'll review
those issues again and see if we can figure them out, now that we have more
experience with Coverity.

Tested on:
    Mac OS X/32 10.6.2 (amazon) debug & prod
2010-01-14 22:58:09 -05:00
Albert Cheng
ccd0afac9b [svn-r18106] bug 1673:
The mixed use of RUNTEST (original) and RUNTESTS (new) caused
confusion. E.g., the timings in test/ was still using the old
$RUNTEST.  It made more sense to use $RUNTEST which is used
by the dejagnu feature of automake.  So, I changed all
$RUNTEST or $RUNTESTS to $RUNEXEC.

config/commence.am & config/conclude.am are the two files
that got changes. Also fixed an error in test/Makefile.am.
The rest are changed by bin/reconfigure.

Tested: h5committested.
2010-01-12 18:57:44 -05:00
Allen Byrne
089d0ea9ad [svn-r18103] Added new H5HLint.c file. Corrected nodebug parameter to check.
Tested: windows
2010-01-11 14:00:31 -05:00
HDF Tester
30f3fcaa4a [svn-r18101] Snapshot 2010-01-10 18:02:58 -05:00
Scot Breitenfeld
9345b516b0 [svn-r18099] Description:
Merged changes from trunk/fortran into the branch used:

svn merge -r 17682:18098 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Tested on: jam (intel)
           amani (pgi)
2010-01-08 16:47:17 -05:00
Quincey Koziol
8984d662ed [svn-r18096] Description:
Correct Coverity issue #17 by refactoring test to remove dead code.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug
2010-01-08 15:32:12 -05:00
Mike McGreevy
b93ed894c6 [svn-r18095] Fixed coverity issue # 271.
Removed redundant checking and freeing of sm_buf1 and sm_buf2.
2010-01-08 15:22:56 -05:00
Quincey Koziol
41280d6bbe [svn-r18094] Description:
Correct Coverity issue #16 by removing debugging code.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug
2010-01-08 15:19:07 -05:00
Quincey Koziol
179c3e9c54 [svn-r18093] Description:
Correct Coverity issue #12 by removing dead code.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
2010-01-08 15:13:25 -05:00
Neil Fortner
c3b6d06991 [svn-r18092] Fix coverity item 70. Changed the improper assertion of the return value of a
library function to a check, and a return(void) on failure.

Tested: Fedora
2010-01-08 15:07:54 -05:00
Neil Fortner
0f15b4c999 [svn-r18091] Fix coverity items 314 and 318. Changed the improper assertion of the return
value of a library function to a check, and a return(void) on failure.

Tested: Fedora
2010-01-08 15:01:41 -05:00
Quincey Koziol
df60e8a523 [svn-r18090] Description:
Correct Coverity issue #11 by removing impossible to reach code.  Also clean
up some minor style issues.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
2010-01-08 15:01:16 -05:00
Quincey Koziol
322b981c37 [svn-r18089] Description:
Correct Coverity issue #9 - remove impossible to read code.

Tested on:
    Mac OS X/32 10.6.3 (amazon)
2010-01-08 14:50:23 -05:00
Quincey Koziol
987054a9e5 [svn-r18088] Description:
Correct Coverity #8 by removing unchanged variable checking code.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
2010-01-08 14:46:53 -05:00
Quincey Koziol
1b6cd030d3 [svn-r18087] Description:
Correct Coverity issue #7 by cleaning up correctly on error

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
2010-01-08 14:39:09 -05:00
Peter Cao
73508da070 [svn-r18086] fixed coverity #28, check curr_span not null before use it at if(curr_span && (io_bytes_left==0 || curr_seq>=maxseq)) 2010-01-08 14:34:19 -05:00
Peter Cao
984511ef0a [svn-r18085]
fixed coverity #27, check if (heap) before use heap->obj....
2010-01-08 14:24:53 -05:00
Neil Fortner
0ec9ee15c8 [svn-r18084] Fix coverity item 269 + others. When a error occurred in a function using the
h5tools error framework, the "past_catch" variable would not be set to true
because that statement was before the label that goto jumped to.  This could
cause a failure in the cleanup section to go back to the start of the section,
freeing variables twice, etc.

Moved the label infront of past_catch=TRUE.

Tested: Fedora
2010-01-08 14:24:47 -05:00
Quincey Koziol
23bfde73c2 [svn-r18083] Description:
Correct Coverity issue #6 by removing debugging knob from error reporting
code.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
2010-01-08 14:24:17 -05:00
Mike McGreevy
2181d7b0c3 [svn-r18082] Fixed coverity issues 321 and 316.
321: freed sm_buf in error handling to remove resource leak. 
     Also set sm_buf to NULL after other instances in which 
     it is freed to prevent double free.

316: initialized nmembs to 0.
2010-01-08 14:22:40 -05:00
Peter Cao
11e943f077 [svn-r18081] fix coverity 26 , check (dblik->parent) before calls H5HF_man_iblock_detach().
line, and those below, will be ignored--

M    src/H5HFdblock.c
2010-01-08 14:17:59 -05:00
Quincey Koziol
3794f9a78a [svn-r18080] Description:
Correct Coverity issue #4 by removing impossible to reach code.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
2010-01-08 14:17:12 -05:00
Quincey Koziol
326fa32967 [svn-r18079] Description:
Correct #3 by removing impossible to reach code.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug
2010-01-08 14:13:29 -05:00
Quincey Koziol
8b5da53df2 [svn-r18078] Description:
Correct Coverity issue #2 by removing impossible to reach code.

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug
2010-01-08 14:12:02 -05:00
Neil Fortner
4b537ff840 [svn-r18077] Fix coverity item 142. When an error occurred while copying a linked list in
H5S_point_copy, the library would not free the partially allocated list.  Added
code to free the list in this case.

Tested: Fedora
2010-01-08 13:58:12 -05:00
Quincey Koziol
450e8db6f2 [svn-r18076] Description:
Correct Coverity issue #1 by removing dead code

Tested on:
    Mac OS X/32 (amazon) debug
2010-01-08 13:57:09 -05:00
Quincey Koziol
f0623bdbeb [svn-r18073] Description:
Bring r18072 from trunk to 1.8 branch:

	Bring r18071 from metadata journaling merge branch:

	Refactor local heap routines with changes from metadata journaling
branch, along with other misc. changes as the changes on the metadata journaling
branch are being converged with the current state of the trunk.

Tested on:
	Mac OS X/32 10.6.2 (amazon) debug & prod
	Linux/64 2.6 (amani) prod
	FreeBSD/64 (liberty) prod
2010-01-07 18:22:23 -05:00
Larry Knox
419b3d6649 [svn-r18069] Added entry to MANIFEST for new file config/ibm-aix.
Tested chkmanifest on jam.
2010-01-05 22:37:25 -05:00
Albert Cheng
501782cc23 [svn-r18064] Purpose:
Port to AIX 6.1 for RS6000.  Should be the same as PowerPC based AIX.

Tested:
Blue-print of NCSA.
2010-01-04 21:04:02 -05:00
Neil Fortner
54fd70764c [svn-r18063] Fix bug in links.c which occurs when zlib is disabled. This was fixed in the
trunk in r17751, but was not ported to 1.8 because that feature (compress group
fheap) had not beed added to 1.8 yet.  This fix should have been ported to the
cgfh branch at the time, but it was overlooked.

Tested: Fedora (too small for commit test)
2010-01-04 15:50:00 -05:00
HDF Tester
2cedbfab13 [svn-r18062] Snapshot 2010-01-03 19:19:13 -05:00
HDF Tester
048b57ea9b [svn-r18058] Snapshot 2009-12-27 17:59:00 -05:00
Albert Cheng
aea2282600 [svn-r18056] Bug fix: 1192
Description:
Fixed exit code (sometimes return code in Main) to follow the HDF5 standards.

Tested:
Jam, both serial and parallel.
2009-12-26 05:12:28 -05:00
Albert Cheng
51e9b59527 [svn-r18054] Updated for the moves of the testfiles.
Checked by bin/chkmanifest.
2009-12-26 02:55:16 -05:00
Albert Cheng
8de1f3aab3 [svn-r18053] Bug fix: 1192
Description:
Fixed exit code (sometimes return code in Main) to follow the HDF5 standards.

Tested:
H5committested plus serial test in Jam.
2009-12-26 02:43:50 -05:00
Albert Cheng
b6a36494bc [svn-r18052] Moved gif2h5 tools tesfiles from hl/tools/testfiles to hl/tools/gif2h5/testfiles
so that it has its own testfiles directory.

Tested:
h5committested.
2009-12-25 07:54:08 -05:00
Albert Cheng
a4027247df [svn-r18050] Bug fix: 1192
Description:
Some exit code (sometimes return code in Main) to follow the HDF5 standards.

Tested:
H5committested plus serial test in Jam.
2009-12-25 07:32:05 -05:00
HDF Tester
2fd8480ec7 [svn-r18049] Snapshot 2009-12-20 19:01:11 -05:00
Quincey Koziol
4d9201cdca [svn-r18046] Description:
Bring r18045 from trunk to 1.8 branch:

        Slush changes back & forth between trunk, the merging branch and the
metadata journaling branch to level them out to a reasonably common set of code
to work from for the next set of more significant changes.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2009-12-19 20:44:54 -05:00
Quincey Koziol
69adfc23bd [svn-r18042] Description:
Bring r18039 from trunk to 1.8 branch:

	Minor code cleanups, to align better w/ongoing metadata journaling
convergence.

Tested on:
        Mac OS X/32 10.6.2 (amazon) w/debug
        (too minor to require h5committest)
2009-12-19 15:43:24 -05:00
Quincey Koziol
cccd3d26d6 [svn-r18038] Description:
Bring r18037 from trunk to 1.8 branch:

        Bring r18035 from merge_metadata_journaling branch to trunk:

        More "brush clearing" convergence between metadata_journaling branch
and the trunk.

Tested on:
        Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
	(h5committested on trunk)
2009-12-19 00:45:56 -05:00
Quincey Koziol
856b2e2c25 [svn-r18034] Description:
Bring r18033 from trunk to 1.8 branch:

	Correct error in merging Coverity changes in r18011

Tested on:
        None - eyeballed only (very simple)
2009-12-18 23:15:36 -05:00
Quincey Koziol
80385ab8dd [svn-r18032] Description:
Bring r18031 from trunk to 1.8 branch:

	Bring r18030 from merge_metadata_journaling branch to trunk:

	Bring "brush clearing" changes (whitespace & style issues, mostly) from
metadata_journaling branch to the "merging" branch, to converge the trunk and
the metadata_journaling branch.

	Also, some other minor cleanups along the way.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2009-12-17 17:38:50 -05:00
Raymond Lu
0db6255d80 [svn-r18026] On Boeing's OpenVMS, the value of EXIT_FAILURE is 268435458.
(The test is in test_exit_definitions.)  Their document says
it's supposed to be 2.  I commented it out for further
consideration.

Tested on jam - simple change.
2009-12-16 16:12:51 -05:00
Raymond Lu
f03234031f [svn-r18023] I removed a duplicated line from the read_old function. There were 2 identical calls to
the function H5Fopen.

Tested on jam and OpenVMS.
2009-12-16 15:34:21 -05:00
Raymond Lu
d6a53eadec [svn-r18021] I added tlinks to testhdf5.
Tested v1.8.4 on OpenVMS.
2009-12-16 15:20:54 -05:00
HDF Tester
f866495ba0 [svn-r18014] Snapshot 2009-12-13 19:03:58 -05:00
Quincey Koziol
6c9d003d4e [svn-r18013] Description:
Bring r18011 from trunk to 1.8 branch:

   Bring Coverity changes into the trunk: (also other minor cleanups)

r17991:
Fix Coverity items 175 and 176.  Fixed memory leak on error in print_enum in
H5LT.c.

r17993: (r17992 was not a Coverity change)
Close Coverity issue #206: inconsistently checking whether dt->shared was
non-NULL after H5T_alloc() returned a valid 'dt' value (which should guarantee
that dt->shared is valid).

r17994:
Fix Coverity item 149.  Fixed file handle leak on error in H5FD_stdio_open.

r17995:
Fixed Coverity issues 154 to 161:

Added H5MP_close routine to error handling in the event *mp has not been
freed before error.

r17996:
Close Coverity issue #126: potentially leaking merged_spans on routine failure.

r17997:
Fix Coverity items 147 and 148.  Fixed resource leaks on error in H5FDloc.c.

r17998:
Coverity issue 269-272:
   Added integer result variable to functions that could return negative.
       Assigned to unsigned after checking.
   Added H5E_BEGIN_TRY block around H5Tclose and removed H5E_THROW in the
       catch block.
   Checked buffer is NULL before free. Changed HGOTO_ERROR outside of the if
       block to H5E_THROW.

r17999:
Close Coverity issue #127: release temporary spans in more generic manner.
(Also add error checking to previous fix)

r18000:
Resolved Coverity issues 211 and 212 in H5T.c. Added comments to ignore
Coverity warning regarding not checking pointer for NULL, as we are using
an assert which catches the issue.

r18001:
Fix Coverity item 146.  Fixed resource leak on error in H5O_layout_copy.

r18002:
Fix Coverity items 143 and 145.  Fixed resource leaks on error in
H5D_compact_copy and H5D_contig_copy.

r18003:
Close Coverity issue #192: close file on error

r18004:
Fix Coverity issue #125: release temporary spans on error

r18005:
Resolved Coverity issues 5, 25, and 83 (in H5T.c):

   Separated embedded functions in order to check for NULL on return of
       H5I_object before passing into H5T_copy.

   Check to see if new_dt is NULL within error handling before
       dereferencing it.

   Ignore Coverity's dead code warnings as the checks that lead to the code
       are machine dependent.

r18006:
Coverity 63,70,73:  Checked result of function before assigning to an unsigned
variable.

r18007:
Coverity 78,79:   added continue statement if H5Pget_filter2 returns negative.

r18008:
Fixed Coverity issue # 138:

   Added support in error handling to free dst pointer (if allocated) on error.

r18009:
Whitespace & coding style cleanup

Tested on:
    Mac OS X/32 10.6.2 (amazon) w/debug & production
    (h5committested on trunk)
2009-12-13 07:50:01 -05:00
Allen Byrne
7f46301cee [svn-r17990] Tested MinGW environment on XP32 with latest environment and gcc 4.4.0 tools.
Tested: Windows XP 32bit
2009-12-11 12:46:49 -05:00
Raymond Lu
f9e5bda9d8 [svn-r17984] I put the bug fix info for #1584. No test is needed. 2009-12-10 11:36:46 -05:00
Quincey Koziol
5c8ab3e88d [svn-r17983] Description:
Bring r17981 from trunk to 1.8 branch:

Abstract "print header" code into separate routine.

Tested on:
   Mac OS X/32 10.6.2 (amazon) w/debug
  (too minor to require h5committest)
2009-12-10 09:03:52 -05:00
Quincey Koziol
57ac6e6745 [svn-r17982] Description:
Bring r17980 from trunk to 1.8 branch:

   Bring Coverity changes into the trunk: (also other minor cleanups)

r17955:
Fix Coverity item 24.  Add missing error condition to
H5AC_ext_config_2_int_config.

r17956:
Fix Coverity item 24.  Improve error checking in H5A_compact_build_table_cb.

r17957:
Fix Coverity item 150.  Fix warning in H5A_compact_build_table_cb.

r17958:
Fix Coverity item 117.  Fix error handling in H5B_shared_new.

r17959:
Fix Coverity item 209.  Added an assertion for leaf->shared in
H5B2_cache_leaf_dest.

r17960:
Fix Coverity item 208.  Added an assertion for internal->shared in
H5B2_cache_internal_dest.

r17961:
Fix Coverity item 89.  Reworked the code to avoid array overrun in
H5C__autoadjust__ageout__insert_new_marker.

r17962:
Fix for coverity Resource_leak 195,203,204,205.

r17963:
Fix Coverity item 44.  Prevented potential NULL dereference in H5D_btree_debug.

r17964:
Fix Coverity issues #197, 198 & 199: memory not being released.  (Also
clean up other resource leaks in nearby and/or similar code).

r17965:
Fix Coverity issue #151: release resources on error

r17966:
Fix Coverity issue #187: Remove leftover code remnant from prior bugfix
which was causing resource leak of open files.

r17967:
Fixed Coverity issues # 193 & 194.  Removed unnecessary memory allocation and
added comparison of length of path parameter to the size of the destination
buffer in h5import.h/h5import.c.

r17968:
Fix Coverity item 144.  Fixed memory leak on error in H5D_chunk_copy.

r17969:
Fix for coverity Resource_leak #196.

r17970:
Coverity 167-173:
Initialized pointer of buffers.
In error handling, closed types and free memory.

Tested on:
   FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
   (h5committested on trunk)
2009-12-10 08:58:14 -05:00
Quincey Koziol
892050a830 [svn-r17979] Description:
Bring r17978 from trunk to 1.8 branch:

    Simplify checking for detecting variable-length strings.

Tested on:
    Mac OS X/32 10.6.2 (amazon) debug & production
    Too minor to require h5committest
2009-12-09 13:20:37 -05:00
Raymond Lu
7d8ceade33 [svn-r17976] Bug fix for 1584. H5Tdetect_class said a VL string is a string type. But when it's in a
compound type, it says it's a VL type.  We want to tell user a VL string is a string.  But 
internally we treat it as a VL type.  I added a flag as a parameter of H5T_detect_class.  It
tells whether the caller is the public function H5Tdetect_class.  I also added a detection for
VL string in the private function for the compound case (or array or nested VL type).

Tested with h5committest.
2009-12-09 11:15:45 -05:00
HDF Tester
4f90de0956 [svn-r17975] Snapshot 2009-12-07 09:47:54 -05:00
Quincey Koziol
1d8a1b22f1 [svn-r17972] Description:
Bring r17971 from trunk to 1.8 branch:

    Allow the core VFD to properly support opening backing store files through
symbolic links and have the external links in the file be treated in the same
way as for the sec2 driver.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-12-06 22:27:19 -05:00
Quincey Koziol
77a3cc2292 [svn-r17954] Description:
Bring r17953 from trunk to 1.8 branch:

   Bring Coverity changes into the trunk:

r17877:
Error 266: Uninitialized memspace set to -1. Changed malloc and free to HDmalloc and HDfree. Removed unused dtype var.

r17878:
Error 265: Uninitialized mem_space set to -1. Changed malloc and free to HDmalloc and HDfree. 
Error 267: Uninitialized smspace set to -1. Changed malloc and free to HDmalloc and HDfree.

r17879:
Error 242: Uninitialized aid set to -1. 
Error 243: Uninitialized sid set to -1. 
Uninitialized tid set to -1 for consistency

r17880:
Error 242: reinitialized aid to -1 after close to be ready for reuse. 
Error 243: reinitialized sid to -1 after close to be ready for reuse. 
reinitialized tid to -1 for consistency after close to be ready for reuse.

r17881:
use valgrind to check there is a memory leak. The fix is to free ptrstr in line 5838 at xml_dump_group() of h5dump.c after it is used. run the valgrind after the fix, no memory leak for that part of the code.

r17882:
Fix Coverity items 256 and 269.

r17883:
Error 222-230: initialized hid_t vars to -1 after close to be ready for reuse. 
Also added H5Tclose for tid in gent_bigdims

r17884:
Bug fix (Coverity run2, view 23, dead code)
(this is pair-program done by Albert, Elena and Larry).

Confirmed and fixed the deadcode in hyperslab read branch of function
diff_datasetid.
(Discovered other bad code that diff_datasetid() should be recoded.  
Bug 1693 is entered for this.)

r17906:
Fix Coverity item 260.

r17907:
262: Initialized hid_t's dtype, dtype_tmp and file to -1. Initialized H5T_t * dt to NULL.

r17908:
Fix Coverity item 261.

r17909:
Fix Coverity item 248.

r17910:
Revise fix for Coverity item 248.

r17911:
Resolved coverity issues #s 263, 162, 163, 164. All issues in dsets.c. Initialized fid and did hid_t's. filter_corrupt function was returning in the middle of an if statement, bypassing free calls. Updated error handling to free buffers and hid_t's appropriately.

r17912:
(done by Larry and Albert)
Cleanup Coverity view warnings (#231-241) about
using uninitialized variables.  Initialized all
of them.

r17913:
Resolved issue 251 and 264. Initialized tid2 to -1 and initialized buffers that were freed in case of an error.

r17914:
Resolved coverity issues 66, 220, and 221: 

66: Negative Return assignment ignored

220,221: Initialized hid_t's.

r17915:
Fix Coverity item 247.

r17916:
Fix Coverity item 246.

r17917:
Fix Coverity item 245.

r17918:
Fix Coverity item 244.

r17919:
Coverity Issue #84: Moved asserts in H5T_cmp to the top of the function, and converted them to HDassert. Coverity complaining about using potentially NULL pointer without checking it. Want to see if Coverity will accept Assertions as acceptable checking before using the value. 

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2009-12-03 14:41:48 -05:00
Quincey Koziol
05bdd6d729 [svn-r17952] Description:
Bring r17951 from trunk to 1.8 branch:

    Skip symlink test for external links when not using the sec2 VFD.

Tested on:
    Mac OS X/32 (amazon) w/various VFDs
    (too minor for h5committest)
2009-12-03 10:51:19 -05:00
Allen Byrne
6460a193a6 [svn-r17950] Added new H5SMmessage.c file to project files
Tested: Windows
2009-12-02 17:10:46 -05:00
Quincey Koziol
90c94ab5d7 [svn-r17944] Description:
Bring r17943 from trunk to 1.8 branch:

	Finish refactoring v2 B-trees so that they can have client callback
context provided to the encode/decode callbacks.

Tested on:
	FreeBSD/64 6.3 (liberty)
	(h5committested on trunk)
2009-12-01 12:05:23 -05:00
Quincey Koziol
e3abb6e11a [svn-r17942] Description:
Forgot to run bin/reconfigure before last checkin, done now.

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committested on trunk)
2009-12-01 09:37:18 -05:00
Quincey Koziol
c909c5e7cf [svn-r17941] Description:
Bring r17939 from trunk to 1.8 branch:

	Handle external links from symlinked files by adding another check to
look for "child" files for links from the actual location of the "parent" file,
instead of from the location of the symlink.

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committested on trunk)
2009-12-01 09:20:41 -05:00
Jonathan Kim
b4b16947b7 [svn-r17940] Purpose:
Fix potential problem similar to Bug1672 (getting garbage values)

Description:
    This will resolve the potential problem like Bug1672 when comparing 
    attributes. It improves the performance by not calling diff_array 
    twice. (diffing time in half). Little clean up on comment lines.
    Refer to the Bug fix 1672. (svn revision 17921 on 1.8 branch) 
	
Tested on:
    linux32 (jam) , linux64 (almani), solaris (linew)
2009-12-01 08:50:29 -05:00
Albert Cheng
4d62a79cc4 [svn-r17935] Updated AIX compilers information. 2009-11-27 11:12:11 -05:00
Albert Cheng
8d1f377af2 [svn-r17933] Updated with new ibm compiler configure changes. 2009-11-26 13:10:00 -05:00
Albert Cheng
cbc8973a5f [svn-r17930] Enhancement:
Added the xlc-* and mpcc_r-* BASENAME patterns to be recognized as IBM
compilers so that the ibm compiler options can be added properly.
This allows non-system-default compiler command names (e.g. xlc-m.n.k.l)
be recognized.
(need to figure out a better way to recognize it is an IBM compiler
and its version information.)

Tested: LLNL AIX machine.
2009-11-26 12:41:34 -05:00
Allen Byrne
463269c10a [svn-r17926] Add definition for HDlstat for windows.
Tested: windows
2009-11-25 15:27:21 -05:00
Quincey Koziol
58048308c5 [svn-r17925] Description:
Bring r17924 from trunk to 1.8 branch:

	Add detection for POSIX lstat() routine to configure script (mostly for
non-UNIX/Linux machines) and add macro wrapper for it.

	Alphabetatize the system/library calls we test for, to make them easier
to read.

	Removed the sigaction() detection & macro wrappers, since it's not
used by the distribution currently.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-11-23 16:45:23 -05:00
Quincey Koziol
7b402d827d [svn-r17923] Description:
Bring r17922 from trunk to 1.8 branch:

        Improve error reporting for read/write failures.

Tested on:
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2009-11-23 14:03:23 -05:00
Jonathan Kim
cbe163c6ce [svn-r17921] Purpose:
Fix Bug1672 - Display garbage value on LE machine for BE data.

Description:
	Casuing by calling diff_dataset twice when -r or no option was given.
	Change to call it once which fix the problem. 
	It also improves the performance. (diffing time in half)
	According further test, it also occurred on BE machine as well and it 
	seems occruing only with the BE data attached to Bugzilla. 
	Don't know how the file was created. Anyway this fix will prevent 
	from diffing with garbage values in similiar potential case. 
	
Tested on:
	linux32 (jam) , linux64 (almani), solaris (linew)
2009-11-20 17:17:48 -05:00
Quincey Koziol
218469b0ac [svn-r17894] Description:
Bring r17893 from trunk to 1.8 branch:

	Remove old shim H5B2 routines from refactoring, rename new routines to
old routine names and switch all users of the H5B2 interface back to the old
routine names now that the switch to using the more current open -> <operation>
-> pattern is used for all the H5B2 code.  This is the final change before 
adding a context to the H5B2 client encode/decode callbacks.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-11-14 22:51:39 -05:00
Quincey Koziol
b6e30d9c79 [svn-r17892] Decription:
Bring r17891 from trunk to 1.8 branch:

	Switch the shared object header messages code to use the refactored
v2 B-tree routines.  (this should be the interface that is using them)

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-11-14 00:07:27 -05:00
Quincey Koziol
437b17f2b4 [svn-r17890] Description:
Bring r17889 from trunk to 1.8 branch:

	Switch a bunch of misc. places in interfaces that were already
converted to use the refactored v2 B-tree routines to use the refactored v2
B-tree routines.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-11-13 22:42:31 -05:00
Quincey Koziol
ed505ff5fa [svn-r17888] Description:
Bring r17887 from trunk to 1.8 branch:

	Convert dense attribute storage to use refactored v2 B-tree routines.
Also fix some minor typos in the dense group handling code.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5commitested on trunk)
2009-11-13 21:22:44 -05:00
Quincey Koziol
65f2fdd447 [svn-r17886] Description:
Bring r17885 from trunk to 1.8 branch:

	Convert 'huge' fractal heap object management code to use refactored
v2 B-tree routines.

	Also, switch internal representation of 'sizeof_addr' and 'sizeof_size'
in files to be uint8_t's instead of size_t's, since they are stored in single
bytes in the file format.

	Various other minor compiler warning cleanups and error call tweaks.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk
2009-11-13 18:56:45 -05:00
Quincey Koziol
49ef13ea74 [svn-r17874] Description:
Bring r17873 from trunk to 1.8 branch:

	Change dense group storage to use refactored v2 B-tree interface.  Also
tweak dimension sizes for dataset in test down so it doesn't blow out the stack.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-11-12 22:36:23 -05:00
Elena Pourmal
2fbed9ec4a [svn-r17872] Maintenance: Added 1.8.4 release information to the branch history file. 2009-11-12 11:38:49 -05:00
Allen Byrne
0514d23c0d [svn-r17870] Removed VS6 reference in install_dll.bat.
Added option to not build and test debug versions.
2009-11-11 12:48:23 -05:00
Elena Pourmal
6e68ac3f2d [svn-r17868] Maintenance: Added information about gfortran to the list of the compilers
used for testing.
2009-11-10 15:38:19 -05:00
Quincey Koziol
8e1e3d8708 [svn-r17864] Description:
Bring r17863 from trunk to 1.8 branch:

        Switch HSYS_GOTO_ERROR() & HSYS_DONE_ERROR() macros to use printf-like
functionality for displaying system error messages.

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.6.2 (amazon) in debug mode
	Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-11-10 14:37:42 -05:00
Quincey Koziol
37358db8ab [svn-r17862] Description:
Bring r17860 from trunk to 1.8 branch:

	"Normalize" object names for external links, making them into the same
form as used for soft links.

	Begin the process of adding more printf-like information to library
error reporting.  HGOTO_ERROR() and HDONE_ERROR() macros can now use the last
parameter (a string) like a printf() formatting string and pass extra
parameters with additional information.  (For example, see the HGOTO_ERROR
macros in H5FD_sec2_read() in src/H5FDsec2.c)

	Bring the underlying H5E_printf_stack() routine from trunk to 1.8
branch also.

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.6.2 (amazon) in debug mode
       Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2009-11-10 12:30:09 -05:00
Quincey Koziol
fbd4cf9bfe [svn-r17849] Description:
Bring r17848 from trunk to 1.8 branch:

	Further refactoring v2 B-trees so that they can get context to the
encode/decode client callbacks:

	- Switch tests to using refactored routines

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.6.1 (amazon) in debug mode
       Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2009-11-07 09:43:22 -05:00
Quincey Koziol
016d3bd3fb [svn-r17843] Description:
Bring r17842 from trunk to 1.8 branch:

	Further refactor v2 B-tree code toward being able to pass context info
down to encode/decode client callbacks:
	- Separate H5B2_create call to return H5B2_t structure
	- Make loading the v2 B-tree header pick up the client class from the
		ID stored in the file.  Simplify some internal API calls as a
		result.

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.6.1 (amazon) in debug mode
       Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2009-11-05 15:31:07 -05:00
Quincey Koziol
12f9610b7b [svn-r17839] Description:
Bring r17838 from trunk to 1.8 branch:

	Further refactoring of v2 B-tree code, moving toward being able to pass
a context information to a client's encode/decode callbacks.

	Also, clean up of other minor compiler warnings and code formatting
issues.

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.6.1 (amazon) in debug mode
       Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2009-11-05 09:54:06 -05:00
Elena Pourmal
e0ba416d34 [svn-r17833] Maintenance: Fixed C++ compiler information while checking it for 1.8.4 release 2009-11-04 18:58:47 -05:00
Albert Cheng
3e3731f93d [svn-r17831] Bug fix:(sort of)
Some systems, like AIX poe, interpret exit(134) the same as if the process has
really been interrupted by the abort signal and prints extra messages that
confuse test script which is looking for matching output.

Solution:
Changed it to exit(6) which still has the "appearance" of an abort signal which
carries the value of 6 in Unix systems.

Tested: LLNL Up both serial and Parallel.
2009-11-04 17:07:30 -05:00
Albert Cheng
6d639e66b7 [svn-r17829] Updated the part of IBM SP to make it clearer why single process is needed
during the build part.
2009-11-04 16:48:08 -05:00
Albert Cheng
28ae489de3 [svn-r17827] Updated information concerning Red Storm Qual. 2009-11-04 14:56:23 -05:00
Albert Cheng
499a0dbe4a [svn-r17822] Removed entried of Spirit which has retired.
Updated OS information of Glory.
2009-11-04 13:29:21 -05:00
Mike McGreevy
df2327baef [svn-r17820] Purpose:
Updating RELEASE.txt

Description:

    Clarifying explanation of --enable-static-exec behavior.

Tested:

    Doc only, none needed.
2009-11-04 09:40:10 -05:00
Albert Cheng
2161f58f86 [svn-r17817] Removed Zeus and ubgl entries since they were not tested any more.
Added AIX known problem of testcheck_version.sh failure.
2009-11-03 23:32:05 -05:00
Quincey Koziol
d1e144339d [svn-r17814] Description:
Correct 'src' to 'dst' in error message for H5D_read.  (Bz#1683)

Tested on:
        Eyeballed only - too minor to require h5committest
2009-11-03 14:27:36 -05:00
Neil Fortner
448ae27548 [svn-r17812] Update RELEASE.txt for fractal heap filtering changes (r17807) 2009-11-03 11:34:32 -05:00
Allen Byrne
9bcd6e0621 [svn-r17809] Corrected expected output text file to match actual output. (Verified to linux output).
Corrected solution file type to not try to build .exe the solution name.
2009-11-03 11:31:00 -05:00
Quincey Koziol
d8c4700561 [svn-r17807] Description:
Bring r17623 from trunk to 1.8 branch:

	Bring "compress group's fractal heap" feature from feature branch.

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.6.1 (amazon) in debug mode
       Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2009-11-03 08:17:14 -05:00
Allen Byrne
ebd34a6a4d [svn-r17804] corrected examples test batch files 2009-11-02 14:00:54 -05:00
Albert Cheng
40a80d55fb [svn-r17798] Removed support and known problems of the IRIX, IRIX64 and Tungsten platforms
since they have retired.
Added known problem of h5repack in AIX -q32 platform.
2009-11-02 09:31:06 -05:00
Quincey Koziol
ac0778592a [svn-r17786] Description:
Bring r17749 & 17785 from trunk to 1.8 branch:

17749:
	Refactor v2 B-tree code to bring it further in line with how the fractal
heap code works, to make forthcoming modificaions easier.  Also minor tweaks to
the fractal heap code to clean it up a bit more also.

17785:
	Further refactor v2 B-tree code to bring it closer to modern data
structure designed in the library, mainly by introducing a H5B2_t type so that
the v2 B-tree could be held open, but not require the B-tree header to be
protected the whole time.  A few other minor tweaks as well.

	Also, remove unused 'dirty' flag from fractal heap header.

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.6.1 (amazon) in debug mode
        Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-10-29 09:54:08 -05:00
Quincey Koziol
7abd8c4d30 [svn-r17779] Description:
Bring r17778 from trunk to 1.8 branch:

    Make check for NULL dataspace a bit safer.

Tested on:
    FreeBSD/32 6.3 (duty)
    (too minor for h5committest)
2009-10-28 16:59:56 -05:00
Albert Cheng
1697bf666b [svn-r17776] Bug fix: I added the test
TOOLTEST file_space.ddl -B file_space.h5
by accident (copied from the trunk version).
Removed it.

Tested: jam. (skipped h5committest since it is
a trivial change of removing an action line.
The file_space.ddl and file_space.h5 do not exist
in this branch. (that was how I discovered my mistake.)
2009-10-28 15:45:06 -05:00
Mike McGreevy
1fa0de7a81 [svn-r17773] Purpose:
h5cc link-line reordering

Description:

    Re-ordered flags in h5cc such that LDFLAGS appears after hdf5 library 
    include path. This is to ensure third party library locations don't 
    interfere with locating the correct version of hdf5 library.

    I have Elena's permission to bring into 1.8 before anything else (so it 
    can be tested via daily tests ASAP), though the hope is to propagate 
    everywhere.

Tested:

    quickly by hand on jam, daily tests should catch elsewhere.
2009-10-28 14:05:35 -05:00
Albert Cheng
6f29232adb [svn-r17769] Bug 1264 fixed.
Tests to verify the bug fixed are installed.

Test: v1.8.4 passed all tests on
Jam (default and with --disable-depreacted-symbol), Amani (v16API), 
Linew (default).
This should be good for v1.8 too.
2009-10-28 02:25:02 -05:00
Neil Fortner
0599c6f0a4 [svn-r17766] Purpose: Fix bug 1483
Description:
H5HG_load made improper assumptions about the ordering of object indices, namely
that they are in order.  Not only is this not guaranteed by the file format
spec, but this condition can be violated if id's "wrap around" which can happen
when overwriting VL data.  H5HG_load has been fixed to handle any order of
indices.  Also fixed some other bugs involving allocation of global heaps in
memory.

Tested: jam, linew, amani (h5committest)
2009-10-27 22:00:50 -05:00
Neil Fortner
f6ebbc0109 [svn-r17762] Purpose: Fix problem with H5TB API
Description:
The H5TB API makes some improper assumptions about the order of compound
datatype members.  Namely, it assumes that members remain in the order in which
they were inserted.  Unfortunately, this assumption is inherent in the design of
the interface.  The library has been patched so that this assumption holds in
situations relevant to H5TB.

Tested: jam, linew, amani (h5committest)
2009-10-27 17:45:31 -05:00
Neil Fortner
b080ca4806 [svn-r17757] Purpose: Fix assertion failure caused by H5Tcommit1/2
Description:
Calling H5Tcommit_anon on a file with read only access would cause an
assertion failure.  Added a check to H5T_commit to return a failure in
this case.  Removed redundant check in H5T_commit_named.

Tested: Fedora 11 (very minor change)
2009-10-27 16:33:12 -05:00
Neil Fortner
22eb024930 [svn-r17754] Purpose: Fix assertion failure caused by H5Tcommit1/2
Description:
Calling H5Tcommit1 or H5Tcommit2 on a file with read only access would cause an
assertion failure.  Added a check to H5T_commit_named to return a failure in
this case.

Tested: Fedora 11 (very minor change)
2009-10-27 16:08:58 -05:00
Allen Byrne
312d3d4b2e [svn-r17753] Remove .NET references from windows text files and batch files 2009-10-27 16:04:33 -05:00
Allen Byrne
5fd0573836 [svn-r17743] Added new file to project files 2009-10-26 09:08:37 -05:00
Quincey Koziol
5345a51120 [svn-r17741] Description:
Bring r17740 from trunk to 1.8 branch:

	Refactor v2 B-tree code to take creation parameters to H5B2_create() as
a struct (instead of individual arguments), call the client's class "cls"
instead of "type" internally, and add client class name to client class struct.

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.6.1 (amazon) in debug mode
        Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-10-24 14:50:51 -05:00
Quincey Koziol
7a68924d3b [svn-r17739] Description:
Bring r17737 from trunk to 1.8 branch:

	Fix error in dataset's chunk index v1 B-tree debugging code to correctly
pass userdata down to B-tree cache load routine.

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.6.1 (amazon) in debug mode
        Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-10-23 15:14:48 -05:00
Quincey Koziol
663919aa50 [svn-r17738] Description:
Bring revisions 17649, 17657 and 17658 from trunk to 1.8 branch:

	17649: Refactor v2 B-trees to pin the B-tree header in the cache instead
		of using separate reference counted data structure.

	17657: Refactor the v2 B-tree code to use an open & close call
		internally, in preparation for making those part of the library
		private APIs for dealing with v2 B-trees.

	17658: Rename 'H5B2_t' -> 'H5B2_hdr_t' and 'bt2' -> 'hdr' in preparation
		for make v2 B-tree open/close routines library private (instead
		of static).

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.6.1 (amazon) in debug mode
        Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-10-23 15:11:11 -05:00
Binh-Minh Ribler
7fcd1375d8 [svn-r17735] Description:
Added information about changes in C++ API
2009-10-23 09:05:33 -05:00
Allen Byrne
53dc352e9a [svn-r17733] Correct batch file typo 2009-10-23 09:03:38 -05:00
Binh-Minh Ribler
5458aba603 [svn-r17729] Description:
Added information about the changes in C++ API.
2009-10-23 08:05:20 -05:00
Allen Byrne
5e4ca64616 [svn-r17727] Updated the errorlevel checking for better error handling in the windows batch files. 2009-10-22 16:24:15 -05:00
Albert Cheng
5f87e53d04 [svn-r17717] Cosmetic change to use exit(EXIT_FAILURE) instead of exit(1).
Tested: jam-pp.
2009-10-21 13:59:17 -05:00
Albert Cheng
651b125bbd [svn-r17714] Add the following patch
===
The following patch to h5copy.c on or near line 173 makes the
tool substantially more useful...
     *flag = (*flag) | fla;
Because the command-line option parsing permits multiple '-f' arguments,
this will have the effect of or'ing the flags together so one can do
someting like....

~/tmp/hdf5-1.8.1/tools/h5copy/h5copy -i multi_ucd3d.h5 -s block5 -o gorfo -d foo
 -f shallow -f soft

Mark C. Miller, Lawrence Livermore National Laboratory
email: mailto:miller86@llnl.gov
===

Also fixed to exit failure if no command option is given.


Tested: Jam
2009-10-21 13:18:45 -05:00
Elena Pourmal
c1219b534b [svn-r17709] Maintenance: Changed version number to 1.8.4-snap0
Updated RELEASE.txt and HISTORY.txt file accordingly.
2009-10-21 08:29:15 -05:00
Albert Cheng
ce5e8b2a39 [svn-r17704] Bug fix: (1192)
Changed exit(1) to exit(EXIT_FAILURE) and exit(0) to exit(EXIT_SUCCESS) for
better coding.

Tested: jam.
2009-10-20 19:34:42 -05:00
Albert Cheng
aa46073801 [svn-r17701] Bug fix: (1192)
Comment says Error exit code is -1 but actual code use 1.
Changed it to EXIT_FAILURE (1) and exit(0) to exit(EXIT_SUCCESS) for
better coding.

Tested: jam.
2009-10-20 19:04:56 -05:00
Albert Cheng
cdff348e48 [svn-r17698] Bug fix: (1192)
Error exit code of -1 is illegal (exit code is unsigned).
Changed it to EXIT_FAILURE (1).
Also changed exit(0) to exit(EXIT_SUCCESS) for better coding.

Tested: jam.
2009-10-20 18:46:38 -05:00
Allen Byrne
f6377589f7 [svn-r17696] added new tlinks.cpp files to windows project files.
Tested: windows
2009-10-20 16:16:08 -05:00
Binh-Minh Ribler
cdf49b6472 [svn-r17695] Purpose: Code improvement
Description:
    Fixed CommonFG::getComment and CommonFG::getLinkval to provide
    default values for buffer size to improve usability.

    Added test file tlinks.cpp, which only contains test for getLinkval
    and will expand when C++ wrappers for H5L functions are implemented.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
2009-10-20 14:59:43 -05:00
Albert Cheng
e91af4bdbd [svn-r17694] Removed the erroneous test of using v16 API.
The error started out as an erroneous test of using v16 API via
source code. (See bug 1264).  It was implemented as:

#include "hdf5.h"
#define H5_USE_16_API

That was incorrect and generated warnings in Linux but error in AIX
for redefining macro H5_USE_16_API.

I corrected it yesterday to pass AIX by moving H5_USE_16_API up as:

#define H5_USE_16_API
#include "hdf5.h"

This is the proper way to turn on v16API and it passes all normal
tests.  I knew it would not work if somehow v16API is disabled
but hoping it can be fixed later.  Well, it broke last night
under --disable-deprecated-symbols.  

Removed the #define H5_USE_16_API and let Raymond fix it after
the release.
2009-10-20 14:43:00 -05:00
Allen Byrne
d173513315 [svn-r17687] Added new windows project files 2009-10-20 07:45:57 -05:00
Albert Cheng
5158a3f3e4 [svn-r17686] Bug fix:
#define H5_USE_16_API
was inserted AFTER #include <hdf5.>, too late was it to take
effect. Instead, it caused a macro redefinition, flagged as an error
by AIX.

Fixed by moving it before the <hdf5.h>.

Tested: Jam.
2009-10-20 00:07:50 -05:00
Scot Breitenfeld
9c6753a50e [svn-r17684] Description:
Added new fortran features and bug fixes.
2009-10-19 16:47:57 -05:00
Scot Breitenfeld
74665e4c13 [svn-r17683] Description:
Merged changes from trunk/fortran into the branch used:

svn merge -r 17517:17682 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Tested on: 

  amani: pgi compiler
         intel compiler (11.0)

  linew

  jam: gcc/gfortran (4.3)
2009-10-19 16:16:42 -05:00
Allen Byrne
0161c90b9b [svn-r17682] Added tcheckversion project files.
Tested: Windows
2009-10-19 12:34:52 -05:00
Larry Knox
b26426f5b3 [svn-r17677] Snapshot version 1.8 release 3 (snap13) 2009-10-19 00:41:33 -05:00
Mike McGreevy
1ea112f552 [svn-r17676] Purpose:
Configure Cleanup

Description:

    Make all AM_CFLAGS visible in CFLAGS during configure so all checks
    have full visibility of any set flags.

Tested:

    h5committest
2009-10-18 22:19:15 -05:00
Albert Cheng
f912cacabc [svn-r17672] Removed these two options from the fortran flags:
-qmoddir=. because -qmoddir defaults to current directory already.
   -static because it is not mentioned in "man xlf". Don't know it was a typo
    or just an obsoleted option.
Removing both of them produced no ill or visible effects.

Tested: Up of LLNL
2009-10-18 17:56:29 -05:00
Albert Cheng
f3986a1b59 [svn-r17669] Bug 1656 fix:
added a signal handler to the tcheck_version to intercept the abort signal from
H5check_version.  Some systems would prints extra messages and/or core dump if
the abort signal is not handled. This eliminates those unwanted side effect.

Tested: h5committested.
2009-10-17 23:59:16 -05:00
Albert Cheng
4083412033 [svn-r17666] Bug fix:
The file failed to compiled in AIX which flags syntax error.
Fixed by making the statements more explicitly compare with NULL
and added a missing trailing semi-colon.

Tested:
Tested in AIX (Up at LLNL) only. The changes are trivial and should
be portable to all platform.s
2009-10-17 17:44:41 -05:00
Larry Knox
1825d962df [svn-r17665] Remove -D_POSIX_SOURCE from CPPFLAGS in h5cc. This flag breaks netcdf4 when compiling with h5cc and is not missed by hdf5-examples or hdfeos5.
Tested:  jam.
2009-10-17 15:46:19 -05:00
Mike McGreevy
11155cf5c3 [svn-r17664] Purpose:
configure cleanup

Description

    1. Removed check that disables shared libraries when pgcc is used. Apparently
       they previously did not work with libtool 1.5.14 and on mir, neither of
       which is in use anymore. Testing on jam and amani appear fine, so this
       check is unnecessary.

    2. Removed check that disables shared C++ libraries when -xarch is used to
       enable 64 bit mode. We now use m64 flag to build 64 bit binaries, so 
       we shouldn't explicitly disable shared C++ libraries if -xarch is 
       discovered.

    3. Removed old configure output summary section from configure.in, since
       we now use the libhdf5.settings file.

    4. Updated powerpc-ibm-aix5.x config file to once again put c99 flag into
       H5_CFLAGS (and thus NOT get into h5cc), as decided in our dev meeting.

Tested:

    h5committest
    full build with pgcc on jam / amani
2009-10-16 15:21:12 -05:00
Larry Knox
26b0d9bde8 [svn-r17661] Add option to specify version for documentation.
Previously added to release in hdfdts, but release script should be part of source code.

Tested:  jam.
2009-10-16 14:07:19 -05:00
Albert Cheng
a861d4914b [svn-r17660] Changed the default fortran compilers from xlf and mpxlf_r to
xlf90 and mpxlf90_r respectively. The fortran 90 compilers support
free format source files. This allows the removal of -k so that
the default compiler command is cleaner.

Tested: AIX Up at LLNL.
(Note: mpxlf90_r does not work but this could have been an undetected
old problem.)
2009-10-15 19:17:44 -05:00
Larry Knox
62521fcb96 [svn-r17656] Added h5_make_local_copy function to address bug 1630, and refactored tests that were discovered to copy data files to avoid writing to data files checked into svn to use the new function.
Tested on amani, jam, and linew with h5committest and on jam with a read only mount of source files on pegdub.
2009-10-15 17:14:10 -05:00
Mike McGreevy
148828d46a [svn-r17655] Purpose:
Configure cache-val cleanup

Description:

    Corrected some misnamed cache values in configure / config files.

Tested:

    h5committest
2009-10-15 16:53:23 -05:00
Elena Pourmal
22e4a9b874 [svn-r17652] Maintenance: fixed a silly typo.
platforms tested: linew
2009-10-15 15:12:05 -05:00
Elena Pourmal
4486bc35bc [svn-r17650] Maintenance: Brought changes back from trunk
Platforms tested: linew (trivial change)
2009-10-15 13:45:17 -05:00
Elena Pourmal
94cb1c465b [svn-r17648] Maintenance: Configure didn't cleanup Fortran module file; fixed.
Platforms tested: jam (trivial change)
Note: Most of the Fortran compilers create module files with "mod" extension.
In the past, I believe,  there were systems (Cray?) that used different 
extensions. We should add those to the current fix when we find them.
2009-10-15 13:13:55 -05:00
Mike McGreevy
dd4360dccf [svn-r17645] Purpose:
Merge from Trunk

Description:

    Merging all of my CFLAGS-related changes from trunk to 1.8

    This includes revision #s: 17616, 17625, 17627, 17639, and 17643.

Tested:

    h5committest and some additional checks on our FreeBSD as well 
    as NCSA's machines.
2009-10-15 12:08:41 -05:00
Quincey Koziol
2a2a49f422 [svn-r17638] Description:
Bring r17624 from trunk to 1.8 branch:

	Don't allow reads to change or add to the metadata accumulator, since
they might be speculative and could bring raw data into the metadata
accumulator.

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.6.1 (amazon) in debug mode
       Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
               in production mode
2009-10-13 10:28:42 -05:00
Elena Pourmal
eb8838be0b [svn-r17637] Maintenance: Brought changes back from the trunk.
Platforms tested: pahra with ifort, g95 and gfortran.
2009-10-12 23:58:27 -05:00
Albert Cheng
5237ffce52 [svn-r17633] Bug 1192:
Added EXIT_SUCEESS and EXIT_FAILURE macro values test.

Tested:
h5committested.
2009-10-12 22:18:55 -05:00
Allen Byrne
d3aa5c967e [svn-r17632] Removed vnet assignments and allow default /vs8 and /ivf91 on command line.
Tested: windows
2009-10-12 15:27:04 -05:00
Peter Cao
ceddabad65 [svn-r17620] Add comments about h5diff changes 2009-10-08 14:47:25 -05:00
Albert Cheng
6f6a2c726d [svn-r17614] Updated with H5Pget_preserve fix information. 2009-10-08 09:10:15 -05:00
Albert Cheng
be6691b33d [svn-r17610] Bug fix (ID 1628):
There was a typo in the H5Pget_preserve that it was returning the wrong value.
Fixed. Also added a test in test/cmpd_dset.c to verify the correctness of
H5Pset_preserve and H5Pget_preserve.

Tested:
h5committest plus jam serial.
2009-10-07 19:17:11 -05:00
Albert Cheng
de76999134 [svn-r17607] ode Cleanup:
TFLOPS machine has retired long ago. Removed all code specific for its
support.

Test:
h5committested.
2009-10-07 00:31:49 -05:00
Quincey Koziol
190e10b63d [svn-r17605] Description:
Bring r17604 from trunk to 1.8 branch:

	Correctly invoke generic property list class callbacks all the way to
the root of the class hierarchy.

Tested on:
       FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
	(h5committested on trunk)
2009-10-06 22:18:59 -05:00
Albert Cheng
98658b074e [svn-r17602] Bug fix:
The ph5diff tests printout incorrectly reporting they are running
h5diff when it actually is running ph5diff.
Fixed.

Tested: Jam (parallel), linew (serial)
No H5committest since it is a shell script and Jam tests both
serial and parallel h5diff for Linux while Linew tests Big
endian platform.
2009-10-06 17:05:15 -05:00
Quincey Koziol
ba0858ab7a [svn-r17600] Description:
Bring r17599 from trunk to 1.8 branch:

	Minor code cleanups, based on cleanups in the compress_group_fheap
branch.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-10-06 14:20:59 -05:00
Albert Cheng
b733be9eec [svn-r17593] Bug fix:
Release would leave behind an Makefile even if it did not exist before.

Fixed by restoring only the pre-existed Makefile.

Tested: Jam.
2009-10-05 19:08:34 -05:00
Binh-Minh Ribler
a7cf6ea11a [svn-r17588] Purpose:
Fixed bugzilla #1061
Description:
    Added a check for NULL before accessing a pointer
    Also, removed a few warnings about returning values
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-10-04 00:27:26 -05:00
Neil Fortner
c26ed138a6 [svn-r17586] Purpose: Fix bug 1597
Description:
When copying a dataset  using a vlen inside a compound, the various dataset
copying callbacks would allocate a background buffer but would not use it when
converting from disk to memory, only memory to disk.  This caused an assertion
failure as compounds always need a background buffer.  These callbacks have
been modified to use the background buffer for both conversions.

Tested: jam, linew, smirom (h5committest)
2009-10-02 15:54:51 -05:00
Albert Cheng
e8e9b163c3 [svn-r17579] added testlibinfo.sh testcheck_version.sh to be distcleaned.
Test: Jam.
2009-10-01 16:51:57 -05:00
Albert Cheng
7a607d519a [svn-r17577] Simple improvement to clean up go during "make check-clean"
and removed the redundant cleaning of Makefile.

Tested: jam parallel.
2009-10-01 16:45:56 -05:00
Quincey Koziol
47c9464d5d [svn-r17574] Description:
Bring r17573 from trunk to 1.8 branch:

	Fix several errors in code, which was not compiling... :-(

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-10-01 15:09:08 -05:00
Mike McGreevy
dbb2eadcaa [svn-r17572] Purpose:
Makefile Bug Fix

Description:

    Added $(EXEEXT) extension to H5detect when it's executed to generate
    H5Tinit.c so it works correctly on platforms that require the full
    extension when running executables.

Tested:

    h5committest, mingw, and user-verified (via submitted patch).
2009-10-01 14:52:37 -05:00
Mike McGreevy
11f088a44c [svn-r17568] Purpose:
Configure Fix

Description:

    Modified configure to set FC and CXX to "no" when fortran and c++ are
    not being compiled, respectively. This will prevent configure from running
    some checks on these compilers when they are not being used.

    This fixes a problem that was occuring when FC and/or CXX are set to
    a nonexistant or invalid compiler. Even if the languages were disabled,
    a libtool test would fail, thus preventing libtool from properly linking
    any libraries, yet configure would not flag an error message due to this
    because the languages were disabled.

Tested:

    - h5committest (jam, smirom, linew)
    - manually eyeballed configure output and logfile.
2009-10-01 12:06:48 -05:00
Allen Byrne
fbf7f470e2 [svn-r17565] Fix for Bug 1562. H5DS.c checked for other locations which need to account for platform dependent types in dealing with ds_list_t. Added generator program for test files of LE and BE dimension scales.
Tested: local linux, h5committest
2009-10-01 08:55:43 -05:00
Albert Cheng
d495a52fdd [svn-r17564] Fixed a syntax error that generates a file named 0.
Tested:
Jam as it is simple shell script change.
2009-09-30 22:46:05 -05:00
Allen Byrne
d98c4cb0e5 [svn-r17561] Fixed srcdir problem. Other fixes after complete testing.
Tested: h5committest - just smirom
2009-09-30 16:28:13 -05:00
Quincey Koziol
8746367121 [svn-r17556] Description:
Correct compile warnings and rename fiels to match the rest of the
test files in this directory.

	Note: this is currently failing for srcdir builds!

Tested on:
	FreeBSD/32 6.3 (duty)
2009-09-29 17:02:25 -05:00
Quincey Koziol
e3101ecc46 [svn-r17555] Description:
Bring r17553 from trunk to 1.8 branch:

	Bring general fixes/improvements from file_free_space branch back to
trunk.

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/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 production 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
2009-09-29 16:53:19 -05:00
Allen Byrne
89404acc45 [svn-r17554] Fix for Bug 1562. H5DSis_attached needed to account for platform dependent types. Added test and test files for LE and BE dimension scales. Reworked part of test_ds file as part of debug.
Added missing H5Tclose in region reference routines.

Tested: local linux, smirom, linew
2009-09-29 15:18:22 -05:00
Albert Cheng
0ead3e8873 [svn-r17548] ------------------------------------------------------------------------
r17543 | acheng | 2009-09-28 23:43:22 -0500 (Mon, 28 Sep 2009) | 8 lines

New test: (Bug ID 1656):
Add new tests (tcheck_version, testcheck_version.sh) to verify H5check_version()
does issue warnings and abort accordingly.
Changed H5check_version() to suppress the warning message totally if
$HDF5_DISABLE_VERSION_CHECK is 2 or higher. (Old behavior treated 3 or higher
the same as 1, that is to print a warning and allows the program to continue.

Tests:
H5committed tested plus jam serial tested.
2009-09-29 11:45:07 -05:00
Larry Knox
0fa14048c2 [svn-r17540] Snapshot version 1.8 release 3 (snap12) 2009-09-27 17:06:09 -05:00
Neil Fortner
858c8af18f [svn-r17536] Purpose: Fix bug 1620
Description:
H5Ppublic.h listed H5Pget_filter_by_id1 and H5Pget_filter_by_id2 as returning
H5Z_filter_t, when in fact they return herr_t.  The header file has been
corrected to indicate that they return herr_t.

Tested: jam
2009-09-25 14:15:58 -05:00
Neil Fortner
ca0268116e [svn-r17533] Add note to RELEASE.txt for changes in r17531 2009-09-25 14:06:52 -05:00
Neil Fortner
a2faf5621f [svn-r17531] Purpose: Fix bug 1555
Description:
At several places in H5Pint.c properties were being compared using memcmp, not
using the registered "cmp" callback.  This could cause memory checkers to
report uninitialized memory errors, and could conceivably cause runtime errors
if memcmp reported false equality (for example if a value pointed to by the
property changed).

The code has been changed to always use the cmp callback.  Tests have been added that check this in all the places that previously used memcmp.

Tested: jam, linew, smirom (h5committest)
2009-09-25 13:11:40 -05:00
Quincey Koziol
51d3e9b173 [svn-r17527] Description:
Bring r17524 from trunk to 1.8 branch:

    Switch to using system call wrapper macros instead of "raw" system calls.

Tested on:
    Mac OS X/32 10.5.8 (amazon) w/debug & production
    (too minor to require h5committest)
2009-09-24 18:30:08 -05:00
Quincey Koziol
9726d77e95 [svn-r17526] Description:
Add backward compatibility test to make certain that the 1.8 library
handles encountering a file with a fixed array chunk index gracefully.

Tested on:
        FreeBSD/32 6.3 (duty) w/production
        (too minor to require h5committest)
2009-09-24 18:26:23 -05:00
Scot Breitenfeld
a52d213b55 [svn-r17519] Description:
Merged changes in the trunk/fortran to 1.8.

svn merge -r 17485:17517 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Brings bugfixes into 1.8 for:

Bug [1471] -  H5Tset_order_f missing constant option H5T_ORDER_NONE


Tested: smirom (ifort)
        smirom (pgi)
2009-09-24 15:43:03 -05:00
Raymond Lu
73f24a8ed0 [svn-r17517] In the function test_rw_noupdate, I added a test with the system functions to make
sure the stat function behaves as we expected.  This test is skipped on some system because 
the modification time from stat is the same as the last access time (We know OpenVMS behaves 
in this way).

Tested on jam.  I've tested the same change for the trunk on jam, smirom, and linew.  
My account for OpenVMS expired.  I'll test it once I have it back.
2009-09-24 14:24:48 -05:00
Larry Knox
e46380bfb6 [svn-r17509] Move misplaced ')' after make uninstall command so 'du -ks' command is run in test directory instead of running in snapshot directory. Snapshot directory has many more subdirectories and is often remote, increasing test running time and reporting incorrect disk usage.
Tested on smirom in hdfdts version.
2009-09-22 14:40:13 -05:00
Albert Cheng
40d2c29786 [svn-r17504] Bug fix:
Test failed with libhdf5.so not found in MacOS which uses a different
suffix (*.dylib) for shared lib.

Solution:
Added code to setup shared lib file suffix according to OS types.

Tested:
Tejeda, jam, linew.
2009-09-22 11:17:55 -05:00
Larry Knox
bb660b670b [svn-r17501] Snapshot version 1.8 release 3 (snap11) 2009-09-20 16:02:59 -05:00
Albert Cheng
ef2aa6be0b [svn-r17500] Bug fix and improvement.
Description:
Build failed when embedded-info is not enabled. Fixed.
testlibinfo.sh output was ugly, did not prepare the case of embedded-info
not enabled. Fixed.  Also changed NOT to test test binary even if static-exec
is enabled.

Tested:
jam (with and without embedded-info enabled).  Did not test in other
platforms since these were script changes that are platform independent.
2009-09-19 18:55:44 -05:00
Albert Cheng
3a83be48fb [svn-r17499] Purpose:
Stage 2 implementation of embedded library information feature.

H5.c: added code to print the embedded library information when there is
a library versions mis-match occurs. This ensures the library information
string is included in the executable.
Also modifies the code so that the Library mismatch warning string is
included only once in the executable.

H5private.h:
Added a global reference to the libinfo string variable to prepare
for possible stage 3 implementation of a public API.

test/testlibinfo.sh.in:
A new test added to verify the library information is indeed included
in the executables.

configure.in:
configure:
Added entry to auto-generate test/testlibinfo.sh.

H5detect.c:
Modified the libhdf5settings generating code to allow it to insert the
strings to a file other than stdout.  This maybe needed in stage 3
implementation.

MANIFEST:
updated with the newly added file of testlibinfo.sh.in.

Tested:
h5committest passed. Also passed jam in serial mode.
2009-09-18 13:34:37 -05:00
Allen Byrne
8664cb26c3 [svn-r17497] Corrected location of talign.c in project files.
Tested: Windows
2009-09-18 09:24:56 -05:00
Allen Byrne
2b1e09bc97 [svn-r17495] Updated to include new h5dump region reference tests. Also added missing display buffer resize test. 2009-09-17 15:59:34 -05:00
Allen Byrne
c44c9feb35 [svn-r17493] Bring changes from trunk to tools lib, h5dump and error handling.
Tested: h5committest, local linux
2009-09-17 15:37:09 -05:00
Raymond Lu
f4d69b78e5 [svn-r17490] Skip the test in the function test_rw_noupdate() for OpenVMS because the modification time
returned from the system function stat is the same as the last access time, making it 
impossible to test whether the file is modified.

Tested on jam for the same change in the trunk - simple change.
2009-09-17 14:27:18 -05:00
Scot Breitenfeld
c0bb2c979b [svn-r17486] Description:
Merged changes in the trunk/fortran to 1.8.

svn merge -r 17222:17485 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Brings bugfixes into 1.8 for:

Bug [1652] h5lget_info_by_idx_f missing/broken functionality
and 
Bug [1653] H5_LINK_* values defined in H5f90global.f90 are incorrect

Tested: jam (ifort)
        smirom (gfortran)
        linew (f90)
2009-09-17 12:03:42 -05:00
Raymond Lu
7dc63bdf27 [svn-r17481] Added H5Fsuper_cache.c to the make.com.
Not tested yet.
2009-09-15 13:57:14 -05:00
Larry Knox
8185461991 [svn-r17472] Snapshot version 1.8 release 3 (snap10) 2009-09-13 15:49:59 -05:00
Allen Byrne
4faad745e8 [svn-r17469] Update windows batch file to match the testh5diff.sh script change in rev 17467.
Tested: windows
2009-09-11 16:40:23 -05:00
Allen Byrne
885e92cba8 [svn-r17468] Corrected use of _Debug preprocessor value in release configurations of hdf5_f90cstubdll.vcproj
Removed extraneous configurations attached to files in libtest project files.
Corrected examples project file's debug configuration.
2009-09-11 15:44:41 -05:00
Peter Cao
aeec66cf49 [svn-r17467] " Use strict equality as default
"   Use "--use-system-epsilon" for system EPSILON
"   Use "-p" or "-d" for whatever user's choice of epsilon
"   Use "-p 0" or "-d 0" for strict equality (same as default)
2009-09-11 15:15:22 -05:00
Quincey Koziol
258d4b3835 [svn-r17464] Description:
Bring r17463 from trunk to 1.8 branch:

   Add another regression test for userblock+alignment usage, and correct
[another] issue with the combination. *sigh*

Tested on:
   FreeBSD/32 6.3 (duty) in debug mode
   (h5committested on trunk)
2009-09-11 08:27:04 -05:00
Quincey Koziol
0b3fbf9089 [svn-r17462] Description:
Bring r17461 from trunk to 1.8 branch:

Fix a few more problems when the user block is not aligned properly.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-09-10 14:33:12 -05:00
Quincey Koziol
d5c3626181 [svn-r17460] Description:
Bring r17459 from trunk to v1.8 branch:

	Correct bad interaction between non-zero userblocks with non-zero
alignments.

	Also add some additional range checking and tests for invalid userblock
sizes.

Tested on:
   FreeBSD/32 6.3 (duty) in debug mode
   (h5committested on trunk)
2009-09-08 16:16:31 -05:00
Larry Knox
ef70e57999 [svn-r17453] Snapshot version 1.8 release 3 (snap9) 2009-09-06 15:50:18 -05:00
Mike McGreevy
c7be102c70 [svn-r17448] Purpose:
Script Update

Description:

    Updated autoconf version in bin/chkconfigure script to 2.64
2009-09-03 13:40:20 -05:00
Mike McGreevy
3c0de7fb0c [svn-r17441] Purpose:
Merge from trunk

Description:

    Merged revisions 17228 and 17440 from trunk to 1.8

    Specifically, this brings support of --enable-static-exec flag into 1.8

Tested:

    Manually on jam, linew, smirom, liberty, plus h5committest.

    Currently, there is no automatic regression test that exists due to
    portability issues. Behavior is both different and undefined on certain
    systems (and while 'nm' command seems to exist on all machines, behavior
    is confirmed to be different on Mac, possibly others). Solution will be 
    to set up some sort of framework in daily tests to build statically, 
    remove shared paths, and verify executables can function.
2009-08-31 13:38:17 -05:00
Mike McGreevy
ee3ed7a67f [svn-r17439] Purpose:
Updating autotools

Description:

    Bring revisions 17345 and 17357 from trunk to 1.8, specifically:

    - 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).
    - bin/install-sh script replaced with new version as provided
      by automake.

Tested:

    - All issues on trunk were resolved, so only tested on jam and linew. Any
      other outliers should be caught by daily tests.
2009-08-31 10:28:10 -05:00
Larry Knox
4f9b08427b [svn-r17437] Snapshot version 1.8 release 3 (snap8) 2009-08-30 16:45:54 -05:00
Quincey Koziol
5d795c0260 [svn-r17433] Description:
Bring r17432 from trunk to 1.8 branch:

        Simplify dataspace cleanup code.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-27 14:46:11 -05:00
Quincey Koziol
39641369fe [svn-r17431] Description:
Bring r17429 from trunk to 1.8 branch:

Remove unnecessary v2 B-tree 'retrieve' callback from v2 B-tree clients.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-27 12:03:12 -05:00
Elena Pourmal
0595d6b912 [svn-r17419] Maintenance: Restored the content of the file. Checked that file
is modified correctly by bin/h5vers and bin/release scripts.
2009-08-25 11:32:22 -05:00
Quincey Koziol
b6494f0fc9 [svn-r17415] Description:
Bring r17408, 17411, 17412, 17413 & 17414 from trunk back to 1.8 branch:

r17408:
	Move flush operation on mounted file hierarchy into H5Fmount module.

r17411:
	Make H5AC_flush just flush the cache and make H5AC_dest perform the
proper parallel synchronization before destroying the cache.  Also, further
discriminate between 'closing' and 'non-closing' actions in H5F_flush.

r17412:
	Seperate 'flush' functionality from 'destroy' functionality at the
H5F level also.

r17413:
	Remove vestigial intermediate routine for flushing file and move it
into API routine.  Also, remove private, unused (now) 'H5F_FLUSH_DOWN' symbol
from public header file.

r17414:
	Flush the core VFD's buffer before closing the file, also flush the
metadata accumulator before reseting it.  Write the driver info message out
in the superblock flush routine more directly, instead of using wrapper
routine, since the wrapper routine won't work when the superblock is being
shutdown.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-24 14:09:36 -05:00
Larry Knox
81e3eef99a [svn-r17410] Snapshot version 1.8 release 3 (snap7) 2009-08-23 18:37:12 -05:00
Raymond Lu
b328dbbc31 [svn-r17406] I added a condition check for the conversion from unsigned to float. When the configure
detects the conversion working, a macro is set.  If there's problem with this conversion like
Pathscale compiler, skip the test.

Tested on jam.  Need to verify it on pathscale machine.
2009-08-21 14:00:38 -05:00
Quincey Koziol
d96910fe93 [svn-r17404] Description:
Bring r17402 & r17403 from trunk to 1.8 branch:

r17402:
    Switch from using a 'flags' parameter to the flush routine(s), to just
using a single 'closing' boolean parameter, since that's all we're doing with
the flags anyway and this makes things more obvious.

r17403:
    Eliminate 'closing' flag to dataset flush routine, since all cached
dataset information has already been flushed when a file is closed and the
datasets themselves will be closed (and the dataset caches destroyed).

    Skip calling more flush routines when the file is closing, in preparation
for eventual separation of the 'flush' concept from the 'shutdown the cache'
concept.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-21 06:33:44 -05:00
Quincey Koziol
9316a67a89 [svn-r17401] Description:
Bring r17400 from trunk to 1.8 branch:

	Refactor H5F_flush into two routines, one which handles the recursion/
iteration necessary to handle mounted files; and one which just handles the
flush operation for a single file.

	Also, remove H5F_FLUSH_INVALIDATE and switch all code to depend on
H5F_FLUSH_CLOSING.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-20 22:22:38 -05:00
Quincey Koziol
6ee76fffc7 [svn-r17399] Description:
Bring r17393 and r17398 from trunk to 1.8 branch:

Bring back more changes from the file free space branch to the trunk. (17393)

First set of changes to move VFD 'truncate' call out of H5F_flush and defer
it until the file is closed. (17398)

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-20 16:54:04 -05:00
Raymond Lu
d96442aae5 [svn-r17396] Added a comment to explain what "dst" and "ans" are when errors happen.
Tested on jam - simple change.
2009-08-20 14:36:21 -05:00
Quincey Koziol
5fc9bd9a5e [svn-r17395] Description:
Update release notes with note about fixing Bz#1473.
2009-08-20 14:18:07 -05:00
Quincey Koziol
7a91bd45d4 [svn-r17389] Description:
Bring r17388 from trunk to 1.8 branch:

	Correct error in freespace test which was relying on free space section
to be valid after the library had taken ownership of it (and therefore could
free it).

	Also correct some checking for return values of H5FS internal routines

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-19 21:05:49 -05:00
Raymond Lu
91e6f1e04d [svn-r17387] I added a detection for the correctness of converting from unsigned long to float in the
configure.in.  The Pathscale compiler on Sandia's Linux machine misinterprets the values of 
unsigned long as negative during the conversion to float, when the first bit of unsigned long
is on.  

Tested on jam.  Need to test it on Sandia's machine.
2009-08-19 16:57:12 -05:00
Raymond Lu
d1ee62c915 [svn-r17386] Added some comments.
No test needed.
2009-08-19 16:46:46 -05:00
Raymond Lu
24b03e3472 [svn-r17384] Corrected the path.
Not tested yet.
2009-08-19 16:36:23 -05:00
Allen Byrne
05fb67f75d [svn-r17383] Added UNC external links tests for windows only.
Tested: windows
2009-08-19 08:50:46 -05:00
Quincey Koziol
d5dfe34e0a [svn-r17380] Description:
Bring r17376 from trunk to 1.8 branch:

	Make similar change to windows VFD as sec2 VFD, when converting from
a family file to a single file.

	Tweak file sizes expected for parallel tests.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committested on trunk)
2009-08-18 17:29:03 -05:00
Allen Byrne
4b160dd890 [svn-r17378] Added new file to library project file, H5Fsuper_cache.c.
Cleaned project files of extraneous project info that should not have been used. The info was removed from individual files.

Tested: windows
2009-08-18 16:32:16 -05:00
Allen Byrne
05f36e2be8 [svn-r17375] Added Windows version of HDsleep macro needed for a test in test/tfile.c.
Tested: windows
2009-08-18 15:14:41 -05:00
Quincey Koziol
ebde7af78a [svn-r17374] Description:
Bring r17365 from trunk to 1.8 branch:

	Final merge of changes from sblock_mdc branch back to trunk.  The
superblock is now managed by the metadata cache.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-18 13:25:49 -05:00
Allen Byrne
339471fe0d [svn-r17370] Added h5dump/h5ls display buffer resize fixed in tools library. 2009-08-17 09:22:07 -05:00
Larry Knox
b1c3c4abe3 [svn-r17368] Snapshot version 1.8 release 3 (snap6) 2009-08-16 17:06:45 -05:00
Quincey Koziol
d47fb4b752 [svn-r17359] Description:
Bring r17336 from trunk to 1.8 branch:

	Bring more changes from the file_free_space branch into the trunk.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committested on trunk)
2009-08-14 10:42:11 -05:00
Quincey Koziol
92b37616d2 [svn-r17354] Description:
Bring r17351 from trunk to 1.8 branch:

	Clean up code (to align w/future sblock_mdc branch changes), tweak
tests for [slightly] easier debugging, fix memory leak when copying chunked
datasets with I/O filters, fix memory leak of free space section when it was
exactly the right size to use for extending an existing block in the file.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-13 14:17:29 -05:00
Raymond Lu
5e435bd8ac [svn-r17350] I added the simple test for h5jam and the build for h5repart.
Not tested yet.
2009-08-13 11:11:33 -05:00
Quincey Koziol
1db993a271 [svn-r17342] Description:
Bring r17341 from trunk to 1.8 branch:

        Tweaks to comments, to better align with changes on sblock_mdc branch

Tested on:
        Just eyeballed, only tweaks to comments
2009-08-11 23:10:00 -05:00
Larry Knox
6a72ec80e5 [svn-r17339] Snapshot version 1.8 release 3 (snap5) 2009-08-11 21:27:55 -05:00
Quincey Koziol
5f9e36528c [svn-r17332] Description:
Bring r17331 from trunk to 1.8 branch:

	Bring back more changes from file free space branch.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-11 15:43:22 -05:00
Albert Cheng
37cea8f1b6 [svn-r17327] Added the recognization of PathScale compilers. Also added the known
problem of PathScale MPI failure when accessing a Panasas file system.
2009-08-11 15:13:01 -05:00
Quincey Koziol
35fc6fe082 [svn-r17325] Description:
Bring r17324 from trunk to 1.8 branch:

	Bring more improvements/changes back from file_free_space branch

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-11 12:28:42 -05:00
Quincey Koziol
445fec27e1 [svn-r17320] Description:
Bring r17319 from trunk to 1.8 branch:

	Bring more superblock manipulation & aggregator changes from file free
space branch.

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
	(h5committest performed on trunk)
2009-08-11 08:03:13 -05:00
Albert Cheng
5aa72127e6 [svn-r17317] Did some code cleanup.
t_file.c: replace the old variable, color, with a more meaningfule name of
    is_old.
t_mpi.c: use the official mpi_file_delete, instead of remove, to delete a file
    in MPI environment.

Tested:
Only jam in parallel as changes are trivial.
2009-08-11 05:34:58 -05:00
Quincey Koziol
908ce6d721 [svn-r17314] Description:
Bring r17313 from trunk to 1.8 branch:
	Bring back various minor code cleanups from the file free space branch

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 (kagiso) w/PGI compilers, 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 production 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
2009-08-10 13:02:57 -05:00
Quincey Koziol
db134c8627 [svn-r17303] Description:
Bring r17302 from trunk to 1.8 branch:

    Correct errors on machines (like Windows) that don't have C99 named
initializer support.

Tested on:
    Mac OS X/32 10.5.7 (duty)
    Windows build (by Allen)
2009-08-04 17:56:24 -05:00
Allen Byrne
0a2d67ebdf [svn-r17298] Specified HDTarray_create and HDCreate as HDTarray_create2 and HDCreate2 in gent_array8 function as was done in other gent_arrayX functions. Fixes 1.6 compatibility mode argument errors.
Tested: linux
2009-08-04 08:59:33 -05:00
Albert Cheng
ab23b45259 [svn-r17294] Updated for newly added files.
Tested by bin/chkmanifest.
2009-08-01 16:30:06 -05:00
Allen Byrne
1cbd7b4fd7 [svn-r17290] Added test targeted for bug 1520, which was fixed last week. The test generates an array datatype of ints larger than the display buffer. The bug was exposed when the buffer was reallocated.
Tested: linux
2009-07-31 15:11:51 -05:00
Allen Byrne
6a24df2bb9 [svn-r17288] Added the two infinity tests to the windows batch script to match the linux test script. 2009-07-31 13:27:18 -05:00
Quincey Koziol
3816a02c03 [svn-r17286] Description:
Bring r17284 from trunk to 1.8 branch:

    Remove unneccessary dest. layout information from chunked dataset copying
routine.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    h5committested on trunk
2009-07-31 00:09:11 -05:00
Quincey Koziol
92b1407a53 [svn-r17282] Description:
Bring r17281 from trunk to 1.8 branch:

    Further refactoring of the dataset layout information, to separate the
storage information from the layout info.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    h5committested on trunk
2009-07-30 22:36:04 -05:00
Quincey Koziol
d96e6789c0 [svn-r17277] Description:
Bring r17275 and r17276 from trunk to 1.8 branch.

Tested on:
    Mac OS X/32 10.5.7 (amazon) w/debug & production
    (too minor to require h5committest)
2009-07-30 13:50:14 -05:00
Quincey Koziol
aaa84b4542 [svn-r17274] Description:
Bring r17272 from trunk to 1.8 branch:

    Finish pushing contiguous storage size from 'layout' into 'storage"
data structure.

Tested on:
    Mac OS X/32 10.5.7 (amazon) w/debug & production
    Too minor to require h5committest
2009-07-29 22:48:44 -05:00
Quincey Koziol
31a7cd56bf [svn-r17271] Description:
Bring r17269 from trunk to 1.8 branch:

    Refactor how serialized size of layout message is computed, slightly.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    FreeBSD/32 6.3 (duty) debug
    Too minor to require h5committest
2009-07-29 21:57:12 -05:00
Quincey Koziol
981ba55190 [svn-r17266] Description:
Clean up various compiler warnings from IRIX64 build

Tested on:
    Mac OS X/32 (amazon) debug & production
    (yes, I know it's not an IRIX64 system :-)
    Too minor to require h5committest
2009-07-29 19:17:17 -05:00
Quincey Koziol
03d1221bd8 [svn-r17265] Description:
Bring r17264 from trunk to 1.8 branch:

	Refine how we store the chunk index address in the layout storage
structure.

Tested on:
        FreeBSD/32 6.3 (duty) debug
        Mac OS X/32 10.5.7 (amazon) debug & production
        Too minor to require h5committest
2009-07-29 18:38:26 -05:00
Quincey Koziol
ded93bd0c4 [svn-r17262] Description:
Bring r17261 from trunk to 1.8 branch:

	Refactoring dataset layout information to segregate the constant items
from the variable items (at least from a storage standpoint).

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest performed on trunk)
2009-07-29 16:46:32 -05:00
Peter Cao
4dd601ef37 [svn-r17260] add test cases for h5diff 2009-07-29 11:33:23 -05:00
Allen Byrne
c0f91e15c5 [svn-r17258] Added new file, H5Dlayout.c to project files.
Tested XP32 VS2005
2009-07-28 16:40:31 -05:00
Peter Cao
3bbdfcd5f7 [svn-r17255] Fixed Bug 1563 - h5diff and Infinity
Added test cases.
2009-07-28 15:08:09 -05:00
Binh-Minh Ribler
0e50d368cd [svn-r17253] Description:
Fixed typos only.

Platforms tested:
    Linux/32 2.6 (jam)
2009-07-28 11:08:37 -05:00
Raymond Lu
c36ee92005 [svn-r17251] Added H5Dlayout.c to the source and updated the test script file for h5import.
Not tested yet.
2009-07-28 10:56:13 -05:00
Quincey Koziol
902de51188 [svn-r17244] Description:
Bring r17243 from trunk to 1.8 branch:

	Refactor how the layout message is created/written/read in the
dataset's object header.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(change h5committested on trunk)
2009-07-27 17:22:39 -05:00
Binh-Minh Ribler
0fb5c9b678 [svn-r17239] Purpose: Fix bug and improve readability
Description:
    - Revised DataSet::write to pass in correct string buffer
    - Added member function DataSet::getInMemDataSize() to simplify
      getting the dataset's data size in memory.
    - Added private functions for reading fixed- and variable-len
      string data: p_read_fixed_len and p_read_variable_len.
    - Added tests to write/read array of strings to datasets.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-27 00:41:46 -05:00
Quincey Koziol
8c1762f8a6 [svn-r17231] Description:
Bring r17230 back from trunk to 1.8 branch:
       Various minor tuneups noticed in working on the revise_chunks branch.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug & production
    full testing done on trunk before bringing change back.
2009-07-23 16:57:52 -05:00
Raymond Lu
434a6d2f8b [svn-r17229] Disable a test as C script does. 2009-07-23 16:08:17 -05:00
Scot Breitenfeld
254eb548cc [svn-r17223] Merged the fortran trunk into the branch:
svn merge -r 17164:17222 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

tested: smirom (ifort, pgf90, gfortran, g95), linew
2009-07-22 10:28:49 -05:00
Binh-Minh Ribler
b88498636f [svn-r17219] Purpose: Improve readability
Description:
    Divided Attribute::read into specific private functions for fixed-
    and variable-len string data: p_read_fixed_len and p_read_variable_len.

    Added test to write/read array of strings to attributes.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-21 23:12:48 -05:00
Binh-Minh Ribler
3cbb84471a [svn-r17218] Purpose: Improve readability
Description:
    Divided Attribute::read into specific private functions for fixed-
    and variable-len string data: p_read_fixed_len and p_read_variable_len.

    Added test to write/read array of strings to attributes.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-21 23:12:31 -05:00
Albert Cheng
eea0105a54 [svn-r17217] Bug fix (1468)
PathScale was mistaken as the Gcc compiler such that gcc flags were added
to it but PathScale did not honor many of them. (e.g. -Wvariadic-macros,
-Wold-style-definition, -Winit-self, -Wvariadic-macros, -Wmissing-include-dirs,
-Winit-self, -Wc++-compat)

Solution:
Added a pre-condition to detect pathScale compiler before Gcc is
accepted.

Tested:
Sandia Glory where PathScale compiler is available.
2009-07-21 19:06:47 -05:00
Allen Byrne
1bde0ccb95 [svn-r17212] The function h5tools_str_append() incorrectly used the trio of functions: va_start(), HDvsnprintf(), and va_end(). When the boundary of the string buffer was reached and resized, the HDvsnprintf() function recalled without the other two functions in the code loop. This usage exposed bug 1520 by a user.
Tested: linux
2009-07-21 14:45:34 -05:00
Neil Fortner
01c179093f [svn-r17208] Fixed a small bug in the fractal heap code involving filtered fractal heaps.
Tested: jam, linew, smirom (h5committest)
2009-07-21 14:22:17 -05:00
Albert Cheng
cf53b01cb9 [svn-r17200] Changed default Gnu fortran compiler from g95 to gfortran since
gfortran is more likely installed with gcc now.
2009-07-19 18:47:25 -05:00
Albert Cheng
a1b9964716 [svn-r17197] Changed default Gnu fortran compiler from g95 to gfortran since
gfortran is more likely installed with gcc now.

Tested:
jam and amani which covers both linux and linux64.
No h5committest because this is gnu compiler specific, usually
applicable to Linux.
2009-07-19 18:30:33 -05:00
Raymond Lu
5800d12b4e [svn-r17194] Enable h5copy test.
Not tested yet.
2009-07-16 11:14:22 -05:00
Albert Cheng
14adeb6772 [svn-r17186] The ret_value is a (H5A_t *) but FAIL was used. This typo caused a warning
from Linux gcc but resulted in error by AIX xlc compiler.

Solution:
Changed FAIL to NULL.

Tested:
Just compiling in the AIX system.
2009-07-14 19:22:06 -05:00
Raymond Lu
d678c5b596 [svn-r17185] Fixed a typo.
Not tested yet.
2009-07-14 16:39:45 -05:00
Raymond Lu
b9b20ad8f4 [svn-r17183] Fixed and updated the script files.
Not test yet.
2009-07-14 15:46:50 -05:00
Raymond Lu
20fa663053 [svn-r17181] Minor fix - The way that H5Tset_size checks whether the datatype is a string wasn't
correct.  I changed it to use the macro H5T_IS_STRING.

Tested on jam - simple change.
2009-07-14 11:32:20 -05:00
Raymond Lu
8f25819df5 [svn-r17180] In my last round of checkin (r17176), I forgot to clean up some code. I'm checking in
the fix now.

Tested on jam - simple change.
2009-07-14 10:54:25 -05:00
Raymond Lu
71d75b40ee [svn-r17179] I added a test of H5Tencode/decode for variable-length string type. This test is for
the bug fix of #1585 in last round of checkin.

Tested on jam.  I used h5committest for the same change in the trunk.
2009-07-13 14:08:00 -05:00
Raymond Lu
75800cf6b5 [svn-r17176] In H5Odtype.c, the decoding function used to mark the datatype as on disk. I changed it
to undefined and let the caller functions decide the location of the datatype.  For
H5Tdecode, it should mark the datatype as in memory.  For other callers like H5Dopen or
H5Aopen, they should makr it as on disk.

Tested it on jam, smirom, linew.
2009-07-13 10:39:05 -05:00
Larry Knox
b50178ea1a [svn-r17172] Add simple perl script supplied by user to check for duplicate entries in MANIFEST. Duplicate entries will be reported along with any other MANIFEST errors and cause exit value to be 1.
Tested on jam, linew, smirom, and tg-login2.
2009-07-09 11:44:47 -05:00
Scot Breitenfeld
0b861519c5 [svn-r17165] Description:
Removed extra space after !DEC$ to satisfy absoft compiler.

tested: smirom
2009-07-08 09:53:01 -05:00
Larry Knox
259a4bc92a [svn-r17158] Snapshot version 1.8 release 3 (snap4) 2009-07-05 23:30:23 -05:00
Quincey Koziol
27c6981c41 [svn-r17153] Description:
Bring r17152 from trunk to 1.8 branch:

    Clean up some minor formatting and misc. errors noticed while working on
fixed array code merge.

Tested on:
    Mac OS X/32 10.5.7 (amazon)
    Too minor to require h5committest
2009-07-02 19:33:15 -05:00
Quincey Koziol
856a80b949 [svn-r17150] Description:
Bring r17148:17149 from trunk into 1.8 branch:

   Refactor how chunked dataset information is computed, moving it earlier and
avoiding more recomputation.

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/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.7 (amazon) in debug mode
   Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
       in production mode
2009-07-02 18:38:38 -05:00
Quincey Koziol
b0df711c3c [svn-r17147] Description:
Bring r17146 from trunk to 1.8 branch:

        Bring a bunch of misc. improvements & tweaks from the revise_chunks
branch back to the trunk, so that future merges won't be so painful.

Tested on:
	FreeBSd/32 6.3 (duty)
	(h5committested on trunk)
2009-07-02 16:17:02 -05:00
Quincey Koziol
55a945c985 [svn-r17139] Description:
Bring r17138 from trunk into 1.8 branch:

    Disable use of temporary file space allocation when using a parallel VFD,
until we've made changes to broadcast the new address of the metadata when it
is relocated down into 'normal' file space.

Tested on:
    Mac OS X/32 10.5.8 (amazon)
    (h5committested on trunk)
2009-07-01 16:26:27 -05:00
Larry Knox
732e64b335 [svn-r17134] Snapshot version 1.8 release 3 (snap3) 2009-07-01 12:13:58 -05:00
Raymond Lu
2d0b2588f6 [svn-r17131] Corrected some typos. No test is needed. 2009-06-30 11:10:00 -05:00
Raymond Lu
2a6efe9e10 [svn-r17127] A revision from last round of checkin (r17124). H5Aopen_name has been deprecated. I
replaced it with H5Aopen in this round.  I also updated some hard-coded numbers with some
macros.

Tested on jam only.  I have tested the same change for the trunk.
2009-06-29 13:24:00 -05:00
Raymond Lu
c0f0e7c419 [svn-r17124] Bug fix #1513. Reading an empty attribute caused seg fault. The flag "initialized" in
the attribute structure wan't set correctly.  It caused some confusion in H5A_read.  This
flag was actually redundant because the library can alwasy check if the data buffer is
present.  To fix it, I removed the "initialized" flag in the attribute structure and let
H5A_read check the data buffer.

I tested it on jam only but have tested the same change for the trunk on jam, smirom, 
and linew.
2009-06-26 15:24:42 -05:00
Neil Fortner
4af1a11dcf [svn-r17121] Add bug number for yesterday's fix. 2009-06-26 14:53:55 -05:00
Albert Cheng
b10f530bdf [svn-r17114] Newer Solaris compiler uses -m64 inplace of -xarch=v9 which is deprecated.
Update the install instruction.

No test needed.
2009-06-26 07:52:13 -05:00
Elena Pourmal
a9733bd0e9 [svn-r17113] Maintenance: Removed duplicated entry from the MANIFEST file. 2009-06-25 16:21:27 -05:00
Neil Fortner
f5fddfb7c1 [svn-r17109] Purpose: Fix bug in H5Z_filter_info
Description:
Previously, when H5Z_filter_info was called for a filter that was not present,
it would succeed and return the information from one position past the end of
the pipeline, possibly causing a segfault.  This affected at least
H5Pget_fitler_by_id1/2, and possibly other API functions.  Fixed to properly
return failure.

Tested: jam, linew, smirom (h5committest)
2009-06-25 13:58:51 -05:00
Allen Byrne
c76a57f557 [svn-r17107] Added new windows build examples batch file 2009-06-25 07:37:09 -05:00
Allen Byrne
1da12c1410 [svn-r17102] Added missing Windows batch file. 2009-06-24 14:36:16 -05:00
Allen Byrne
96e548223d [svn-r17100] Corrected batch file to test C++ examples 2009-06-24 14:00:59 -05:00
Scot Breitenfeld
e9e393a494 [svn-r17086] Description:
Removed debugging print statements.
2009-06-18 14:55:13 -05:00
Quincey Koziol
b1b2c88b2c [svn-r17084] Description:
Bring r17038-17039,17045,17062 from trunk to 1.8 branch:

	Switch fractal heap direct & indirect blocks to use temp. space alloc.

	Improvements to metadata accumulator

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/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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-06-18 12:49:17 -05:00
Quincey Koziol
b6cfe32b73 [svn-r17083] Description:
Bring r17010,17017,17021-17022,17029-17031,17035 back from trunk:

	"temporary" file allocation space changes.

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/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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-06-18 12:20:50 -05:00
Larry Knox
79a41596f5 [svn-r17082] Disable hanging invalid files test. 2009-06-18 10:33:51 -05:00
Allen Byrne
c75dd8fadc [svn-r17078] Implemented nowrap option (Bug 811) equivalent to h5ls tool. Also updated usage output.
Tested: linux
2009-06-17 13:49:51 -05:00
Pedro Vicente Nunes
86fa22c385 [svn-r17077] merge 17076 from trunk
bug fix: h5repack was not applying a requested contiguous layout for a dataset with filters
added a test to the C program test (not to the script), that verifies the layout and filters

tested: linux
2009-06-17 13:42:23 -05:00
Pedro Vicente Nunes
93a6cd92d7 [svn-r17060] merge 17058 from trunk
added some "dummy" declarations for d_status
tested: linux
2009-06-16 15:44:14 -05:00
Allen Byrne
8be813993f [svn-r17057] Rev 17053 added new test to h5repack test script, which requires that the windows batch file be updated.
Tested: Windows XP32
2009-06-16 13:06:14 -05:00
Allen Byrne
eb668be994 [svn-r17055] Added missing windows vnet project files. 2009-06-16 07:51:43 -05:00
Pedro Vicente Nunes
a44e5df96e [svn-r17053] merge 17052 from trunk
Add a run to the h5repack shell script to read a family file
The file used for input is located in the common source tools for testfiles, in tools/testfiles
Modified the h5repack shell script to read files from this location (h5repack reads its input files from a dedicated testfiles location in h5repack/testfiles)
Changed the h5diff open file call to use h5tools_fopen, so that it can open all file drivers


Tested: linux
2009-06-15 14:25:04 -05:00
Scot Breitenfeld
6ce6f90de8 [svn-r17051] merge changes from the trunk into the branch
svn merge -r 16797:17050 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran


platforms tested: smirom: ifort, icc
2009-06-15 11:56:13 -05:00
Allen Byrne
2c6356db6e [svn-r17050] Added perf_serial project files to Windows vnet folder.
Tested: Windows XP32
2009-06-15 10:22:15 -05:00
Larry Knox
93e72bbde4 [svn-r17048] Snapshot version 1.8 release 3 (snap2) 2009-06-14 16:06:17 -05:00
Allen Byrne
214fce63a9 [svn-r17044] Corrected Windows solution files for branch
Tested: windows
2009-06-12 09:27:05 -05:00
Allen Byrne
da8917ffa3 [svn-r17043] Undo the addition of generated files, mistakenly added by lack of attention. 2009-06-12 08:34:44 -05:00
Allen Byrne
fae180790e [svn-r17042] Updated perf_serial test to work on windows. Bring back from trunk.
Tested:
Windows
2009-06-12 08:30:16 -05:00
Allen Byrne
170b1f6755 [svn-r17041] New perf_serial project files 2009-06-12 08:14:13 -05:00
Allen Byrne
5f7dc72173 [svn-r17037] perf_serial project files added and test added to performance batch file
Tested: XP32 VS2005
2009-06-11 15:53:55 -05:00
Allen Byrne
9f0bec79a2 [svn-r17036] Updated perf_serial test to work on windows. Bring back from trunk.
Tested:
Windows
2009-06-11 15:52:56 -05:00
Neil Fortner
bc2bd03a46 [svn-r17026] Purpose: fix bug 1593
Description:
When using H5T_copy on committed datatypes that are already open, H5T_copy would
properly use the already existing shared struct, but would still deep copy all
of the fields in that struct.  This would cause memory leaks, and in the case of
a compound containing a vlen (or reference), the change in size would cause the
size of the resulting type to be set to an incorrect value.  Changed H5T_copy to
properly avoid deep copies when using a reopened shared struct.

Tested: jam, linew, smirom (h5committest), purify on jam
2009-06-10 14:22:09 -05:00
Scot Breitenfeld
6615339560 [svn-r17023] Description:
Added debug statements in order to investigate intermittent failing of test on honest4 at NCSA, remove after debugging.
2009-06-10 11:03:42 -05:00
Quincey Koziol
7d5ef3e8ad [svn-r17020] Description:
Bring revision 17019 from trunk to 1.8 branch:

	Break out the configure check for fseeko & ftello from lseek64/fseek64/
ftruncate64, since the check for the latter routines is not a valid check for
the former routines.

Tested on:
	(h5committested on trunk)
2009-06-09 15:15:09 -05:00
Larry Knox
745c40b753 [svn-r17013] Snapshot version 1.8 release 3 (snap1) 2009-06-07 16:26:54 -05:00
Quincey Koziol
f4f0c14939 [svn-r17004] Description:
Bring r17002 from trunk to 1.8 branch:

        Rename H5O_protect/H5O_unprotect to be H5O_pin/H5O_unpin, since that's
    what that are actually doing.

        Add counter of the number of times the object header is pinned, to allow
    H5O_pin/H5O_unpin to be called reentrantly.

Tested on:
    Mac OS X/32 10.5.7 (amazon) w/debug & prod
    h5committest already run for trunk version of change
2009-06-04 10:31:50 -05:00
Pedro Vicente Nunes
af7d1c4cd4 [svn-r16999] merge 16991 from trunk
change messages of -c option 
tested: windows, linux
2009-06-03 08:57:17 -05:00
Larry Knox
95bd7eac47 [svn-r16993] Snapshot version 1.8 release 3 (snap0) 2009-06-01 12:53:19 -05:00
Quincey Koziol
6bd725cec3 [svn-r16987] Description:
Bring r16986 from trunk to 1.8 branch:
        Clean up formatting & error reporting.

Tested on:
    Mac OS X/32 10.5.7 (amazon)
    (h5committest done on trunk)
2009-05-27 13:30:22 -05:00
Quincey Koziol
4f4902d083 [svn-r16974] Description:
Bring r16973 back from trunk to 1.8 branch:

	 Refactor chunk cache entry information to remove some [actually] unused
fields.

Tested on:
	<tested on trunk>
2009-05-21 13:56:59 -05:00
Pedro Vicente Nunes
fa656be59d [svn-r16965] merge 16964 from trunk
bug fix: the phrase "Not comparable" was not being printed for the case of different classes
tested: windows, linux
2009-05-20 09:23:23 -05:00
Allen Byrne
1ad6816d15 [svn-r16953] corrected name of zlib in Section IV, part 3, step 2
Tested: windows
2009-05-15 10:20:24 -05:00
Pedro Vicente Nunes
0423a2ce6e [svn-r16948] merge 16947
#1522 (B1) h5ltread_dataset_string_f error with g95
ISSUE: h5ltread_dataset_string_f causes library assertion with g95. 
SOLUTION: convert the fortran string buffer to a C buffer with HD5f2cstring, and pass this string to the C function
TEST: added a test call in the fortran test lite program
DOCS: added the note in RELEASE.txt "- Lite: the h5ltread_dataset_string_f and h5ltget_attribute_string_f functions had memory problems with the g95 fortran compiler. (PVN - 5/13/2009) 1522
tested: linux g95, windows fortran intel 11
2009-05-13 14:29:07 -05:00
Pedro Vicente Nunes
8e0bce9dab [svn-r16946] merge 16945 from trunk
bug fix. call free on a string allocated by HD5f2cstring
tested: linux, windows
2009-05-13 11:46:21 -05:00
Mike McGreevy
58cda2617e [svn-r16939] Purpose:
Modifying default cache configuration, and adding an #ifdef to allow for a
    separate default configuration when parallel is enabled. This is being
    modified in order to address an observed performance problem with the
    current default configuration.

Description of Changes:

    - increasing maximum cache size from 16MB to 32MB
    - increasing maximum entry size from 10MB to 32MB
    - decreasing min_clean_fraction from 0.3 to 0.01 in serial case
    - increasing flash_multiple from 1.0 to 1.4 in serial case

Tested:

    jam
2009-05-12 17:07:41 -05:00
Albert Cheng
985b323bd4 [svn-r16929] Bug 948:
Skipped the test of
     TESTING $H5DIFF -v $SRCFILE9 $SRCFILE10
     TOOLTEST h5diff_100.txt -v $FILE9 $FILE10 
again because they still hanged.
Do not turn it back on until it is proven fixed.
Also, want to verify if this is the only tests that hang or
if other tests may hang or if any non-thg machines may hang.

Tested:
jam-pp since it is a simple shell-script change.
2009-05-08 10:03:27 -05:00
Raymond Lu
a1b11b8d47 [svn-r16922] Allow an error class to use other class's major or minor errors. Added a test for it, too.
Tested on jam - simple change. I've tested it for the trunk.
2009-05-05 13:57:43 -05:00
Quincey Koziol
548eec3070 [svn-r16920] Description:
Merge these trunk revisions which occurred during the 1.8.3 release code
freeze back to the 1.8 branch:

    From Quincey: 16845 16847 16849 16851 16858 16869 16897

    From Ray: 16859 16880

    From Allen: 16863

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/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.6 (amazon) in debug mode
    Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
2009-05-05 10:05:17 -05:00
Elena Pourmal
4ffc0b6acb [svn-r16917] Maintenance: Changed suffix in the version number to snap0. 2009-05-04 10:11:23 -05:00
Elena Pourmal
de44d9e363 [svn-r16916] Maintenance: Updated HISTORY-1_8.txt and RELEASE.txt files and
changed version to 1.8.0-post0.
	     Branch is open for check-ins now.
2009-05-04 09:45:37 -05:00
Elena Pourmal
e0e4a816e6 [svn-r16912] Maintenance: Checking in files created by the bin/release script before
tagging the rlease.
2009-05-04 09:20:30 -05:00
Larry Knox
46e76fa793 [svn-r16911] Updated Supported Configuration Features Summary 2009-05-02 15:08:41 -05:00
Raymond Lu
46b4f969e3 [svn-r16910] Update for the 1.8.3 release. 2009-05-01 16:57:56 -05:00
Raymond Lu
1641a4d208 [svn-r16909] I took out the 'install' command from build.com and enabled the 'copy' command for the
C, Fortran, and C++ examples.

Tested on OpenVMS.
2009-05-01 16:42:50 -05:00
Albert Cheng
f8428adce3 [svn-r16906] Updated with SNL and LLNL tested platforms information. 2009-05-01 12:45:56 -05:00
Larry Knox
d2b8738012 [svn-r16905] Update Platforms Tested and Supported Configuration Features Summary. 2009-05-01 11:51:02 -05:00
Raymond Lu
0662a78de6 [svn-r16904] There're 3 changes in this checkin:
1. I added 'install' command in end of build.com.
  2. I commented out the test for h5copy and h5import in build.com.  There're some 
     failures in the test.  I recall h5import has been having problem for some time.  
     h5copy test is new.  I need to verify with Elena.
  3. I commented out the copy command for *.com in the examples directory because they
     don't exist.

Tested on OpenVMS.
2009-05-01 11:20:41 -05:00
Albert Cheng
9c36eb7c88 [svn-r16903] updated with new feature of embedded libhdf5.settings and the known problem
of imposing -O0 on gcc v4.3 and v4.4.
2009-05-01 09:10:46 -05:00
Frank Baker
6f68d45ef1 [svn-r16894] Description:
Formatting pass.
2009-04-29 15:43:13 -05:00
Albert Cheng
235d4f439b [svn-r16893] Set version information to 1.8.3 to be ready for release.
Tested: h5committest plus jam serial test.
2009-04-29 15:08:52 -05:00
Christian Chilan
0b8356c806 [svn-r16887] Update to include modification to the parallel tests. 2009-04-29 01:45:27 -05:00
Larry Knox
0b43e7cac0 [svn-r16884] Update for 1.8.3 release. 2009-04-28 17:48:03 -05:00
Mike McGreevy
96e9cae136 [svn-r16870] Description:
Updating RELEASE.txt file.

Tested:

    None needed.
2009-04-28 12:04:32 -05:00
Elena Pourmal
beac92a9c4 [svn-r16866] Maintenance: Update file in preparation for the HDF5-1.8.3 release
Update information for Mac Intel 10.5.6.
2009-04-27 21:12:42 -05:00
Allen Byrne
0558c3a8b6 [svn-r16864] corrected include path of h5tools.h
Tested:
   XP32-VNET
2009-04-27 11:29:50 -05:00
Allen Byrne
853bfa46e2 [svn-r16857] Updated version to 1.8.3 2009-04-24 13:54:23 -05:00
Elena Pourmal
cd56e0f898 [svn-r16855] Maintenance: Changed version to hdf5-1.8.3-pre2 for further check-ins. 2009-04-23 22:28:44 -05:00
Elena Pourmal
bf151ed106 [svn-r16853] Maintenance: Changed version number to 1.8.3-pre1 and created a tar ball
for remote testing.
2009-04-23 22:24:30 -05:00
Mike McGreevy
f140eccaea [svn-r16843] Description:
Adding dependency to h5repack test script.

    h5repack.sh needs h5repacktst to run first.

Tested:

    Problem only appeared on Glory, but tested the dependence
    manually on jam by trying to run only the script and checking
    that it first ran the h5repacktst test program.
2009-04-22 16:54:49 -05:00
Albert Cheng
145782f915 [svn-r16838] Bug fix:
If the AR command has embedded shell separators such as the case of
"AR =  ar -X 64", $AR ends up as a blank.

Solution:
Put quotes around the command substitution string to protect against embedded
separators. Applied the same to both AR and RANLIB assignments.

Tested:
At Up (AIX 5.3) only because that was where I discovered the error
when AR is  ar -X 64
2009-04-22 14:49:22 -05:00
Albert Cheng
b9b28ce4cc [svn-r16830] Bug fix.
In Up (AIX system), the insert_libhdf5_settings() infinite looped because
it never found EOF.  Man getc in another system said:
   "If  the  integer  value returned by getc() is stored into a variable of
   type char and then compared against the integer constant EOF, the  com-
   parison may never succeed, because sign-extension of a variable of type
   char on widening to integer is implementation-defined."

Solution:
Changed inchar from type char to int fixed the problem.
Morale of the story: RTFM or HTCW (heed the compiler warnings).

Tested:
Up (AIX 5.3).
2009-04-21 18:29:12 -05:00
Frank Baker
abd99a6d51 [svn-r16827] Description:
Updated and restructured "Copyright Notice & License Terms" document 
    per new standard.
2009-04-21 18:09:30 -05:00
Binh-Minh Ribler
91e9a5d5c8 [svn-r16822] Description:
Added member function Attribute::getInMemDataSize() to simplify
    getting the attribute's data size in memory.  Used this new function
    in Attribute::read to get the fixed-len string attribute data.

    Added tests to tattr.cpp.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-04-21 15:57:26 -05:00
Neil Fortner
40df33dff7 [svn-r16818] Fix problem in H5Z.c with --disable-deprecated-symbols
Tested: jam (--disable-deprecated-symbols)
2009-04-21 10:45:20 -05:00
Albert Cheng
bdb33e7c98 [svn-r16813] New feature(Bug 230):
Embed the content of libhdf5.settings into the hdf5 executables so that an
"orphaned" executables can display (via the Unix strings command, for example)
the library settings used to build the executables.

This is a prototype implementation. Much improvement is needed.

configure.in:
    Added the --disable-embedded-libinfo option to disable this feature.
configure:
src/H5config.h.in:
    Generated by autotools like automake.
src/H5detect.c:
    Implement insert_libhdf5_settings() to insert the contents of
    libhdf5.settings into the library as an extern string variable so that it
    is included in all HDF5 executable.  Much improvement is needed.
fortran/src/Makefile.in:
    Auto-generated by bin/reconfigure. (i.e., I did make any changes to cause
    its direct regeneration).

Tested:
Jam serial, using default and --disable-embedded-libinfo, configure options.
2009-04-20 18:03:40 -05:00
Pedro Vicente Nunes
cd48d93298 [svn-r16811] merge 16810
added the words "Not comparable" in the not comparable messages
tested: linux
2009-04-20 16:06:54 -05:00
Neil Fortner
233fa9bee7 [svn-r16808] Purpose: Fix bug 1533
Description:
Previously, there was no versioning for H5Z_class_t.  This prevented applications
written for 1.6 using custom filters from being able to use the 1.8 library.
There is now an H5Z_class1_t and H5Z_class2_t to enable compatibility.  H5Zregister is
*not* versioned, it determines which version of the struct has been passed in by the
value of the first field (id or version, both are ints).

Tested: jam, linew, smirom (h5committest), jam (--with-default-api-version=v16)
2009-04-20 14:17:59 -05:00
Scott Wegner
7b47b79f2d [svn-r16805] Purpose: Add new h5repack tests to Windows
Description:
Three new tests were added to the h5repack test script in rev.16802.  This checkin brings those new tests to Windows as well.

Tested:
VS2005 on WinXP x64
2009-04-20 13:14:09 -05:00
Neil Fortner
90aea941c5 [svn-r16804] Purpose: Fix bug 1548
Description:
When writing data to a dataset, the data transform was performed after type conversion.
This caused an error if the file type was non-native.  This has been changed so data
transforms are always performed on the memory type.

Tested: jam, linew. smirom (h5committest)
2009-04-20 11:59:01 -05:00
Neil Fortner
4446e5da71 [svn-r16802] Purpose: Fix bug 1516
Description:
h5repack previously would not take named datatypes into consideration when copying
datasets and attributes.  This would cause extra anonymous datatypes in the target file
at best, and cause errors halfway through the repacking at worst.  h5repack should now
always handle named datatypes correctly.  Named datatypes are also now converted to the
native type when -n is given.

Tested: jam, linew, smirom (h5committest)
2009-04-20 11:48:14 -05:00
Scot Breitenfeld
f7a982a64e [svn-r16801] merge changes from the trunk into the branch
svn merge -r 16781:16797 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

fixes problems with H5D_chunch_cache_* variable lengths

platforms tested: smirom: ifort, pgf90
                  jam   : f95
2009-04-20 11:47:47 -05:00
Scot Breitenfeld
f95bf64c53 [svn-r16798] corrected typos in fortran API 2009-04-20 11:24:15 -05:00
Mike McGreevy
8339217374 [svn-r16793] Description:
- Updated bin/reconfigure to use latest version of automake (1.10.2). 
      Regenerated 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
2009-04-20 01:03:29 -05:00
Albert Cheng
d380fe5398 [svn-r16790] Bug Fix (Bug 1398):
For gcc v4.3 and v4.4, with production mode,
if -O3 is used, H5Tinit.c would fail to compile. Actually bad H5Tinit.c is
produced.

If -O (same as -O1) is used, H5Tinit.c compiled okay but test/dt_arith
would fail with:
Testing hard normalized long double -> signed char conversions        time: comm
and terminated abnormally

When -O0 (no optimizatio) is used, H5Tinit.c compilete okay and all tests
passed.

Solution:
Changed the config/gnu-flags to use -O0 for gcc v4.3 and 4.4 for production
flags  for now so that build and tests would work. Still need to investigate
if the error is due to Gcc optimization bug or our code errors.

Tested:
In liberty with gcc43 and gcc44. Also, tested in jam and smirom with
older versions of gcc.
There are no gcc 43 or 44 compilers installed in other THG machines that
I know.
2009-04-20 00:03:41 -05:00
Binh-Minh Ribler
3489809ca5 [svn-r16788] Description:
Fixed to pass parameters to H5Awrite/H5Aread correctly so that
    all Attribute::write and Attribute::read methods work correctly
    for both fixed-length and variable-length string attributes.

    Added more test cases.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
2009-04-19 01:17:26 -05:00
Pedro Vicente Nunes
f38ae770ca [svn-r16786] merge 16785
added missing test and compare cases inside compounds for nan
tested: linux
2009-04-18 16:19:56 -05:00
Scot Breitenfeld
cbd195409d [svn-r16783] Added information about new fortran wrappers added:
H5D_h5dget_access_plist_f
   H5I_h5iis_valid_f
   H5P_h5pset_chunk_cache_f
   H5P_h5pget_chunk_cache_f
2009-04-17 14:11:05 -05:00
Scot Breitenfeld
3577791dcc [svn-r16782] Description:
Merged the changes from the trunk/fortran into the branch:

used:

svn merge -r 16362:16781 https://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Platforms tested: smirom (pgf90, ifort)
                  linew
2009-04-17 14:09:35 -05:00
Raymond Lu
ccb31223c4 [svn-r16778] A minor correction of previous checkin. The original files created with v1.6 library could
be deleted by cleanup routine.  I corrected it in this checkin.

Tested on jam - simple change.
2009-04-17 10:30:17 -05:00
Christian Chilan
ae8e8d9378 [svn-r16771] Modified parallel tests so they can run with arbitrary number of processors.
Tested on jam and abe.
2009-04-16 20:34:17 -05:00
Neil Fortner
004b4c4dff [svn-r16767] Fix a comment in H5Pdapl.c, update RELEASE.txt with chages to factory free
lists.

Tested: kate
2009-04-16 16:10:45 -05:00
Albert Cheng
a2565505aa [svn-r16761] Fixed a simple typo in the echo statement in the
check-all-install actions.

Tested:
In jam by hand.
2009-04-15 17:13:20 -05:00
Raymond Lu
0e08da8023 [svn-r16758] The test of family file compatibility with v1.6 used the original family files under the library
source directory.  Since the test opens the files with write mode, it's safer to make copies of 
the original files.  I added the copying step in test_family_compat in vfd.c.  I changed the 
Makefile.am to clean up the copied files.  I created a new family_v16_00000.h5 with v1.6 library.

Tested on jam - supposed to be simple change.
2009-04-15 16:15:04 -05:00
Albert Cheng
79d1396cfa [svn-r16755] bug fix (ID 1345):
Use environment variable instead of command parameter to test
the install via $DESTDIR test.

Tested:
Jam by hand. (no h5committest which does not test this change.)
2009-04-15 09:18:15 -05:00
Albert Cheng
69ead66b76 [svn-r16750] New feature (Bug ID: 1345):
Added a Make target of check-all-install to test the correctness of
installing via the prefix= or $DESTDIR options.

Platforms tested:
h5committested and jam serial mode. Then test check-all-install by hand.
2009-04-14 17:08:23 -05:00
Allen Byrne
c12389e885 [svn-r16744] Added fixed bug 1536, about the include for the _getcwd() function. 2009-04-14 09:06:07 -05:00
Allen Byrne
75c3059f54 [svn-r16743] Added #include <direct.h> to windows section. As discussed in Bug 1536, this include is needed to supply the _getcwd() function.
Tested: XP 32 VS2005
2009-04-14 08:19:58 -05:00
Allen Byrne
e10dca69da [svn-r16741] Added missing h5Groot.c to project files
Tested on XP32-VS2005-IVF101
2009-04-13 14:38:30 -05:00
Larry Knox
696cf9552c [svn-r16740] Snapshot version 1.8 release 2 (post12) 2009-04-12 18:14:07 -05:00
Raymond Lu
c7867cff2b [svn-r16735] Added H5Groot.c. Not tested yet. 2009-04-10 15:50:09 -05:00
Neil Fortner
27af18b852 [svn-r16733] Revert change to family_16_00000.h5 from latest snapshot release. Raymond is
working on fixing this.
2009-04-10 15:40:48 -05:00
Pedro Vicente Nunes
10936f31a7 [svn-r16732] added 2 new entries
- h5diff new flag, -c, --compare, list objects that are not comparable.
        PVN - 2009/4/2 - 1368
 - h5diff new flag, -N, --nan, avoids NaNs detection. PVN - 2009/4/2
2009-04-10 15:38:59 -05:00
Neil Fortner
6285924944 [svn-r16731] Purpose: Fix bug 1539b
Description:
The H5L interface was not marked as uninitialized when H5L_term_interface was
called.  This caused the interface to not initialize itself later on.  This
prevented external links from working after calling H5close, because they were
never re-registered.

Tested: jam, smirom, linew (h5committest)
2009-04-10 15:15:31 -05:00
Pedro Vicente Nunes
8dba3d7b9c [svn-r16728] merge 16727
clean linux warnings
tested linux
2009-04-10 11:20:39 -05:00
Larry Knox
f01cd9be2d [svn-r16725] Snapshot version 1.8 release 2 (post11) 2009-04-09 20:53:47 -05:00
Neil Fortner
0c9806bb0e [svn-r16722] Purpose: Fix problems with "no strict format checks"
Description:
Changed H5G_mkroot to be tolerant of files with symbol table information cached
but no symbol table in the root group.  Also changed H5G_mkroot to properly
clean up in case of an error, and changed H5G_stab_is_valid to properly detect
errors in H5O_msg_read.

Tested: jam, linew, smirom (h5committest), jam (--disable-strict-format-checks)
2009-04-09 15:24:35 -05:00
Pedro Vicente Nunes
1dffdaa262 [svn-r16720] merge 16719
clean warnings linux
tested linux
2009-04-09 15:04:03 -05:00
Pedro Vicente Nunes
3fb6b6d6fa [svn-r16718] merge 16717
added some print messages
tested: linux
2009-04-09 10:52:08 -05:00
Neil Fortner
ef77500b28 [svn-r16712] Purpose: Fix bug 1423
Description:
Versions of the library between 1.3.0 and 1.6.3 have a bug which prevents them
from opening any file that does not have the root group's symbol table
information cached in the root group's entry in the superblock.  Prior to 1.8
this was not an issue as this information was always cached.  However, 1.8.0
stopped writing this information (which is not required by the file format
specification), and these older versions can therefore not read files created or
last written by versions 1.8.0 to 1.8.2.  This fix modifies the library to once
again add this information to the superblock (when using the old file format).

Tested: jam, linew, smirom (h5committest)
2009-04-08 17:16:45 -05:00
Pedro Vicente Nunes
6f92516776 [svn-r16709] added The scale index return value in H5DSiterate_scales was not always
+          incremented. (PVN - 2009/4/8 - 1538)
2009-04-08 16:25:53 -05:00
Pedro Vicente Nunes
c2c03a86b3 [svn-r16707] merge 16706 from trunk
#1538 (B2) Problems with Dim Scale APIs reported by Mathworks
ISSUE2: the scale index input/output parameter value passed to H5DSiterate_scales was not always incremented (it returns the scale index current iteration). 
SOLUTION FOR ISSUE2: modified the cycle in H5DSiterate_scales so that the scale index is always incremented
TEST: added some test cases with calls to invalid indices and H5DSiterate_scales with return scale indices and visitor data
tested: linux
2009-04-08 15:59:40 -05:00
Larry Knox
6787039100 [svn-r16705] Snapshot version 1.8 release 2 (post10) 2009-04-08 14:19:56 -05:00
Neil Fortner
3367137ba6 [svn-r16703] Purpose: Improve performance of factory free lists.
Description:
Factory free lists were formerly implemented as block free lists.  This was
inefficient as factories can only be one size, and implementing them as blocks
(which can be variable size) wasted computation and space.  They have been
rewritten with a separate implementation, which is simlar to regular free lists
except they can be dynamically created and destroyed.

Tested: jam, linew, smirom (h5committest)
2009-04-08 13:55:01 -05:00
Neil Fortner
48b127f628 [svn-r16699] Purpose: Fix bug 503
Description:
Changed Skip list package to use a deterministic skip list.  This allows the
skip list package to avoid calling rand() and srand(), even on machines without
rand_r().  There is no longer a p-value or maximum level for skip lists.

Tested: jam, smirom, linew (h5committest)
2009-04-08 12:05:17 -05:00
Pedro Vicente Nunes
428a7c5243 [svn-r16697] merge 16696 from trunk
#1538 (B2) Problems with Dim Scale APIs reported by Mathworks
ISSUE: When some functions are called with an invalid dimension index (for example, greater than the rank of the dataset) the function does not immediately fail, rather asserts down the code.
SOLUTION: added this check for H5DSdetach_scale, H5DSset_label, H5DSget_label (the other functions have this check) . H5DSiterate_scales also added a check for an invalid dimension scale index
TEST: added some test cases with calls to invalid indices
DOCS: Nothing added
STATUS: done for 1.9, 1.8. closed bug
tested: windows, linux
2009-04-08 10:40:35 -05:00
Neil Fortner
dc2b6bbce0 [svn-r16695] Purpose: Fix bug 1526
Description:
Previously, H5Lcopy and H5Lmove would (through H5L_move) improperly apply the
"create intermediate groups" property to the source path traversal, and not the
destination.  Fixed it to apply the property to the destination and not the
source.  Also fixed H5Lcreate_ud to reject internal link classes without
throwing an assertion.

Tested: linew, jam, smirom (h5committtest)
2009-04-07 18:12:44 -05:00
Scot Breitenfeld
7d193a28a8 [svn-r16680] Description:
Fixed warnings from absoft's compiler for !DEC$ statements.

Solution: There should not be a space after !DEC$ statements, removed the spaces.

Platforms tested:
Jam with gcc and f95
2009-04-07 10:21:30 -05:00
Pedro Vicente Nunes
fecd6ab559 [svn-r16677] merge 16676 from trunk
#1521 (B2) H5DSdetach_scale memory leak
ISSUE: Purify (Windows Visual Studio 6) complains of a memory leak in H5DSdetach_scale call  regarding a  H5Aread call (stack is H5A_read, H5T_convert, H5T_conv_vlen, H5T_vlen_seq_mem_write, H5MM_malloc).
SOLUTION: When a scale is detached from a dataset, the variable length structure length field is decreased in one entry. The associated pointer must be reallocated with the new length.
DOCS AND TEST: Nothing added
tested: linux
2009-04-07 10:05:33 -05:00
Pedro Vicente Nunes
1105b86f61 [svn-r16672] merge 16671 from trunk
fix compiler error on a missing "static" declaration
2009-04-06 10:05:08 -05:00
Allen Byrne
d623d950b6 [svn-r16668] Corrected the urls for h5dump xml dtd and schema
Tested: Fedora 10 gcc
2009-04-03 16:50:53 -05:00
Allen Byrne
3abbc57d81 [svn-r16665] Added h5tools.h to h5difftst.vcproj.
Added new test to h5repack.bat.

Tested on XP64-VS2005--IVF91
2009-04-03 16:15:20 -05:00
Pedro Vicente Nunes
c107f7063f [svn-r16664] merge 16663 from trunk
note : lots of weird warnings of the type
../../../../hdf5/tools/h5repack/h5repacktst.c:3919: warning: will never be executed
appear on the same code as 1.9 for the 1.8 branch

tested: linux
2009-04-03 14:44:26 -05:00
Allen Byrne
60a15ad439 [svn-r16662] Remove command to copy h5Tinit.c in copy batch file. H5Tinit.c is generated during build and no longer exists in the windows/src folder.
Tested: XP64 VS2005
2009-04-03 09:20:36 -05:00
Pedro Vicente Nunes
570de0c113 [svn-r16658] merge from trunk 16656
#1402 (B1) h5repack does not preserve creation order indexing. 
ISSUE : h5repack does not handle group creation order flags. 
ACTION: call H5P(g)(s)et_link_creation_order functions when handling groups, add new groups with these flags to the test generation program, and verify results in the test program. 
TEST: in the test program, function that compares property lists, added code to verify groups
DOCS: Added the note to RELEASE.txt: "h5repack now handles group creation order. PVN - 2009/4/2 - 1402".
2009-04-02 15:34:24 -05:00
Raymond Lu
9e148522d5 [svn-r16652] Bug fix #1503 - H5Iget_type failed unexpected when an invalid ID was passed in. I put
some argument check in the internal function H5I_find_id and took out the assertion check.
I also removed the argument check in H5Iis_valid because it's in H5I_find_id now.

Tested on jam and linew - simple change.
2009-04-01 17:02:44 -05:00
Larry Knox
df24309b72 [svn-r16649] Snapshot version 1.8 release 2 (post9) 2009-04-01 14:33:43 -05:00
Pedro Vicente Nunes
817acf2cdc [svn-r16647] fix typo 2009-04-01 14:03:19 -05:00
Pedro Vicente Nunes
cd43ca3bf7 [svn-r16644] add mention to #1501 2009-04-01 11:37:50 -05:00
Pedro Vicente Nunes
22d6e96014 [svn-r16641] merge from trunk revs 16614, 16629
1.	#1501  (B1) tools bug if dataset is larger than H5TOOLS_BUFSIZE limit. 
ISSUE : the tools use the following formula to read by hyperslabs: hyperslab_size[i] = MIN( dim_size[i], H5TOOLS_BUFSIZE / datum_size) where H5TOOLS_BUFSIZE is a constant defined of 1024K. This is OK as long as the datum_size does not exceed 1024K, otherwise we have a hyperslab size of 0 (since 1024K/(greater than 1024K) = 0). This affects h5dump. h5repack, h5diff
SOLUTION: add a check for a 0 size and define as 1 if so. 
TEST FOR H5DUMP: Defined a case in the h5dump test generator program of such a type (an array type of doubles with a large array dimension, that was the case the user reported).  Since the written file commited in svn would be around 1024K, opted for not writing the data (the part of the code where the hyperslab is defined is executed, since h5dump always reads the files). Defined a macro WRITE_ARRAY to enable such writing if needed. Added a run on the h5dump shell script. Added 2 new files to svn: tools/testfiles/tarray8.ddl, tools/testfiles/tarray8.h5. NOTE: while doing this I thought of adding this dataset case to an existing file, but that would add the large array output to those files (the ddls). The issue is that the file list is increasing.
TEST FOR H5DIFF: for h5diff the check for reading by hyperslabs is H5TOOLS_MALLOCSIZE (128 * H5TOOLS_BUFSIZE) or 128 Mb. This makes it not possible to add such a file to svn, so used the same method as h5dump (only write the dataset if WRITE_ARRAY is defined). As opposed to h5dump, the hyperslab code is NOT executed when the dataset is empty (dataset is not read). Added the new dataset to existing files and shell run (tools/h5diff/testfiles/h5diff_dset1.h5 and tools/h5diff/testfiles/h5diff_dset2.h5 and output in tools/h5diff/testfiles/h5diff_80.txt).
TEST FOR H5REPACK: similar issue as h5diff with the difference that the hyperslab code is run. Added a run to the shell script (with a filter, otherwise the code uses H5Ocopy). 
FURTHER ISSUES: the type in question ("double") has a different output cross platforms (e.g on liberty some garbage number is printed at some array locations)
SOLUTION: defined an "int" type for this test. However the printing of such an array has a bogus output at least in one platform (FreeBsd), so eliminated the test run altogether and filed a bug report on this
2009-04-01 10:25:43 -05:00
Neil Fortner
9863d5aee2 [svn-r16616] Purpose: Fix bug 1499
Description:
Due to a bug in H5F_super_read, every time a file with a user block was opened
it would grow by the size of the user block.  The bug has been fixed, and
comments have been added to clarify when an eoa address should be relative and
when it should be absolute.

Tested:
jam, linew (h5committest)
2009-03-26 10:29:23 -05:00
Raymond Lu
2def5e4c85 [svn-r16613] In previous checkin (r16609), the flag "write_driver" wasn't necessary as Quincey pointed out.
I took it out and used the driver address instead.

Tested on jam - simple change.
2009-03-25 14:49:19 -05:00
Raymond Lu
30ccff2212 [svn-r16608] Bug fix (#1161): When a family file created with v1.6 library is opened and closed with
v1.8 library, v1.8 library writes the driver info block in the superblock.  But v1.6
doesn't write it.  This caused the data after the superblock to be overwritten.  The
solution is to use a flag to indicate when the original file doesn't have the driver
info, v1.8 library doesn't write it either.

Tested on jam.  I have some trouble to access smirom and linew using h5committest.
2009-03-24 16:32:50 -05:00
Pedro Vicente Nunes
9c9e2c6d7d [svn-r16598] merge 16597 from trunk
#1047  (B1) The h5lt info routines are returning data in transposed form. ISSUE : the dimension array of the function h5ltget_dataset_info_f  was not transposed (because of C-FORTRAN storage order, the FORTRAN function calls the C function with the same name). SOLUTION: transpose the array. ACTION: add a test case.

added the note

Fortran High-Level APIs:
    ------
     - Lite: The h5ltget_dataset_info_f function (gets information about a dataset) 
           was not correctly returning the dimension array (PVN - 2009/3/23)

tested: linux
2009-03-23 15:04:55 -05:00
Neil Fortner
1598893d14 [svn-r16595] Purpose: fix bug 1189
Description:
Some files apparently exist in the wild which have corrupt symbol table messages
on the root group.  These files can be opened by 1.6 (which uses the cached
information in the superblock) but not by 1.8.  This patch fixes 1.8 and 1.9 so
they can now open these files, and will correct them if necessary.  Also fix
some potential (rare) problems with array datatype versions.

Tested: jam (parallel; h5committest not working on linew or smirom)
2009-03-23 14:14:55 -05:00
Pedro Vicente Nunes
1cc1da5133 [svn-r16589] merged from trunk: 16588
1.	#1487 (B1) DS memory leaks ISSUE 1: On a "go to" error condition, previously allocated buffers were not freed. NOTE: these are "potential" memory leaks because typically the error conditions do not occur, so the potential memory leaks also do NOT occur. ISSUE 2: A function used to read dimension scales realistic data (topography of the North Atlantic, latitude and longitude) was being called without the data buffer being freed. SOLUTION FOR ISSUE 1: added "free" calls for the allocated buffers on the error sections. SOLUTION FOR ISSUE 2:  added a "free" call after the read_data function, after using the buffer (on a H5Dwrite and H5Screate_simple). The read_data function reads both data and dimensions from the ASCII data files. DOCS: no docs added. Done for 1.9 and 1.8 STATUS: Closed bug

tested: h5committest
2009-03-19 13:37:07 -05:00
Pedro Vicente Nunes
a848e01316 [svn-r16585] added the OUTPUT-ARCHITECTURE STD that was previously removed, regarding a AIX failure 2009-03-16 17:17:46 -05:00
Larry Knox
af7e17167b [svn-r16582] Snapshot version 1.8 release 2 (post8) 2009-03-15 19:59:42 -05:00
Quincey Koziol
4201a8fbfe [svn-r16577] Description:
Actually set the exit value for the test (*sigh*)
2009-03-12 15:14:37 -05:00
Quincey Koziol
042ed7661a [svn-r16575] Description:
Bring r16574 back from trunk:

        Clean up many compiler warnings and make test return non-zero exit code
when a failure is detected.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
	(other platforms tested on trunk)
2009-03-12 13:21:47 -05:00
Pedro Vicente Nunes
856f1e9120 [svn-r16572] #1462 By selecting a compression type, a big endian byte order was being selected.
When reading the compression parameter keyword, the compression type read flag was incorrectly set to read, removed this line of code
in->configOptionVector[COMPRESS] = 1;


Modified one configuration file to have the COMPRESSION-TYPE GZIP
Keyword. 


Entered a bug description fix of
- h5import: By selecting a compression type, a big endian byte order was being 
            selected (PVN - 2009/11/3)


tested: linux
2009-03-11 14:36:08 -05:00
Quincey Koziol
828e7e2416 [svn-r16566] Description:
Bring r16560 back from trunk.

Tested on:
    Mac OS X/32 10.5.6 (amazon) debug & production
    (Following up with tests on more platforms)
2009-03-10 20:44:36 -05:00
Mike McGreevy
ddf384fb35 [svn-r16562] Purpose:
Bug Fix

Description:

    Fixing BZ #1381. The --includedir=DIR configure option, which is used to
    spceify installation location of C header files, did not work correctly as
    the path was hard-coded into config/commence.am. I'm presuming this is
    because an older version of automake didn't know where to put C header
    files. In any case, removing this line now defaults the includedir to the
    same directory that it is currently hard-coded to, and also fixes the
    configure flag which allows for customization of this value.

Tested:

    jam, liberty
2009-03-10 16:07:50 -05:00
Mike McGreevy
1b0e131cc4 [svn-r16555] Purpose:
Bug Fix

Description:

    Removing the code from configure which strips the '-g' flag from CFLAGS
    when in production mode. The current default CFLAGS in production mode
    does not include '-g', as intended, but we should allow users to
    override this and enable '-g' by setting the CFLAGS environment
    variable if desired. Note that this applies to FCFLAGS and CXXFLAGS
    as well.

Tested:

    kagiso, linew, liberty
2009-03-09 12:53:01 -05:00
Allen Byrne
363046bef9 [svn-r16551] Bug #608: Memory leak in H5DSset_label. Added code to free sub string ptr's belonging to buffer in H5DSset_label and H5DSget_label. Also added free of buffers in error section of both functions. Potential memory leaks may exist elsewhere, and this will not close the bug.
Tested:
   h5committest
   vista 32 VS2008
2009-03-05 15:20:24 -05:00
Allen Byrne
6c526e3bfe [svn-r16546] Moved long_long comment to correct location under bugs fixed since section. 2009-03-05 08:52:27 -05:00
Allen Byrne
8dc61483f2 [svn-r16544] Added text that long_long macro was removed. This should have been added with r16490. 2009-03-05 08:47:40 -05:00
Neil Fortner
5fb2e403a6 [svn-r16541] Move variable declaration to the top of the block in H5G_dense_iterate
Tested: Fedora 10 (too minor for full committest)
2009-03-04 14:48:27 -05:00
Raymond Lu
db81699a13 [svn-r16538] Added more test case for bypassing the cache. In test_big_chunks_bypass_cache,
test the correctness of the data when the fill value is defined or not.  The 
library should let the chunks bypass the cache depending on the size of the 
chunks and whether to write fill value to the chunks.

Tested on jam - simple change.
2009-03-03 14:35:34 -05:00
Quincey Koziol
19105560d0 [svn-r16536] Description:
Bring v16532 back from trunk to v1.8 branch:

	Pass the chunk "user data" to H5D_chunk_unlock(), so that chunks with
an address already aren't reallocated.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committest not needed here, performed on trunk)
2009-03-02 17:30:16 -05:00
HDF Tester
b359f8d3b3 [svn-r16526] Snapshot version 1.8 release 2 (post7) 2009-03-01 19:52:02 -05:00
Neil Fortner
d9836c44a6 [svn-r16524] Purpose: Fix bugs related to H5Dset_extent and fill values
Description:
In some situations it was possible for the fill value to not be written to parts
of a chunked dataset, particularly when extending and/or shrinking.  Prior to
the fix for the chunk cache (1015) these bugs would have been exceedingly rare.

Tested: jam, smirom, linew (h5committest)
2009-02-27 12:06:50 -05:00
Allen Byrne
ee76c4fa94 [svn-r16522] Changed windows batch file due r16519 and r16520. As all windows OS are always LE on all platforms, simply added le to the two locations where these files are used.
Tested:
Vista 32 VS2008
2009-02-26 16:39:16 -05:00
Pedro Vicente Nunes
443e8cdafb [svn-r16520] one file escape deletion from previous check in 2009-02-26 16:33:15 -05:00
Pedro Vicente Nunes
086c205ca4 [svn-r16519] merge 16518 from trunk
have 2 expected outputs for 2 h5ls runs depending if run on a big or little endian machine. Configure.in was modified to export a variable carrying endianess information to testh5ls.sh. This script then compares the current run with 2 expected outputs, one for a big-endian machine (linew was used to generate the output), other for little endian (jam was used to generate the output)
the way h5ls prints types, it starts searching for NATIVE types first. One solution would be h5ls not to detect these native types, using for example the same print datatype function that h5dump does, that would make the output look the same on all platforms  ("32-bit little-endian integer" would be printed instead).  Drawback, this "native" information would not be available. Other solution is to have not one but 2 expected outputs and make the shell script detect the endianess and compare with one output or other
tested: jam, linew
2009-02-26 16:25:57 -05:00
Raymond Lu
39c794d2c4 [svn-r16515] To improve the performance of querrying the info of a link(bug #1404). When the index was set to
creation order in querry function but there's no creation order indexed in the file, the library tried 
to build and sort a table of all links.  To optimize it, let the library use the B-tree for names of 
links.

Tested with h5committest.
2009-02-24 13:53:59 -05:00
Pedro Vicente Nunes
fe217cfd57 [svn-r16512] merge 16511 from trunk
bug fix: TESTING2 macro introduced recently for the test suite (it adds an extra space at the beginning of output, for indentation) was already available for HL and caused compilation problems on AIX. Replaced the name with TESTING_2


tested: h5committest
2009-02-23 15:30:04 -05:00
Elena Pourmal
a9f5945de0 [svn-r16505] Maintenance: Fixed a typo discovered while compiling on AIX system
Platforms tested: Mac OSX and AIX (by Ed) (minor fix)
2009-02-20 17:03:04 -05:00
Pedro Vicente Nunes
94838213e6 [svn-r16503] merge 16502 from trunk
bug fix: a comma accidently left on a conditional typedef was causing compilition error on AIX
tested: linux
2009-02-20 16:27:59 -05:00
Quincey Koziol
788e645a78 [svn-r16500] Description:
Bring r16499 back from trunk:

        Cache chunk info for newly created chunk.

Tested on:
        FreeBSD/32 6.3 (duty)
        (Tests included in upcoming revise_chunks branch changes)
2009-02-19 18:53:18 -05:00
Quincey Koziol
494226aaf6 [svn-r16495] Description:
Bring r16488 back from trunk:

    Clean up code and eliminate resource leaks.  Also avoid "null" I/O when
chunk doesn't exist and we can skip it.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (too minor to require h5committest)
2009-02-19 14:38:20 -05:00
Quincey Koziol
0a9ad6a46e [svn-r16494] Description:
Bring r16483 back from trunk:

    Clean up (i.e. remove) more internal calls to H5E_clear_stack(), along with
    some other minor code cleanups.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (too minor to require h5committest)
2009-02-19 14:36:52 -05:00
Allen Byrne
0e515209b2 [svn-r16493] revert gcc PROD_CFLAGS to "-O", which was incorrectly changed by rev 16490. 2009-02-19 12:44:02 -05:00
Allen Byrne
c880943ce9 [svn-r16490] Fixed bug #1459 by eliminating the macro long_long and replacing all instances with long long.
Tested:
   h5comittest
   fedora 10 x64
   XP32, VNET
2009-02-18 15:05:49 -05:00
Vailin Choi
61346d50fa [svn-r16487] Checkin for moving messages forward into continuation message:
src/H5Oalloc.c, test/ohdr.c, toshm.c
Fixed couple of problems in src/H5Odbg.c.
h5committested.
2009-02-16 16:33:04 -05:00
HDF Tester
f023ea68dc [svn-r16486] Snapshot version 1.8 release 2 (post6) 2009-02-15 16:57:03 -05:00
Neil Fortner
9ebf3291c9 [svn-r16481] Purpose: Improve chunk cache
Description:
The meaning of the "nbytes" field in H5D_rdcc_t was not clear, and some places
assumed it was the maximum size of the chunk cache, while some assumed it was
the current size of the chunk cache.  The end result was that only 1 chunk could
be held in cache at a time.  This field has been replaced by "nbytes_max" and
"nbytes_used".  Performance of cached I/O should improve greatly.

Tested: jam, smirom (h5committest)
2009-02-12 15:49:02 -05:00
Neil Fortner
5a6c75cc58 [svn-r16478] Purpose: Fix problem with opening an attribute multiple times through multiple
file handles.

Description:
An attribute's "oloc" field which specifies the file it resides in was located
in the attribute's "shared" structure.  So when an attribute was opened multiple
times all of the handles for that attribute pointed to the same file id, even if
different file id's were used to open the different handles for the attribute.
The "oloc" has been moved to the top level H5A_t struct.

Tested: jam, smirom (h5committest)
2009-02-12 14:09:10 -05:00
Neil Fortner
582afd39e3 [svn-r16476] Purpose: Fix rare error when adding a new object header message
Description:
Since the new object header format, it has been possible for a situation to be
created where none of the messages are large enough to hold a continuation
message and there are no null messages to merge with.  This makes it impossible
to add a new object header chunk.  This case will now be handled by moving every
message in the last chunk to the newly allocated one, except for null messages
which are deleted.

Tested: jam, smirom (h5committest)
2009-02-12 14:01:19 -05:00
Neil Fortner
b487c22c42 [svn-r16474] Purpose: fix problems related to 'self-referential' attributes
Description:
When an attribute was created with a datatype or dataspace that was shared in
the same object header that the attribute was in, the attribute could not be
deleted.  Changes made to ensure that the attribute can be deleted both when the
attribute is in the object header and when it is shared in the heap.  Object
header message decode routines now take an "open_oh" parameter to enable them to
avoid opening the same object header twice.

Tested: jam, smirom (h5committest)
2009-02-12 13:50:21 -05:00
Larry Knox
b566fea225 [svn-r16471] Change H5Dopen to H5Dopen2 - fixes compile error - too many arguments for H5Dopen1 when using v1.6 compatible flag. Trivial change, tested on smirom and jam. 2009-02-12 11:10:35 -05:00
Allen Byrne
d82141259c [svn-r16470] Added two new test cases for compound types to batch file per script file changes in rev #16463.
Tested:
   XP32, XP64 - VNET, VS2005
2009-02-11 17:20:55 -05:00
Raymond Lu
87cdac5fe9 [svn-r16467] Performance Improvement(bug #1450). When a chunk is bigger than the cache size and isn't allocated
on disk, the library still loaded it in the cache, which is redundant.  I changed it to bypass the
cache and added a test in dsets.c.


Tested on jam and smirom.
2009-02-11 14:22:59 -05:00
Pedro Vicente Nunes
8fd5f783b4 [svn-r16463] merge from trunk
Bug fix: for compound types, the not comparable test for members was not done
Solution: for compound types, recursively apply that check
Two new cases are added
1) the compound type has a different number of members. Message printed is
<obj1> has X members <obj2> has Y members
Where X and Y are the number of members of each compound type being compared
2) the compound type has not comparable types (for example a double and an int at the same index)
In this case the message
Comparison not possible: object1 is of class1 and object2 is of class2
Is replaced with
Comparison not possible: object1 has a  class1 and object2 has a  class2
Modified the test generator program to have these 2  cases
Added a shell run for these 2  cases



Tested: h5committest
2009-02-11 11:37:46 -05:00
Elena Pourmal
c4a18e8ac7 [svn-r16460] Maintenance: Brought VMS test script for h5copy up-to-date.
Added h5copy testing to the build script.

Platforms tested: New script on ALPHA Open VMS server;
                  build script will be tested tonight.
2009-02-10 16:57:35 -05:00
Elena Pourmal
e3726385b1 [svn-r16459] Maintenance: installation script had a typo; fixed.
Platforms tested: Alpha VMS server
2009-02-10 15:35:39 -05:00
Elena Pourmal
f199d39a92 [svn-r16458] Maintenance: One of the h5diff tests failed due extra line that system adds to the
output. I added /comment_delim qualifier to the diff command to pacify
             the test script.

Platforms tested: Alpha VMS server
2009-02-10 15:28:13 -05:00
Elena Pourmal
9c1ccb04af [svn-r16456] Maintenance: Brought h5repack and h5diff test scripts up-to-date.
Modified build script to reflect the change.

Platforms tested: tested tools scripts on the VMS server; build script will
                  be tested tonight.
2009-02-09 17:38:37 -05:00
John Mainzer
cf6842099c [svn-r16452] Repaired intermittant failure of the t_cache test in testpar.
The failure was caused by some over active sanity checking code in
unlock_entry().  In essence the code did not consider the possibility
that under certain, very unusual circumstances, an entry could be flushed
to disk during the H5AC_unprotect() call.  Instead, it simply failed
if a dirty entry was marked clean after the call to H5AC_unprotect().

This bug in the test code was exposed by recent changes to the default
cache configuration made as part of the "metadata blizard" bug fix.

Fixed the bug by adding code to detect when an entry is flushed during
the call to H5AC_unprotect(), and not trigger a failure if a dirty entry
is marked clean after a call to H5AC_unprotect() if the entry has been
flushed.

In passing also found and fixed another test bug in which expunged
entries were erroneously marked as dirty in the test code's independant
register of entry status.

Tested parallel on Phoenix (AMD64 Linux) and Jam.

No further testing, as the fix was tested extensively prior to checkin
on the 1.9 branch.
2009-02-06 14:41:28 -05:00
Pedro Vicente Nunes
bd3565d448 [svn-r16450] bug fix: compare the return value of H5Tequal with TRUE
tested: h5committest
2009-02-06 11:31:33 -05:00
Allen Byrne
5a80587476 [svn-r16443] Update windows batch file to match *nix script due to rev 16351
Tested:
 XP 32 VNET
2009-02-05 13:55:42 -05:00
Quincey Koziol
066329f44b [svn-r16440] Description:
Bring r16435 from revise_chunks branch back to 1.8 branch:

        Expand object copy tests for chunked datasets to include 1-D datasets
with an unlimited dimension.  (Fix typo in comment for test/links.c)

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        (more thoroughly tested already on revise_chunks branch)
2009-02-05 11:04:22 -05:00
Pedro Vicente Nunes
041eb636da [svn-r16437] merge from trunk
bug fix: typo in usage message
tested: linux
2009-02-05 10:31:25 -05:00
Pedro Vicente Nunes
704c6a99fc [svn-r16432] merge from trunk
Uncomment a h5cleanup() call previously accidently left commented 


Tested: windows
2009-02-05 10:07:45 -05:00
Scott Wegner
adcfa1a45e [svn-r16427] Purpose: Fix Windows install script to include missing tool binaries
Description:
A user discovered that the HDF5 1.8.2 Windows release binaries were missing a few of the HDF5 tools.  This is due to the Windows install script, which simply didn't include them.  This commit fixes the install script to include h5copy, h5mkgrp, and h5stat

Tested:
VS2005 w/ WinXP, build and install only
2009-02-04 16:49:21 -05:00
Scott Wegner
d190de7e0f [svn-r16424] Purpose: Remove old Fortran source file from Windows projects.
Description:
In svn rev. 16197, H5fortran_flags.f90 was removed from HDF5.  This checkin removes references from our Windows projects, and will allow us to successfully build HDF5 Fortran on Windows.

Tested:
VS2005 w/ IVF 9.1 on WinXP
2009-02-04 14:39:55 -05:00
Pedro Vicente Nunes
25a2837cb5 [svn-r16422] bug fix: a open call was not made the expected FAPL
tested: windows, linux (split, sec2)
2009-02-04 14:29:24 -05:00
Pedro Vicente Nunes
3822ac7368 [svn-r16420] merge from trunk
#1449 Change set_extent test to use standard standalone test framework


Call h5_fixname (with an array of test filenames) for generating the  
filename to create and then call h5_cleanup() when the tests pass, to delete the files  
created and close the FAPL from h5_fileaccess(). 


Defined a macro 
#define TESTING2(WHAT)  {printf(" Testing %-62s",WHAT); fflush(stdout);}
Similar to TESTING, except that it has a initial indentation space.
The effect is for nested loop tests


Testing with old file format:
 Testing with fill value, no compression                                PASSED


tested: windows, linux
2009-02-04 10:53:00 -05:00
Quincey Koziol
d6ff1f2b6b [svn-r16418] Description:
Bring r16417 from trunk to 1.8 branch:

        Bring closer to standard standalone test format, add checks for using
the latest file format and close dataset ID leaked.

Tested on:
        FreeBSD/32 6.3 (duty)
        (too minor to require h5committest)
2009-02-03 20:53:49 -05:00
Quincey Koziol
2a5e92d415 [svn-r16415] Description:
Bring r16414 from trunk into 1.8 branch:

        Eliminate some more calls to H5E_clear_stack() from within library code.

        Clean up some warnings & comments also.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (Too minor to require h5committest)
2009-02-03 18:54:39 -05:00
Allen Byrne
29e9825c93 [svn-r16411] testh5ls.bat - added tests to match script file from rev 16310
h5repack.bat - added test to match script file from rev 16402
set_extent.vcproj - added WS2_32.lib for change to set_extent from rev 16406

Tested:
 Vista32, XP32, XP64 using VNET, VS2005 VS2008
2009-02-03 16:30:43 -05:00
Frank Baker
dac4853e69 [svn-r16408] Description:
Update source code copyright to include 2009.
2009-02-03 14:35:04 -05:00
Pedro Vicente Nunes
2e802e6a13 [svn-r16406] merge 16405 from trunk
#1449 Change set_extent test to use standard standalone test framework

use a fapl obtained by h5_fileaccess to the call of H5Fcreate
and redo the test calls with

h5_reset();
    fapl = h5_fileaccess();

    nerrors += do_ranks( fapl ) < 0 ? 1 : 0;
    nerrors += test_external( fapl ) < 0 ? 1 : 0;
    nerrors += do_layouts( fapl ) < 0 ? 1 : 0;

tested: windows, linux
2009-02-03 11:04:12 -05:00
Quincey Koziol
fc61c3a81a [svn-r16402] Description:
Bring r16401 back from trunk:

	Correct error introduced in r16353 with layout version, and add test
so it gets caught earlier.

Tested on:
	FreeBSD/32 6.3 (duty)
	Too minor to require h5committest
2009-02-02 20:43:58 -05:00
Quincey Koziol
6290469518 [svn-r16400] Description:
Bring r16399 back from trunk:

        Remove some internal calls to H5E_clear_stack().

Tested on:
        FreeBSD/32 6.3 (duty)
        Too minor to require h5committest
2009-02-02 16:01:17 -05:00
HDF Tester
01d1e93b37 [svn-r16398] Snapshot version 1.8 release 2 (post5) 2009-02-01 16:17:07 -05:00
Quincey Koziol
a75ff7d2e5 [svn-r16395] Description:
Bring r16394 back from trunk:

        Rename H5O_msg_read_real -> H5O_msg_read_oh, to be more consistent with
other routines in library.

        Move H5O_msg_read_oh and H5O_msg_exists_oh from package to private
header file, so other routines in library can use them.

Tested on:
        FreeBSD/32 6.3 (duty)
        Too minor to require h5committest
2009-01-31 21:35:37 -05:00
Neil Fortner
a1ffba8cdb [svn-r16387] Fix various warnings (errors in pgcc) associated with yesterday's dense
attribute object copy commit.

Tested: jam (gcc and pgcc)
2009-01-30 10:48:30 -05:00
Raymond Lu
69d06e6ed4 [svn-r16385] Added support for large files - added cc/define=_LARGEFILE in make.com and changed
H5_SIZEOF_OFF_T to be 8 in h5pubconf.h.

Tested on OpenVMS.
2009-01-30 09:55:15 -05:00
Neil Fortner
089dfcff02 [svn-r16381] Purpose: Enable copying of dense attributes
Description:
Attribute object copy routines have been moved from H5Oattr.c to H5Aint.c.
These routines are now shared between compact and densely stored attributes.
New routines written to support the copying of dense attributes.  This patch wasmostly written by Peter Cao.

Tested: jam, smirom (h5committest)
2009-01-29 16:05:03 -05:00
Neil Fortner
7b4e2704e7 [svn-r16379] Purpose: Fix a bug encountered when copying shared messages
Description: When attempting to copy an object with a message shared in its own
object header, the library attempts to protect the same object header twice.
Previously, it was possible for the object header to be protected with write
access in one or both of these protects, which would be illegal.  The library
should now always protect with read only access in this case.  The conditions
for fixing incorrect datatype versions have been made weaker to support this
change.  The version will only be corrected if the object header the datatype
is in is modified.

Tested: jam, smirom (h5committest)
2009-01-29 15:56:02 -05:00
Pedro Vicente Nunes
87ebee5951 [svn-r16375] merge 16373
replaced some printf statements with parallel_print


tested: linux serial (parallel tested in trunk)
2009-01-29 14:09:30 -05:00
Quincey Koziol
6d2a73d49f [svn-r16374] Description:
Bring r16372 back from trunk:

	Clean up files produced from set_extent testing.

Tested on:
	FreeBSD/32 6.3 (duty)
	(too minor to require h5committest)
2009-01-29 14:08:17 -05:00
Neil Fortner
b3731e3409 [svn-r16371] Modify test_pack_ooo to always output the state of randomly generated variables
when it fails, even in the sections that do not use the random variables.

Tested: jam
2009-01-28 12:21:07 -05:00
Quincey Koziol
e163a5f6ab [svn-r16368] Description:
Bring r16367 back from trunk:

	Refactor internal address encode/decode routines slightly, to allow for
more flexible use.

Tested on:
   Mac OS X/32 (amazon)
   FreeBSD/32 (duty)
   (too minor to require h5committest)
2009-01-27 18:16:13 -05:00
Quincey Koziol
a7673d2f91 [svn-r16365] Description:
Bring r16364 back from trunk:

    Clean up a few compiler warnings

Tested on:
    Mac OS X/32 (amazon)
    (too minor to require h5committest)
2009-01-27 16:18:23 -05:00
Scot Breitenfeld
bea031e44c [svn-r16363] Description:
Merged changes from the trunk into the branch. Used the command:

svn merge -r 16197:16362 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran

Platforms tested: smirom, liberty
2009-01-27 15:59:03 -05:00
Neil Fortner
4cd5a378c4 [svn-r16361] Purpose: Fix potential error with H5Tset_order
Description: H5Tset_order will now properly reject H5T_ORDER_NONE for most
datatypes.  Previously this could cause major problems as the file could not be
flushed.

Tested: jam, smirom (h5committest)
2009-01-27 11:05:53 -05:00
Pedro Vicente Nunes
4f48c9c555 [svn-r16359] merge 16348
bug fix
a new line was not inserted at the end of output, causing diff to complain between linux and frebsd

tested: linux (freebsd tested on the trunk)
2009-01-27 10:42:42 -05:00
Quincey Koziol
661734d541 [svn-r16356] Description:
Bring r16354 back from trunk:

        Refactor internal layout information, making it easier to add another
type of chunk index.

Tested on:
	FreeBSD/32 (duty)
	(other configurations tested with original change)
2009-01-27 09:47:26 -05:00
Pedro Vicente Nunes
92f5db9daf [svn-r16355] bug fix: some printf calls instead of parallel_print made some tests to fail
tested: on the trunk
2009-01-27 09:02:20 -05:00
Pedro Vicente Nunes
d2dd85b598 [svn-r16351] merge 16348
#1368 (E1) h5diff: implement  "not comparable" messages. Implemented RFC. The new option is <-c, --compare           List objects that are not comparable>

added some test cases

tested: windows, linux
2009-01-26 15:39:32 -05:00
Neil Fortner
1197e992e9 [svn-r16350] Purpose: enhancements the H5Tinsert, H5Tpack
Description: H5Tinsert will now detect when a compound type that was previously
not packed becomes packed due to out of offset order insertion of a member.
H5Tinsert will now attempt to keep members sorted by offset order.  This should
improve performance of H5Tinsert in all cases due to the fact that it no longer
needs to check every other member for overlapping, and should improve
performance of H5Tpack and possibly type conversion when compounds are packed
out of order.

Tested: jam, smirom (h5committest)
2009-01-26 14:43:09 -05:00
HDF Tester
0a9e0279b6 [svn-r16346] Snapshot version 1.8 release 2 (post4) 2009-01-25 16:40:52 -05:00
Larry Knox
f6d689ac18 [svn-r16343] Temporarily undo skipping the h5diff test of hyper1.h5 and hyper2.h5 that hangs on THG machines to see if the problem is fixed. Simple change - tested on jam. 2009-01-22 17:20:33 -05:00
Frank Baker
6bd7826ce8 [svn-r16341] Description:
Changed 'THG' to 'The HDF Group' in various HDF5 source files,
        most of which are <subdirectory>/COPYING.
    -- Closes Bugzilla entry 1403.
2009-01-22 16:03:58 -05:00
Mike McGreevy
976eb1cb49 [svn-r16339] Purpose:
Bug Fix

Description:

    Removing some unnecessary headers from test/cache.c which snuck their way
    into one of my previous check-ins ... thanks to Allen for catching this
    while testing on windows.

Tested:

    Windows, Linux
2009-01-22 14:59:09 -05:00
Raymond Lu
8a3162e118 [svn-r16334] Added definition for two new macros H5_HAVE_C99_DESIGNATED_INITIALIZER and H5_HAVE_C99_FUNC.
Tested on OpenVMS.
2009-01-21 11:05:36 -05:00
Albert Cheng
4c6f09d4de [svn-r16332] Bug 948.
The test "h5diff -v h5diff_hyper1.h5 h5diff_hyper2.h5" sometimes hangs in THG
machines. Skip it until its hanging is resolved.

Tested: Jam pp only since it is a simple script change.
2009-01-19 22:39:42 -05:00
HDF Tester
cd5619a2c2 [svn-r16331] Snapshot version 1.8 release 2 (post3) 2009-01-18 16:49:07 -05:00
Raymond Lu
228a3ac054 [svn-r16326] Fixed a small problem in file names. Some new file names were left out for OpenVMS.
To be tested on OpenVMS.
2009-01-16 16:11:19 -05:00
Mike McGreevy
c2bb26a754 [svn-r16325] Purpose:
Code Cleanup

Description:

    - Pulled out repetetive cache stats code into its own new macro.

    - Converted HDasserts in verification macros to if / HGOTO_ERROR statments
      in order to keep code consistent.

Tested:

    jam (also tested smirom/liberty in trunk)
2009-01-15 14:57:02 -05:00
Albert Cheng
7341054c69 [svn-r16322] Purpose:
Improvement

Description:
Modified the warning messages from the Version mismatch checking to suggest
the users to try recompiling or checking the shared lib setting.

Platforms tested:
Tested in Jam only since it was just a simple text string changes.
2009-01-14 18:50:38 -05:00
Pedro Vicente Nunes
2ad37c5958 [svn-r16320] merge 16319
add conditinal nan detection to some missing places

tested: windows, linux
2009-01-14 16:43:26 -05:00
Raymond Lu
f677f9fbcf [svn-r16314] Added support for OpenVMS pathname for external link.
Tested on OpenVMS and jam.
2009-01-14 14:48:39 -05:00
Pedro Vicente Nunes
127792fc31 [svn-r16313] merge 16301
Add a mention to the usage that the default minimum size for compression is 1024 bytes


M - is an integer greater than 1, size of dataset in bytes (default is 1024)


#bgz 1426


tested: windows, linux
2009-01-14 11:36:10 -05:00
Pedro Vicente Nunes
d496a1c715 [svn-r16312] merge 16300
Added an option to avoid dealing with NaNs 
-N, --nan               Avoid NaNs detection
Note: there is no shell script run for datasets with NaN because the output is non portable (different results and NaN strings for different systems)


Tested: windows, linux
2009-01-14 11:31:52 -05:00
Pedro Vicente Nunes
98d4ba5d8a [svn-r16310] merge 16299
Print a message of
Storage:   information not available
When displaying storage information for VL and dataset region types
Added 2 shell runs that display this information
#818


Tested: windows, linux
2009-01-14 10:58:16 -05:00
Neil Fortner
b7a12779d5 [svn-r16309] Purpose: Fix problem with H5Tpack
Description:
If a compound type was packed except for some extra space at the end, H5Tpack
would not modify the type and the extra space would remain.  Changed
H5T_is_packed to fix this behaviour.

Tested: jam, smirom (h5committest - linew down)
2009-01-14 10:45:25 -05:00
Quincey Koziol
60915ff8aa [svn-r16307] Description:
Bring r16306 back from trunk:

	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 revise_chunks branch)
2009-01-14 09:01:12 -05:00
Scot Breitenfeld
bbd83d97e0 [svn-r16304] Description:
added:

!DEC$ATTRIBUTES reference ::

for character strings being passed in to C to fix bug in VMS for functions
h5sdecode_f and h5sencode_f.
2009-01-13 16:16:18 -05:00
Elena Pourmal
9c53e8281a [svn-r16302] Maintenance: Removed a debug qualifier that caused batch job to skip basic
Fortran test.
2009-01-13 16:14:03 -05:00
Neil Fortner
2a23b4b176 [svn-r16297]
Disable more file drivers incompatible with family file driver in external_set_elink_cb in links.c.

Tested: jam check-vfd
2009-01-11 12:24:48 -05:00
Neil Fortner
5c204221e1 [svn-r16295] Changes to links.c to prevent the core file driver from being used as the member
file driver for a family file.  This was causing problems with check-vfd.

Tested: jam
2009-01-10 16:16:12 -05:00
Mike McGreevy
7b9871bfa2 [svn-r16293] Purpose:
Bug Fix

Description:

    Removed problematic debugging statement and switched one remaining TRUE
    verbose statement to FALSE in cache_common.c

Tested:

    jam, liberty
2009-01-10 09:59:49 -05:00
Mike McGreevy
52d3f187a5 [svn-r16291] Purpose:
svn merge

Description:

    merging revision 16290 from trunk to 1.8

   (revision 16290 contains the code that maintains a min_clean_fraction
   of the metadata cache in serial).

Tested:

    smirom, jam
2009-01-09 16:10:29 -05:00
Neil Fortner
aa12e27206 [svn-r16288] Fix one of the new tests in links.c. external_set_elink_cb no longer copies the
driver information from property list to property list.

Tested: jam
2009-01-09 11:00:37 -05:00
Pedro Vicente Nunes
17a2d21791 [svn-r16285] - h5repack: When user doesn't specify a chunk size, h5repack now defines a default
chunk size as the same size of the size of the hyperslab used to read the chunks. 
            The size of the hyperslabs are defined as the size of each dimension or a 
            predefined constant, whatever is smaller. This assures that the chunk 
            read fits in the chunk cache. (PVN - 2008/11/21)

  - H5Dset_extent: when shrinking dimensions, some chunks were not deleted.  
            (PVN - 2009/01/8)
2009-01-08 14:15:13 -05:00
Neil Fortner
50d88ec142 [svn-r16282] Purpose: Add functions to allow more flexible traversal of external links.
Description: Added H5Pset/get_elink_cb to allow the user to specify a callback
function to be called whenever an external link is traversed.  Added
H5Pset/get_elink_acc_flags to allow the user to specify the file access flags
to use to open the target file of an external link.  All these properties are set on a LAPL.

Tested: jam (trunk version tested with h5committest)
2009-01-08 13:24:09 -05:00
Quincey Koziol
ab2ff6eda4 [svn-r16280] Description:
Bring revision 16278 back from revise_chunks branch:

	Update layout information in DCPL to unify all information in one
underlying property and switch to using H5O_layout_t for storing it, which
simplifies things considerably.

	Also, fix many compiler warnings.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(Original patch tested on many machines)
2009-01-08 12:56:57 -05:00
Raymond Lu
416af90179 [svn-r16276] Update. Commented out H5_HAVE_RAND_R because OpenVMS doesn't have rand_r function.
Tested on OpenVMS.
2009-01-08 11:07:02 -05:00
Pedro Vicente Nunes
56f666d330 [svn-r16275] Added a test for shrinking to 0 dimemsions
Tested: windows, linux
2009-01-08 10:26:17 -05:00
Albert Cheng
d318a3b7ce [svn-r16270] Bug fix.
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.
2009-01-06 17:58:47 -05:00
Raymond Lu
4c032ef58e [svn-r16268] Temparorily comment out some failing tests for Open VMS. After fixing the problem, I will
uncomment them.

Tested on Open VMS and jam.
2009-01-06 17:14:24 -05:00
Neil Fortner
e87964eadf [svn-r16267] Revert RELEASE.txt to the version before it was mostly deleted by hdftest.
Update version number listed at the top.

Tested: vim
2009-01-06 10:10:51 -05:00
Scot Breitenfeld
fe1223d360 [svn-r16263] Description:
added missing reference in h5lget_name_by_idx_f:

!DEC$ATTRIBUTES reference ::

for character strings being passed in to C to fix bug in VMS.
2009-01-05 11:42:17 -05:00
Scot Breitenfeld
fbf861cbde [svn-r16234] Description:
Cosmetic changes, Also tested -r16232 on:

Jam (intel 10.1)
Smirom (intel 10.1)
2008-12-30 12:25:11 -05:00
Scot Breitenfeld
79e4e95e82 [svn-r16232] Description:
Added chunk property to the data set because changes H5Dset_extent now require/check the the data set is chunked.
2008-12-30 11:43:17 -05:00
Pedro Vicente Nunes
f4df369454 [svn-r16228] cleaned more linux warnings
tested: linux
2008-12-29 16:52:56 -05:00
Pedro Vicente Nunes
ca0c4ce8fd [svn-r16226] merge 16225
remove debug messages
tested: windows, linux
2008-12-29 16:32:19 -05:00
Pedro Vicente Nunes
eb3eb77e57 [svn-r16224] merge from 16223
Modified H5Dset_extent so that it fails when called for compact datasets and contiguous with no external storage
new test program: It adds tests for several ranks, use of fill value or not, compression, different fill value allocation times, use of different storage layouts, and external files

tested: windows, linux
2008-12-29 15:54:58 -05:00
HDF Tester
972a1f1003 [svn-r16221] Snapshot version 1.8 release 2 (post2) 2008-12-28 16:57:28 -05:00
Pedro Vicente Nunes
2a6e4d4e43 [svn-r16218] Merging trunk 16217
Bug fix
PG compiler complains about array out of bounds (a rank of zero was not checked)
Adding a scalar dataset to the test generator program. this case is run on a previous existing run, the case was added to 2 existing files

Tested: windows, linux
2008-12-23 10:52:22 -05:00
Albert Cheng
fdcd0fb59f [svn-r16216] Updated for removed file.
Tested by bin/chkmanifest.
2008-12-22 23:53:13 -05:00
Elena Pourmal
5b57b18ae8 [svn-r16215] Maintenance:
Updated command files in order to build in a batch queue;
	added lines that define compiler qualifiers and location
	of the zlib library in case one has to build manually in 
	a current directory.
	Deleted command file in the vms/tools/h5ls directory that 
	is no longer needed.
Platforms tested:
	VMS server (build passed; tests are running now)
2008-12-22 18:22:19 -05:00
Raymond Lu
18197d3471 [svn-r16213] Added HDlseek to the H5FD_core_truncate function in H5FDcore.c to rewind the file pointer
to the beginning of the file.  Otherwise, the file might be re-extended later on Open VMS.
Also updated the return value for the HDlseek to be more appropriate.

Tested on Open VMS.
2008-12-22 14:01:29 -05:00
Raymond Lu
ec9ff804e2 [svn-r16212] Update: H5Distore.c was taken out. H5Bdbg.c and H5Dbtree.c were added.
Tested on Open VMS.
2008-12-22 13:42:06 -05:00
HDF Tester
1b42d70294 [svn-r16211] Snapshot version 1.8 release 2 (post1) 2008-12-21 19:28:58 -05:00
Allen Byrne
52b7b7d462 [svn-r16208] Added new file H5Bdbg.c to windows project file. Tested using VS2008 Express. 2008-12-18 10:05:54 -05:00
Quincey Koziol
58a925fe4c [svn-r16205] Description:
Bring r16204 back from trunk:

	Moved v1 B-tree debugging routines into separate module and thinned
out header files a bit.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	Too minor to require h5committest
2008-12-18 08:52:50 -05:00
Elena Pourmal
3fbec7d04f [svn-r16203] Maintenance: Added new VMS command file to the MANIFEST file.
Platforms tested: My MAC with the chkmanifest script.
2008-12-16 10:05:52 -05:00
Raymond Lu
778d231626 [svn-r16201] Comment out a debug info.
Not test is needed.
2008-12-15 16:12:12 -05:00
Raymond Lu
28366536ba [svn-r16200] Add makefile for tools/misc directory, compiling h5debug.c and h5mkgrp.c. 2008-12-15 16:02:48 -05:00
Raymond Lu
9c5100ced3 [svn-r16199] Added HDlseek in front of the truncate function in H5FD_sec2_truncate for VMS only.
On Open VMS, if the last read or write put the file pointer beyond the current file size 
(it happens when an object is deleted), the file can be extended when it's truncated.

Tested on VMS.
2008-12-15 15:40:24 -05:00
Scot Breitenfeld
ef857fa7d7 [svn-r16198] Description:
Removed the fortran file: ./fortran/src/H5fortran_flags.f90
which is no longer needed.
2008-12-15 15:11:32 -05:00
Scot Breitenfeld
41245b50b6 [svn-r16197] Maintenance: Merged trunk into the hdf5_1_8 branch
(used svn merge -r 15741:16196 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran).
2008-12-15 14:17:49 -05:00
Mike McGreevy
327484d503 [svn-r16195] Purpose:
Bug Fix

Description:

    Resolved issues with broken sanity checks that were failing when the 'b2'
    debugging package was enabled (v2 b-tree debugging):

        - Fixed outdated assertions that would not compile. They now compile
          and function correctly.

        - Removed too far outdated assertions that would require too much
          unnecessary refactoring of code in order to satisfy their 
          initial purpose.

        - Re-enabled b2 debugging package when "--enable-debug=all" is 
          specified on the configure line.

Tested:

    jam, smirom, linew
2008-12-15 12:43:11 -05:00
Elena Pourmal
0c86f4cd9c [svn-r16192] Maintenance on VMS:
Command file had a line for building an object file for a non-existing
	source; deleted.
Platforms tested:
	VMS server
2008-12-12 18:29:17 -05:00
Elena Pourmal
69f88cf77c [svn-r16191] Maintenance on VMS:
make.com for the h5stat tools was not copied to the h5stat
	directory. It caused build script to fail. Fixed.
Platforms tested:
	VMS server
2008-12-12 18:24:49 -05:00
Allen Byrne
2dfcef40cd [svn-r16190] Changed references of H5Distore to H5Dbtree in project files. (Related to revision 16180) 2008-12-12 13:16:59 -05:00
Quincey Koziol
f4cf17d0d7 [svn-r16188] Description:
Bring r16187 back from trunk:

	Change a few more "istore" references in comments to "chunk" or "btree".

Tested on:
        None, just comments
2008-12-11 15:08:15 -05:00
Quincey Koziol
796f5a9f4c [svn-r16183] Description:
Bring r16182 back from trunk:

	Rename internal routines, variables, macros, typedefs, etc. for chunked
dataset storage from "istore" to some variant of "chunk" or "btree".

Tested on:
       FreeBSD/32 6.3 (duty) in debug mode
2008-12-11 14:34:27 -05:00
Quincey Koziol
4168cf3af6 [svn-r16181] Description:
Bring r16180 back from trunk:

	Rename the current chunk indexing routines module for B-tree indices
to better reflect their purpose, and to make the upcoming extensible array
index module fit in better.

Tested:
	FreeBSD/32 6.3
	Too minor to require h5committest
2008-12-11 13:49:25 -05:00
Elena Pourmal
32ce1dd47d [svn-r16178] Maintenance for VMS system:
Updated command files for building Fortran library and tests.

Platforms tested: Boeing VMS server.
2008-12-11 10:12:19 -05:00
Neil Fortner
9f13e1ccb0 [svn-r16177] Remove terminal whitespace in links.c, H5Lexternal.c, H5Plapl.c
Tested: jam
2008-12-09 14:55:51 -05:00
Albert Cheng
04ec4470e5 [svn-r16175] Updated fix of the missing argument of open() in zip_perf.c.
Also reformat some other entries to keep them with a consistent format.
2008-12-09 10:57:17 -05:00
Albert Cheng
5218c4001a [svn-r16172] Code clean up.
Function get_unique_name() had potential string overflow problem.
Fixed. Also removed some unused macros.

Tested by h5committest.
2008-12-08 23:11:37 -05:00
Albert Cheng
27c239c2d1 [svn-r16168] Bug fix: 1089
Description:
One open() call with O_CREAT flag did not have the third required argument.

Solution:
Added the right third argument. Also changed all open() calls to HDopen
macros for more portable coding.

Tested:
h5committested.
2008-12-08 21:29:06 -05:00
Frank Baker
3dcdd204de [svn-r16164] Description:
Change all occurrences of 'THG' to 'The HDF Group'.
2008-12-08 16:40:30 -05:00
Pedro Vicente Nunes
c70ab22f2f [svn-r16159] merge 16158
Test the non deletion of a chunk for the case chunk_offset == dimension by shrinking first, then expanding to original size and compare buffers of initialized values 

Tested: windows, linux
2008-12-03 22:53:05 -05:00
Pedro Vicente Nunes
4cb7515496 [svn-r16157] merge 16156
close & re-open the file for the test of non-default B-tree internal 'K' value (There was a bug where a non-default B-tree internal 'K' value was not  being stored in the file)
this is a rewrite of the old set_extent.c test program
tested: windows, linux
2008-12-03 21:31:12 -05:00
Raymond Lu
7c5468f27f [svn-r16155] Update - undefine H5_HAVE_STAT64 and H5_HAVE_FSTAT64 2008-12-03 15:29:23 -05:00
Pedro Vicente Nunes
181b5fc3e8 [svn-r16153] merge 16152
added comments and removed unnecessary code


tested: windows, linux
2008-12-02 15:56:25 -05:00
Pedro Vicente Nunes
bdd4bd0d4d [svn-r16149] merge 16148
reorganized the set_extent test to be more modular

tested: windows, linux
2008-12-02 14:43:37 -05:00
Pedro Vicente Nunes
3f26602c9e [svn-r16145] Merging with trunk regarding revisions
16132

some chunks were not deleted for some cases, the comparison to check for chunk offsets outside of the new dimensions was
chunk_offset[ i ] > dimension [ i ]
and it must be
chunk_offset[ i ] >= dimension [ i ]


16133
H5TBdelete_record was not handlong correctly records at the end of the table
added a ckeck that avoids to read these records if they are not needed (for pushing down the table)

16143
add a test for recent fixes of H5Dset_extent

tested: windows, linux
2008-12-01 15:58:00 -05:00
HDF Tester
78e90e5780 [svn-r16139] Snapshot version 1.8 release 2 (post0) 2008-11-30 17:58:27 -05:00
Raymond Lu
7a0f481872 [svn-r16135] Updates. Tested on VMS. 2008-11-26 17:05:25 -05:00
Raymond Lu
3fc7f73c8d [svn-r16131] Updated it. 2008-11-24 17:46:51 -05:00
Raymond Lu
5fd91ff962 [svn-r16130] Updated h5pubconf.h and corrected make.com 2008-11-24 16:54:29 -05:00
Pedro Vicente Nunes
1a88b7687f [svn-r16129] revised test table
tested windows linux
2008-11-24 16:23:08 -05:00
Pedro Vicente Nunes
56e444329e [svn-r16127] correct and entry in the wrong place 2008-11-24 15:26:09 -05:00
Pedro Vicente Nunes
69698dff03 [svn-r16126] In version 3.0 of Table, "NROWS" was deprecated
tested: windows, linux
2008-11-24 15:21:53 -05:00
Raymond Lu
fa40801d42 [svn-r16123] Add vms/tools/h5stat/make.com 2008-11-24 09:46:34 -05:00
Pedro Vicente Nunes
330cdd5f97 [svn-r16118] h5repack: Define a default chunk whose size is manageable. (PVN - 2008/11/21) 2008-11-21 15:19:40 -05:00
Pedro Vicente Nunes
0b4b87e36f [svn-r16115] #1375. Define a default chunk whose size is manageable. Defined currently as the same size of hyperslab (that compares the dimension sizes against a predefined constant size and chooses the minimum between the two)
Tested : linux, windows
2008-11-21 15:03:41 -05:00
Raymond Lu
e2c88e83bd [svn-r16113] Updated the makefiles (make.com) and check.com and src/h5pubconf.h (generated on kagiso).
Not tested yet.
2008-11-21 10:48:28 -05:00
Elena Pourmal
0fa496eced [svn-r16109] VMS maintenance: Brought command files up-to-date 2008-11-19 15:32:11 -05:00
Elena Pourmal
feb6b5e546 [svn-r16108] Maintenance: Brought up command file up-to-date. 2008-11-19 15:18:26 -05:00
Elena Pourmal
2f03768888 [svn-r16104] Bug fix:
h5vers script overwrote the value for windows file; fixed
2008-11-19 14:22:27 -05:00
Elena Pourmal
96fd960606 [svn-r16102] Maintenance: Suffix after the release is done should be post0 instead of
snap0; caught by Albert, fixed by policy offender.
2008-11-19 13:23:19 -05:00
Elena Pourmal
1258c22bb0 [svn-r16101] Maintenance: Library version number in vms/src/h5pubconf.h
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
2008-11-19 11:24:35 -05:00
Mike McGreevy
374f8f9da5 [svn-r16096] Purpose: Updating bin/reconfigure script
Updating bin/reconfigure script to point to autotools in /mnt/hdf/packages,
    since /home1/packages no longer exists.

Tested: kagiso
2008-11-18 15:22:51 -05:00
Quincey Koziol
e012505802 [svn-r16092] Description:
Switch H5Gcreate -> H5Gcreate2 and H5Gopen -> H5Gopen2, so that they aren't
switched with the API compability flags are changed

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    Linux/64 2.4 (smirom) w/API compability
2008-11-17 17:24:23 -05:00
Scott Wegner
29be5ec598 [svn-r16090] Purpose: Add new source file to Windows.
Description:
Recently a new source file, H5Pdapl.c, was brought to the 1.8 branch.  This checkin also adds it to the Windows Visual Studio projects.

Tested:
None needed, very minor.
2008-11-17 17:14:05 -05:00
Neil Fortner
3c5f5263e3 [svn-r16088] Purpose: Update RELEASE.txt for H5Pset_chunk_cache etc.
Tested: gedit
2008-11-17 14:41:01 -05:00
Neil Fortner
ca1fa22021 [svn-r16087] Purpose: Port H5Pset_chunk_cache, H5Pget_chunk_cache, and H5Dget_access_plist
functions to 1.8 branch

Tested: kagiso, jam (trunk version tested with h5committest)
2008-11-17 14:36:40 -05:00
Neil Fortner
e00d3174e5 [svn-r16086] Purpose: Port H5Iis_valid function to 1.8 branch
Tested: kagiso (trunk version tested with h5committest)
2008-11-17 14:13:08 -05:00
Neil Fortner
a6493ad0c0 [svn-r16083] Purpose: Fix a problem in the file unmounting code
Description: Fixes a problem in H5F_close_mounts where it wouldn't correctly
reshape the "child" array when unmounting files.  Test added for this case.
Also fixed a potential bug in H5F_unmount where that routine reshapes the child
array.  (Port to 1.8)

Tested: kagiso linew smirom (h5committest)
2008-11-17 14:00:02 -05:00
Pedro Vicente Nunes
0426a9ff06 [svn-r16073] For scalar string datasets print the character position when a difference is found instead of a non-existing array position
Tested: windows, linux
2008-11-13 11:45:08 -05:00
Pedro Vicente Nunes
c9300fbde0 [svn-r16071] For scalar string datasets print the character position when a difference is found instead of a non-existing array position
tested: windows, linux
2008-11-13 11:16:12 -05:00
Elena Pourmal
66f00a70a4 [svn-r16069] Maintenance: Changed version to 1.8.2-snap0 and updated documentation files
after the release. Branch is open for check-ins now.
2008-11-12 15:53:30 -05:00
Elena Pourmal
18f2cf5cb6 [svn-r16058] Maintenance: Changed version to 1.8.2 and released source tar ball. I will
tag the release after we build binaries tonight.
2008-11-10 15:45:46 -05:00
Albert Cheng
f289a72b30 [svn-r16056] Updated Red Storm instruction. 2008-11-10 15:23:37 -05:00
Albert Cheng
5ffd94a3de [svn-r16053] Updated with AIX and Cray XT3 information. 2008-11-10 14:51:36 -05:00
Elena Pourmal
e68e7d3e41 [svn-r16051] Maintenance: Some lines were too long; broke them in two. 2008-11-10 14:33:26 -05:00
Elena Pourmal
8a54bb616b [svn-r16049] Maintenance: forgot to fix a typo in the gfortran version; fixed. 2008-11-10 12:03:54 -05:00
Elena Pourmal
3557f90e62 [svn-r16048] Maintenance: In preparation of the release
Pedro and I cleaned up the tools sections in the file.
2008-11-10 12:02:51 -05:00
Scott Wegner
e492e8989b [svn-r16047] Update Windows release documents-- increment version number for 1.8.2, and drop MinGW support for this release (not enough time for testing) 2008-11-10 11:36:37 -05:00
Binh-Minh Ribler
b7564c7536 [svn-r16046] Description:
Updated info about H5Rdereference wrappers.
2008-11-10 09:46:05 -05:00
Elena Pourmal
79b24eacfc [svn-r16038] Maintenance: More cleanup before the release based on Quincey's comments. 2008-11-06 11:13:35 -05:00
Elena Pourmal
8a5e38fd6a [svn-r16035] Maintenance: Cleaned up the file before 1.8.2 release. 2008-11-05 12:01:59 -05:00
Elena Pourmal
835e13806c [svn-r16031] Bug fix: While testing hdf5-1.8.2-pre1 on Mac I dicovered that I made
a typo in a configuration file for Mac checked in on 
         October 31 (rev 16008). Since this change affects only Fortran
         users on Mac Intel and doesn't affect daily tests on any platforms,
         I am checking in the fix.
Platforms tested:
	 pahra with Intel compilers
2008-11-04 16:38:45 -05:00
Pedro Vicente Nunes
7885abab9a [svn-r16027] reintroduce code before 16025 of code freeze 2008-11-04 13:33:57 -05:00
Pedro Vicente Nunes
f0d6f33b74 [svn-r16025] For scalar string datasets print the character position when a difference is found instead of a non-existing array position
Tested: windows
2008-11-03 21:53:41 -05:00
Elena Pourmal
d9080af461 [svn-r16023] Maintenance: Changed version to hdf5-1.8.2-pre1 before creating a tar ball for
remote testing.
2008-11-03 16:54:52 -05:00
Neil Fortner
780999deee [svn-r16021] Purpose: Fix behaviour of H5Ovisit
Description: H5Ovisit and H5Ovisit by name will now check for a positive return
value from the first callback.  Test added for this case.

Tested: kagiso
2008-11-03 15:54:19 -05:00
Scott Wegner
d2980de247 [svn-r16019] Purpose: Fix Windows definition of H5ftruncate for VS.NET
Description:
On Windows/Visual Studio, there is no function ftruncate.  As a result, we have redefined the H5ftruncate macro to use _chsize_s.  However, this function also doesn't exist on Visual Studio prior to 2005.  Previously we had an #ifdef to support VS 6.0 with the lesser chsize function.  This checkin changes the #ifdef to also include VS.NET, since we still support it for HDF5 1.8 branch.

Tested:
VS.NET on WinXP
2008-11-03 09:39:02 -05:00
Larry Knox
019c82760e [svn-r16017] Correct Fortran compiler version for mercury. 2008-11-01 11:10:56 -05:00
Larry Knox
8935335907 [svn-r16015] Update Platforms Tested and Supported Configuration Features summary sections for November 2008 release. 2008-11-01 10:42:47 -05:00
Pedro Vicente Nunes
215fcf771f [svn-r16011] Bug fix
When -b was requested and no -o (file name) binary output was made to stdout
Had a check after command line parsing to verify if -o is present, otherwise exit

Tested: windows, linux
2008-10-31 13:03:17 -05:00
Elena Pourmal
27d42dfae5 [svn-r16008] Maintenance: Updated compilers and system information for Mac Intel in
RELEASE.txt
             Modified config file to disable shared libraries only
             when Fortran is enabled.
Platforms tested:
             pahra (Mac Intel 10.5.4)
2008-10-31 09:27:54 -05:00
Binh-Minh Ribler
752627e424 [svn-r16007] Description:
Added info to C++ API sections, about dereference wrappers and the fix 
    of bugzilla 1068, which involved the rearrangement of the class hierarchy.
2008-10-30 22:59:50 -05:00
Raymond Lu
edb9de4efc [svn-r16005] Modify the commit of r15936 for H5_USE_16_API. Let H5version.h check if H5_USE_16_API_DEFAULT is defined by the configure. Then define H5_USE_16_API and use it throughout.
Tested on kagiso - supposed to be simple.
2008-10-30 14:44:06 -05:00
Pedro Vicente Nunes
f2bdeee898 [svn-r16003] h5import: TEXTFPE (scientific format) was deprecated. Use TEXTFP
+            instead (PVN - 2008/10/30)
2008-10-30 14:36:47 -05:00
Pedro Vicente Nunes
148f0787ad [svn-r16002] h5diff: return 1 for file differences when both file graphs differ by any object.
+            Error return code was changed to 2 from -1. (PVN - 2008/10/30)
2008-10-30 14:30:34 -05:00
Pedro Vicente Nunes
209f3a4504 [svn-r15999] h5dump: binary default to NATIVE. 2008-10-30 14:16:04 -05:00
Binh-Minh Ribler
2cfa680366 [svn-r15998] Description:
Fixed various comments/headers to update the C++ reference manual.

Platforms tested:
    Linux 2.6 (kagiso) - to make certain no typo introduced
2008-10-30 14:05:47 -05:00
Pedro Vicente Nunes
b3e7158c54 [svn-r15996] Added a definition of HDftruncate for windows to compile with VC6 and later versions
Tested: windows
2008-10-30 11:11:21 -05:00
Pedro Vicente Nunes
37bff127f5 [svn-r15995] remove mention to h5diff -c 2008-10-30 10:37:19 -05:00
Pedro Vicente Nunes
8de58b40f5 [svn-r15985] reorganized the code to deal with deprecated -i -o for in/out files to avoid duplicated code
tested: windows, linu

x
2008-10-28 20:32:42 -05:00
Quincey Koziol
d851c3ba6c [svn-r15982] Description:
Remove redundant check for 1.6 default API.

Tested on:
    Eyeballed - very trivial
2008-10-28 18:42:20 -05:00
Pedro Vicente Nunes
9dd196f146 [svn-r15981] added the version from rev 15974, this AM, before any changes made today 2008-10-28 15:53:09 -05:00
Pedro Vicente Nunes
dd0b3ce4a8 [svn-r15980] add mention to h5diff long double 2008-10-28 15:02:52 -05:00
Pedro Vicente Nunes
5f376374db [svn-r15976] remove mention to h5diff -c 2008-10-28 11:11:25 -05:00
Elena Pourmal
98bac0cfc0 [svn-r15974] Bug fix:
Compilation on all daily test platforms fails due to missing "(";
	fixed.

Platforms tested:
	co-login
	kagiso with --with-default-api-version=v16 and  
        --with-default-api-version=v16 --disable-deprecated-symbols
        compilation flags.
2008-10-27 22:19:31 -05:00
Pedro Vicente Nunes
a8e59673c0 [svn-r15973] make -b accept both MEMORY and NATIVE
tested: windows, linux
2008-10-27 21:02:12 -05:00
Scott Wegner
a2501c41bd [svn-r15970] Purpose: Update Windows h5dump test script
Description:
The h5dump test script was recently updated to add the new -b syntax.  This update also adds and modifies the neccessary tests for Windows.

Tested:
VS2005 on WinXP
2008-10-27 15:39:28 -05:00
Pedro Vicente Nunes
f08f9340a7 [svn-r15969]
Introduced a new feature in the tools library regarding command line parsing
In the definition of arguments, an "*" means that the switch can or can not have an optional argument. This "*" is put in the code regarding the letter definition, and it is transparent to the user (e.g b* instead of the previous b: ), where ":" notes a required argument after the letter (and no ":" or "*" notes no argument, mandatory)
Used for the h5dump binary option -b
It can be now
1)	-b (defaults to NATIVE)
2)	- b NATIVE
3)	- b FILE
4)	-b LE
5)	-b BE
Note: the keyword NATIVE replaces MEMORY
This feature (-b with no argument) was tested with the sequence of h5dump to binary (NATIVE) then h5import to generate an HDF5 file from the binary file and h5diff to compare the 2 HDF5 files
Tested: windows, linux
2008-10-27 15:06:28 -05:00
Pedro Vicente Nunes
64e96385de [svn-r15967] regarding the return value of h5diff (0, no difference in files, 1 difference )
objects with the same name must be of the same type


tested: windows, linux
2008-10-27 11:18:06 -05:00
Scott Wegner
30675b0c4a [svn-r15964] Purpose: Mention Windows bugfix in release document
Description:
In June, we discovered a bug in Windows which only affected specific timezones with the mtime test.  This bug was promptly fixed, but never documented.  This checkin adds a note to the release document.
2008-10-27 09:56:48 -05:00
Scott Wegner
2d567669cd [svn-r15963] Purpose: Minor h5repack test update
Description:
Change the Windows h5repack test script so that the h5diff format matches the latest changes.  In particular, don't send the -c option.

Tested:
None, very minor
2008-10-27 09:32:57 -05:00
Binh-Minh Ribler
9e9c74f7c0 [svn-r15962] Description:
Fixed some typos and replaced free/HDfree and malloc/HDmalloc.

Platforms tested:
    Linux 2.6 (kagiso) - very minor
2008-10-27 08:49:25 -05:00
Binh-Minh Ribler
9924714992 [svn-r15960] Description:
Oops, I accidentally only did "svn commit" instead of "svn commit -m" as
    instructed.
    "ported revisions 15958 to 15959 (Added missing wrappers for H5Rdereference)
    from trunk."
2008-10-26 22:02:39 -05:00
HDF Tester
c16cadef00 [svn-r15958] Snapshot version 1.8 release 1 (snap7) 2008-10-26 17:40:34 -05:00
Christian Chilan
aaf4e0bda5 [svn-r15956] Revised the help page of h5perf.
Tested on kagiso.
2008-10-26 16:19:31 -05:00
Albert Cheng
d55acefa0f [svn-r15951] Fix Bug 1300.
Removed duplicated information due to previous incompleted changes.
Also rearranged the entries to a more logical combinations.

Tested: h5committest.
2008-10-25 20:43:40 -05:00
Mike McGreevy
5e1af503a6 [svn-r15949] Purpose: Documentation
Description: Updating RELEASE.txt with changes for release.

Tested: docwork only, none needed
2008-10-24 16:37:45 -05:00
Mike McGreevy
1c0b652994 [svn-r15948] Purpose: Bug Fix
Description: Adding the SZIP path to LD_LIBRARY_PATH within configure was
             inadvertently blowing away anything already in LD_LIBRARY_PATH. This
             fixes that, which solves, among other things, the problem where
             configure failed to learn how to print 'long long' on cobalt.

Tested: full make check install: kagiso, smirom
        configure / make / h5ls test only : cobalt, linew
2008-10-24 16:30:49 -05:00
Raymond Lu
5f16ae281c [svn-r15946] A follow-up checkin for the last-round commit(r15936). Added a test in this script file to
check whether the macros H5_USE_16_API works properly.  There used to be a problem to compile
if H5_USE_16_API is defined in the application program (see bug #1264).

Tested on kagiso - simple change.
2008-10-24 14:48:57 -05:00
Pedro Vicente Nunes
07baa2bd02 [svn-r15945] redo the
use of
H5_PRINTF_LL_WIDTH
in the definition of 
#define HSIZE_T_FORMAT   "%"H5_PRINTF_LL_WIDTH"u"

the printing of "unknow u" in tg-login3.
for unsigned long long was a  configure bug fixed by rev 15942

tested: tg-login3
2008-10-24 14:38:53 -05:00
Neil Fortner
d58e55cc92 [svn-r15940] Purpose: Close bug 1305.
Description: Added a new function, H5O_alloc_shrink_chunk, which removes all
null messages from a chunk and shrinks the chunk appropriately.  Modified
H5O_merge_null to call this function when a null message is created with a size
>= 64k.  Tests added for this functionality.

Tested: kagiso, linew, smirom (h5committest)
2008-10-23 20:04:28 -05:00
Quincey Koziol
2245e77948 [svn-r15939] Description:
Bring r15937 back from trunk to 1.8 branch:

	Correct error in metadata accumulator code which wasn't expanding the
metadata accumulator when adjoining (but not overlapping) I/O writes occurred.

Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-23 17:59:12 -05:00
Pedro Vicente Nunes
1b6981c062 [svn-r15938]
for some reason , the use of H5_PRINTF_LL_WIDTH to convert to a unsigned long long format, is not working in ia64 linux (tg-login3)
extra characters are printed, this time in h5ls
hardcoded the format defined in HSIZE_T_FORMAT to "%llu"

tested: windows, linux (kagiso), solaris, ia64 linux (tg-login3)
2008-10-23 16:29:21 -05:00
Raymond Lu
caa9e0c055 [svn-r15936] Changed the library's macros H5_USE_16_API to H5_USE_16_API_DEFAULT avoid possible conflict with 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.
2008-10-23 14:48:45 -05:00
Pedro Vicente Nunes
b694ad6c87 [svn-r15933] for some reason , the use of H5_PRINTF_LL_WIDTH to convert to a unsigned long long format
is not working in ia64 linux (tg-login3)
hardcoded the format to "%llu"

tested: windows, linux (kagiso), solaris, ia64 linux (tg-login3)
2008-10-22 17:33:58 -05:00
Pedro Vicente Nunes
83abc3a4e4 [svn-r15923] The printf call with the format "%"H5_PRINTF_LL_WIDTH"u" prints some garbage in linux ia64 unless we pass to the function a temporary pointer variable
Tested: windows, linux (kagiso), solaris, linux ia64 (tg-login3)
2008-10-21 14:25:29 -05:00
Albert Cheng
00b0378cd3 [svn-r15919] Updated with the information of the removal of libhdf5_fortran.settings. 2008-10-21 11:12:58 -05:00
Albert Cheng
16801096c7 [svn-r15917] Bug fix: #933
This file is no longer needed since it is not installed any more.

Tested: kagiso with fortran and C++.
2008-10-21 11:02:56 -05:00
Albert Cheng
fdabaa3330 [svn-r15912] Bug fix: #933
The information of libhdf5_fortran.settings are all included in
libhdf5.settings now. Remove it from the source.

Tested: kagiso with fortran and C++.
2008-10-20 23:10:17 -05:00
Scott Wegner
7f758bceb0 [svn-r15909] Purpose: Various Windows test script updates
Description:
This checkin includes updates to Windows test scripts for h5copy, h5diff, and h5dump tools.  Each represents minor changes to syntax which emulates the updates made to the general-platform test scripts.

Tested:
VS2005 on WinXP
2008-10-20 11:06:48 -05:00
Pedro Vicente Nunes
3a6ad02916 [svn-r15901] undo some changes in the list of parameters of parse_command_line (forgot that this function is called both on serial and parallel)
tested: linux
2008-10-17 22:01:34 -05:00
Pedro Vicente Nunes
1e1bcb801c [svn-r15900] Make the h5copy test that renames a group to return 1 on the h5diff call and assume 1 is the correct result
Drop the -c flag for h5diff

Tested: linux
2008-10-17 18:45:32 -05:00
Pedro Vicente Nunes
6c262bfc93 [svn-r15899] Extend the -c flag for ignore graph differences to ignore different group names
This is used in the h5copy test that compares renaming of groups

Tested: linux
2008-10-17 17:26:14 -05:00
Mike McGreevy
1b86e5a529 [svn-r15898] Purpose: Bug Fix
Description: Libtool wasn't working on linew because the script was
             not working with the Solaris Bourne shell. Libtool has built-
             in detection to ensure that it uses an appropriate shell,
             but our config/commence.am was hard coding this shell to be
             /bin/sh. Removing this line allows the shell to be picked up
             by configure, thus allowing libtool to use the correct shell
             on linew (bash). This was initially added to correct for a problem
             on an old machine (janus), so shoudn't be needed for machines
             we currently support.

Tested:      full make check install on kagiso and linew, compile only
             on smirom, duty, and liberty.
2008-10-17 10:48:23 -05:00
Pedro Vicente Nunes
924ba14474 [svn-r15896] Introduced a -c flag to ignore file contents differences in the return value (return 0 id -c is present)
Introduced for h5copy validation

Tested: windows, linux
2008-10-16 18:24:18 -05:00
Pedro Vicente Nunes
208777ec89 [svn-r15891]
Make the h5diff call compare only the source and destination objects, otherwise if we attempt to compare the all file, h5diff returns 1 for differences

Tested: linux
-This line, and those below, will be ignored--

M    tools/h5copy/testh5copy.sh
2008-10-16 14:00:18 -05:00
Pedro Vicente Nunes
12e3697d79 [svn-r15889] When comparing individual objects the file graph is not currently compared, so make h5diff return 0 (no diffrences)
Tested: windows, linux
2008-10-16 11:00:37 -05:00
Neil Fortner
b195e33d3f [svn-r15887] Purpose: Close bug 1332
Description: Improved external link traversal of h5dump.  h5dump will now
    properly avoid all cycles, even those spanning multiple files.  Improvement
    to the output of committed datatypes.  Committed datatypes are now checked
    for uniqueness (like other objects).  Tests added for these cases.

Tested: kagiso, linew, smirom (h5committest)
2008-10-15 22:54:19 -05:00
Mike McGreevy
97cced22b6 [svn-r15881] Purpose: Bug Fixes, Libtool Upgrade
Description:

  1) configure now sets LD_LIBRARY_PATH before checking for presence of 
     SZIP encoder, so user does not need to set this. The path is then
     saved and sent to Makefiles, and used when "make check-install" is
     invoked, so user doesn't need to set this manually. 

  2) Upgraded libtool to version 2.2.6a

  3) Rearranged tools build order as h5dump depends on existence of h5diff
     and h5import. Since h5dump is a sister directory as opposed to a parent
     of either, it doesn't know about the build rules of these tools, so 
     setting any sort of explicit dependency confuses automake as it won't
     know how to build the tools. Instead, setting CONFIG = ordered forces
     an in-order traversal of each tools subdirectory. (without it will also
     traverse in order by default, but this should prevent gmake's -j option
     from jumping ahead as well). 'make check install' should now be able to 
     be invoked after 'configure' without causing a dependency failure.

  4) Removed H5_HAVE_LARGE_HSIZET macro from vms/src/h5pubconf.h, as this macro
     has now been out of the code for some time. (vms pubconf needs to be 
     updated manually, which is why it was still hanging around).

Tested: kagiso, smirom, liberty

Note: h5diff looks to be causing failures in h5copy and h5dump tools tests,
      though these were present before any of my changes. My changes only 
      affect build order and configuration setup, and shouldn't prevent
      fixes for these failures coming in after this checkin. Other than these,
      tests pass fine.
2008-10-15 16:53:36 -05:00
Pedro Vicente Nunes
b353fb8b5a [svn-r15871] Eliminate -c option and make that behavior the default and return 2 instead of -1 on error status
Tested: windows, linux
2008-10-15 11:10:15 -05:00
Vailin Choi
122b938cbf [svn-r15870] Add description to release doc for the two new public routines and h5stat bug fix. 2008-10-15 09:16:15 -05:00
Quincey Koziol
8f3811e1b1 [svn-r15869] Description:
Bring r15868 from trunk to 1.8 release branch:

	Correct a minor error in file free space allocation which was affecting
the 'multi' VFD and preventing some tests from fully working with it.

	Wholesale revisitation of all the places where tests were disabled
with various VFDs and remove or correct all these so that _only_ the tests
which _really_ can't work with particular VFDs are skipped during a
'make check-vfd' test.


Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-14 22:53:09 -05:00
Pedro Vicente Nunes
c7bc8d9d28 [svn-r15866] add support for long double type
tested: windows, linux (32,64)
2008-10-14 15:38:57 -05:00
Scot Breitenfeld
56b70ea505 [svn-r15865] Description:
Added new Fortran features and bug fixes in this release.
2008-10-14 14:53:26 -05:00
Quincey Koziol
2f910f3fc7 [svn-r15863] Description:
Bring r15861 back from trunk to 1.8 release branch.

Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-14 08:39:36 -05:00
Raymond Lu
8a6d7d14f6 [svn-r15854] Added a new test case. When a datatype is a SOHM type in one file, test that the
second file using the same datatype actually save it in the file, too.

Tested on kagiso.  But the same change in v1.9 has been tested with h5committest.
2008-10-13 14:08:35 -05:00
Scott Wegner
01eb811b40 [svn-r15853] Purpose: Decrease size of points array in links test
Description:
In the external_set_elink_fapl2 links test, there is a large array of points which declared on the stack for testing.  Previously, the array was 1000 x 1000, which was too large for Visual Studio to handle.  As a result, we were getting stack overflows during the test.  We've reduced the number to 400, as this seems to be below the limit.  The exact number of points in the array isn't important to the test.

Tested:
VS2005 on WinXP
2008-10-13 13:33:51 -05:00
Scott Wegner
1eaa64a224 [svn-r15846] Purpose: Declare loop variable at beginning of function
Purpose:
On Windows, we were getting compile errors because h5test.c includes a function with variable declarations in the middle of the call.  The Microsoft C compiler demands that all variables be declared at the top of the function.  This checkin simply moves the declaration to the top to satisfy Visual Studio.

Tested:
VS2005 on WinXP
2008-10-13 11:53:44 -05:00
Scott Wegner
166931c024 [svn-r15845] Purpose: Add Windows-specific version of HDftruncate
Description:
Windows doesn't include a version of the system call ftruncate.  There is a similar call, _chsize_s, which performs very similarly.  Thus, we map HDftruncate to _chsize_s in our Windows header file, H5win32defs.h.

Tested:
VS2005 on WinXP
2008-10-13 11:51:31 -05:00
Scott Wegner
dc587a17fa [svn-r15842] Purpose: Update h5jam Windows test script
Description:
The testfiles used for the h5jam/h5unjam test were recently moved to a new directory.  Update the structure of the Windows test script to compensate for the change.

Tested:
VS2005 on WinXP
2008-10-13 10:36:43 -05:00
John Mainzer
032898afc5 [svn-r15836] Fixed a hole in the input checking for the metada cache.
Tested on Phoenix (serial)
          Kagiso  (parallel)
	  Linew   (serial)

There were updates during my testing, but I decided to check in 
regarless without further testing as my change is very localized.
2008-10-10 20:08:31 -05:00
Vailin Choi
c30c0a0cbb [svn-r15834] Fixes for bug #1253:
1. Fixed segmentation fault in print_group_info()
 2. Call print_statistics() in main() when objects/links are successfully traversed;
    otherwise, return warning message.
2008-10-09 16:27:11 -05:00
Christian Chilan
8091a4a0b1 [svn-r15831] Modified the display of the accumulated times taken to open and close files.
Tested on kagiso.
2008-10-09 13:11:05 -05:00
Quincey Koziol
b62ec1e874 [svn-r15829] Description:
Bring bck revision 15828 from trunk:

        Skip some free space manager tests when using a VFD that doesn't
support the feature being tested.

        Use a particular memory type with the file free space sections.

        Uncomment the metadata aggregator feature for the fmily VFD, as it
appears to be working after the file free space changes.

Tested on:
	FreeBSD/32 6.3 (duty)
	h5committest not needed, change already tested on trunk...
2008-10-09 09:54:02 -05:00
Quincey Koziol
070a4899bf [svn-r15827] Description:
Correct mis-merge in last set of changes from the trunk.

Tested on:
	FreeBSD/32 6.3 (duty)
2008-10-09 07:31:06 -05:00
Quincey Koziol
261bbe39aa [svn-r15826] Description:
Bring revision 15825 from trunk:

	Fix various problems with a the core & sec2 VFDs.

	Improve the h5_get_file_size() routine to handle files created with
VFDs that use multiple files.

Tested on:
	FreeBSD/32 6.3 (duty)
	Already tested on other machine, in trunk.
2008-10-08 22:52:46 -05:00
Albert Cheng
37aaef8fe0 [svn-r15823] Updated a bug fix information. 2008-10-08 16:03:05 -05:00
Pedro Vicente Nunes
3b451f709a [svn-r15817] move h5jam testfiles to its own testfiles folder
tested: linux
2008-10-08 11:13:38 -05:00
Scott Wegner
3f35eb23f8 [svn-r15814] Purpose: Update h5ls test script
Description:
The general h5ls test script was recently updated.  This checkin brings those changes to Windows

Tested:
VS2005 on WinXP
2008-10-08 10:47:17 -05:00
Scott Wegner
b5e8ad2d7e [svn-r15813] Purpose: Add new source code and tests to Windows
Description:
Many new source files were added from the freespace branch.  This checkin adds the code to Windows as well.

Note: Some tests are still failing on Windows, but this checkin brings us closer to fixing them.  In particular, freespace test fails on compile (Quincey is working on it), and the DLL links test fails at runtime (I'll look into it)

Tested:
VS2005 on WinXP
2008-10-08 10:11:25 -05:00
Albert Cheng
73bf21ce05 [svn-r15812] Bug fix: #1090
The custom rules for installing h5cc, h5fc, and the fortran modules in fortran
and in hl/fortran don't use $(DESTDIR).  Added it to all those rules.

Tested: kagiso both serial and parallel with fortran and cxx enabled.
Tested by:
    make install
    make DESTDIR=/tmp/acheng install
    diff -r /tmp/acheng/.../hdf5 hdf5
2008-10-08 00:17:05 -05:00
Albert Cheng
f1e2853e6f [svn-r15811] Some test produced files were not cleaned by "make clean".
Added them to the clean list.

Tested: kagiso.
2008-10-07 21:54:50 -05:00
Albert Cheng
b198fc89b9 [svn-r15809] Some test produced files were not cleaned by "make clean".
Added them to the clean list.

Tested: kagiso, serial and parallel.
2008-10-07 21:26:45 -05:00
Pedro Vicente Nunes
32a72c4d54 [svn-r15806] correction in test name, testing "non" initialized chunks
tested: windows, linux
2008-10-07 11:03:54 -05:00
Neil Fortner
d0ae398d95 [svn-r15805] Purpose: Add option to h5ls to enable external link traversal.
Description: Added -E option to h5ls.  When set, this alows h5ls to enter
external files (currently only through an external link).  The -r option by
itself will no longer allow h5ls to traverse external links.

Tested: kagiso, linew, smirom (h5committest)
2008-10-07 09:55:32 -05:00
Quincey Koziol
78b5437aeb [svn-r15803] Description:
Bring r15802 back from trunk:

        Skip some file free space tests that deal with aligned allocations when
using the stdio VFD, which has its own allocation process that drops the
unaligned fragments instead of tracking them with the free space manager.

Tested on:
	Mac OS X/32 10.5.5 (amazon) w/stdio driver
2008-10-07 09:16:51 -05:00
Quincey Koziol
bdbdbb9f89 [svn-r15801] Description:
Bring r15800 back from trunk:

		- File free space branch changes through r15794

Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-07 08:32:32 -05:00
Quincey Koziol
b256db872d [svn-r15799] Description:
Change H5Tcommit() call to H5Tcommit2() call, so that library builds with
the default API set to v16 work.

Tested on:
    Linux/64 2.4 (smirom) w/default API set to v16
2008-10-06 23:10:48 -05:00
Neil Fortner
a858608a0a [svn-r15797] Purpose: Close bug #1322
Description: Fixes a possible datatype id leak that could occur during compound
datatype conversion, or more precisely, when unregistering those conversions.
Datatype ids normally registered by the library are no longer visible to the
application via H5Fget_obj_ids and H5Fget_obj_count.

Tested: kagiso, linew, smirom (h5committest)
2008-10-06 22:47:56 -05:00
Pedro Vicente Nunes
d7437bc5b1 [svn-r15791] Bug fix. When detecting the user requested filters, the "all" option was not taken in consideration when printing the compression ratio
Tested: windows, linux
2008-10-06 15:43:42 -05:00
Scott Wegner
d0a9060af9 [svn-r15788] Purpose: Update h5copy test script on Windows
Description:
The testfiles were moved to a new directory for the h5copy tests.  Update the Windows test script to use this new directory.

Tested:
VS2005 on WinXP
2008-10-06 13:55:33 -05:00
Scott Wegner
4ee45f7edd [svn-r15786] Purpose: Bring h5diff test updates to Windows
Description:
The test files used for the h5diff test script were recently moved to a new directory, and the format of the testing was changed.  This checkin brings the changes to Windows as well.

Tested:
VS2005 on WinXP
2008-10-06 13:43:18 -05:00
Scott Wegner
40b529efce [svn-r15785] Purpose: Bring Fortran H5_DBLE_InterfaceInclude.f90 and H5test_kind_SIZEOF.f90 to Windows
Description:
These files were ported from the trunk to the 1.8 branch in rev. 15727.  This checkin adds the new files to our Windows projects as well.  In particular, we use H5_DBLE_InterfaceInclude (rather than *Exclude), and have replaced H5test_kind.f90 with H5test_kind_SIZEOF.f90.

Tested:
VS2005 on WinXP (only build)
2008-10-06 11:57:12 -05:00
Scott Wegner
752010a3a7 [svn-r15784] Purpose: Minor update to h5repack Windows test script
Description:
The one final test that was failing was due to a filename change.  I missed it in Pedro's last update-- all tests pass now.
2008-10-06 11:39:38 -05:00
Scott Wegner
793510b1c1 [svn-r15783] Purpose: Update Windows h5repack test script for new directory
Description:
The h5repack test files were added to a new testfiles/ subdirectory, and the test script update.  This checkin brings those changes to Windows.  We also re-enable a test for the userblock which was disabled for other reasons before.

Note: One h5repack test is still failing, but I think it's a minor error that Pedro and I can correct fairly easily later today.

Tested
VS2005 on WinXP
2008-10-06 11:16:42 -05:00
HDF Tester
447739d9af [svn-r15781] Snapshot version 1.8 release 1 (snap6) 2008-10-05 22:11:40 -05:00
Christian Chilan
873503eb36 [svn-r15771] Added feature to display file open and close times.
Tested on kagiso and cobalt.
2008-10-03 15:50:19 -05:00
Neil Fortner
2d9122df16 [svn-r15768] Fix version numbers in vms h5pubconf.h
Tested: gedit
2008-10-03 12:00:54 -05:00
Vailin Choi
a0064d012a [svn-r15766] Modifications for bug #1247 so that the user can specify the driver
to use when opening the external linked target file.
1. Two new public routines are added to H5Plapl.c as well as
"del/copy/close" callbacks for the property itself.
2. Modify H5L_extern_traverse() to use the fapl set via
H5Pset_elink_fapl() and retrieve via H5Pget_elink_fapl().
3. Add 3 tests to links.c to verify H5Pset/get_elink_fapl().

Also fix the compiler warning for the "if condition" in
H5_build_extpath() of H5system.c.
2008-10-03 10:45:54 -05:00
Pedro Vicente Nunes
313d2cc82c [svn-r15759] move h5copy testfiles to /tools/h5copy/testfiles
tested: linux
2008-10-02 15:39:04 -05:00
Pedro Vicente Nunes
923d421509 [svn-r15754] Bug #1312
Solution:
Check for the existence of chunks before pruning them (an assertion was triggered when attempting to do so)

Tested: windows , linux, solaris
2008-10-02 13:12:23 -05:00
Pedro Vicente Nunes
bb206d572c [svn-r15750] move h5repack test files to /tools/h5repack/testfiles
tested: linux
2008-10-01 15:04:33 -05:00
Pedro Vicente Nunes
e43c4a5a38 [svn-r15745] Move h5diff testfiles to /tools/h5diff/testfiles
Tested: linux
2008-10-01 14:07:55 -05:00
Scot Breitenfeld
2041f537e6 [svn-r15742] Maintenance: Merged new Fortran Features and tests from trunk into hdf5_1_8 branch
(used svn merge -r 14941:15740 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran
              command).
2008-09-30 19:41:00 -05:00
Pedro Vicente Nunes
cdb4e39a13 [svn-r15731] #1307
A space id was not closed in H5PTopen

Tested: windows, linux
2008-09-30 13:25:14 -05:00
Scot Breitenfeld
35ef863573 [svn-r15728]
Cosmetic: Fixed spacing issue in Fortran summary output statement.
2008-09-30 11:45:31 -05:00
Scot Breitenfeld
fe1ca64d16 [svn-r15727]
Maintenance: Merged new Fortran Features and tests from trunk into hdf5_1_8 branch
             (used svn merge -r 14941:14525 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran
              command).
2008-09-30 11:42:10 -05:00
Scot Breitenfeld
f361635ae5 [svn-r15726] Description:
Made changes to reflect the changes made in the fortran directory which merged the fortran trunk into the 1.8 branch.
2008-09-30 11:39:35 -05:00
Scot Breitenfeld
b8ed65ed62 [svn-r15725] Description:
Made changes to reflect the changes made in the fortran directory; merged the fortran trunk into the 1.8 branch.
2008-09-30 11:36:29 -05:00
Pedro Vicente Nunes
0cd5c3edb2 [svn-r15720] Added a file with user block data to be used by the h5repack windows shell script only Note: for the unix shell script this file is not used 2008-09-29 13:11:39 -05:00
Scott Wegner
7a86d8e3d3 [svn-r15719] Purpose: Update Windows h5import test script, and disable a h5repack test
Description:
The test script format was changed for h5import, including many file-name changes.  This checkin brings those updates to Windows.

This checkin also disables a previously-added h5repack test for the userblock.  The test is disabled for now because Windows cannot find the input file ublock.bin.  The file is generated dynamically on other systems, but cannot be easily generated for use on Windows.  We should re-enable this test in the future when ublock.bin is added to svn.

Tested:
VS2005 on WinXP
2008-09-29 11:52:52 -05:00
Pedro Vicente Nunes
e8630b6e80 [svn-r15718] renamed generated binary files to have the extension .bin and the same name as the associated .conf file
tested: linux
2008-09-29 11:15:58 -05:00
HDF Tester
993baa185a [svn-r15715] Snapshot version 1.8 release 1 (snap5) 2008-09-28 17:50:03 -05:00
Albert Cheng
ebd7c384e0 [svn-r15712] Purpose:
features.

Description:
Added -shlib tests and verbosity control.

Tested Platform:
Kagiso.
2008-09-27 04:17:18 -05:00
Raymond Lu
501e01d388 [svn-r15707] I changed the return values of H5Fget_obj_ids and H5Fget_obj_count to ssize_t and modified
C++ and Fortran API functions.  This is for bug #1245. 

Tested on kagiso - I've tested the same change using h5committest.
2008-09-26 14:45:43 -05:00
Pedro Vicente Nunes
d711cb1a3b [svn-r15706] make a test generate a LE output for test portability
tested: linux, solaris
2008-09-26 14:23:10 -05:00
Quincey Koziol
fa3617e1ce [svn-r15702] Description:
Bring back r15701 from trunk:
        Remove some unused variables

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    Too minor to require h5committest
2008-09-25 18:00:13 -05:00
Pedro Vicente Nunes
0fffc46964 [svn-r15700] added wb falg to read binary files in WIN32
tested: windows
2008-09-25 15:48:22 -05:00
Pedro Vicente Nunes
64b3c0a961 [svn-r15698] renamed input text files to have the extension .txt
tested: linux
2008-09-25 10:46:41 -05:00
Pedro Vicente Nunes
d1aa3ee4d7 [svn-r15697] renamed configuration files to have the extension .conf
tested: linux
2008-09-25 10:28:43 -05:00
Pedro Vicente Nunes
1294681ee1 [svn-r15695] update manifest 2008-09-24 16:19:34 -05:00
Pedro Vicente Nunes
6669874698 [svn-r15694] 1)
Bug fix #1281
The TEXTFPE was described in the usage (read floats in scientific notation) but was not implemeneted.
Solution:
remove TEXTFPE from the help system and have the TEXTFPE input type do
the same thing as TEXTPF currently does to support backwards compatibility (the format read for both TEXTFPE and TEXTPF is %f)
added a test

2)
renamed configuration files to have the extension .conf

tested: windows, linux
2008-09-24 16:13:49 -05:00
Pedro Vicente Nunes
f1b33ea578 [svn-r15685] New feature (h5diff -c) 2008-09-23 11:28:21 -05:00
Neil Fortner
cf451beffa [svn-r15683] Purpose: fix bug 1298
Description: The optimized "subset" compound conversion function would
improperly copy the "blank" space at the end of compound types.  Modified
H5T_conv_struct_init to detect when the subset type has extra space at the end,
and calculate the size of the data that should be copied into the conversion
buffer for each element.  Changes to the functions that implement these
conversions.

Tested: kagiso, linew, smirom (h5committest)
2008-09-22 18:41:58 -05:00
Pedro Vicente Nunes
299ebc0d7f [svn-r15680]
Formatted code
Tested: windows, linux
2008-09-22 16:24:22 -05:00
Quincey Koziol
926cfe52cc [svn-r15677] Description:
Bring r15676 back from trunk:

        Centralize all macros for declaring "magic numbers"/signatures for
    objects in the file into src/H5Fprivate.h, so it's easier to know what
    values have already been defined, etc.

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    Too minor to require h5committest
2008-09-22 12:33:58 -05:00
Neil Fortner
531822d443 [svn-r15672] Add missing test file, re-add it to the manifest (sorry).
Tested: kagiso
2008-09-21 23:54:38 -05:00
Quincey Koziol
23971ded14 [svn-r15671] Description:
Update MANIFEST w/changes to files.
2008-09-21 20:29:05 -05:00
Neil Fortner
13f5dbc05d [svn-r15669] Purpose: Add feature requested in bug #1282
Description: Adds capability to h5ls to traverse external links when the -r
(recursive) option is given.  Changes to the way absolute path names are patched
in h5trav.c.  Changes to the way recursive traversal starting from a non-root
group is handled (which also fixes some preexisting issues).  Tests added for
these cases.

Tested: kagiso, smirom, linew (h5committest)
2008-09-21 13:36:09 -05:00
Albert Cheng
50f38c5e59 [svn-r15666] Bug fix: (ID 1157)
Description:
Program would crash, complaining MPI calls were invoked after
MPI_Finalize() has occurred. Previously, H5close() before
MPI_Finalize() would remove the crash.

Solution:
It turned out that two H5 property objects (mpio_pl and acc_tpl)
were not closed before MPI_Finalize().  In the at_exit code,
HDF5 library attempted to close them by releasing the MPI Communicators
in them too. That was the error. Adding code to close them properly
before MPI_Finalize() took care things.

Tested:
Only in kagiso parallel. Did not run h5committest since
kagiso would have been the one running parallel test. This
part of code would not be compiled at all in non-phdf5 mode.
2008-09-19 18:19:53 -05:00
Pedro Vicente Nunes
8b5ced23dc [svn-r15663] fix comments
tested: linux
2008-09-19 15:04:28 -05:00
Pedro Vicente Nunes
d8e1072732 [svn-r15662] Cleaned compiler warnings
Bug fixes: change the options block size variable from int to hsize_t, to match the H5Pset_userblock call,
do not print print compression ratio when the requested filter is NONE


Tested: windows, linux
2008-09-19 13:57:28 -05:00
Neil Fortner
8436735388 [svn-r15657] Purpose: fix bug 1286
Description: Added configure test to see if pointer alignment restrictions are enforced (as in dereferencing an unaligned pointer causes an error).  Added code in H5Tvlen.c to avoid dereferencing unaligned pointers, conditionally compiled based on the configure test.  Added test case in dtypes.c which would previously cause such machines to fail.

Tested: kagiso, smirom, linew (h5committest); linew64
2008-09-18 15:54:36 -05:00
Christian Chilan
6ddb6ed83f [svn-r15654] Changed the absolute path of the data file to a relative path.
Tested on kagiso, smirom, and linew.
2008-09-18 14:24:32 -05:00
Christian Chilan
c50c3789fa [svn-r15648] Included macros for portability of h5perf code among HDF5 versions.
Tested on kagiso, abe, and cobalt.
2008-09-17 16:23:11 -05:00
Pedro Vicente Nunes
f140118469 [svn-r15646] Cleaned compiler warnings
Bug fix: change the options block size variable from int to hsize_t, to match the H5Pset_userblock call

Tested: windows, linux
2008-09-17 11:41:54 -05:00
Scot Breitenfeld
313cfa6e65 [svn-r15644] Description:
Fixed print spacing issue.
2008-09-17 11:32:35 -05:00
Pedro Vicente Nunes
c3113b0e3c [svn-r15642]
Add a default user block size of 1024 when none is given

add a failure condition of writing user block

Tested: windows, linux
2008-09-17 11:04:37 -05:00
Scot Breitenfeld
3f043d5cca [svn-r15640] Description:
Added test routines for h5t_get/set_fields_f.
2008-09-17 10:53:09 -05:00
Albert Cheng
b93a55bbcd [svn-r15638] Bug 710: partial fix.
Temporary removed b2 from the --enable-debug=all list so that this option
will pass. "configure --help" lists the --enable-debug=all and users tend
to use it and end up with compile failures in the b2 debug code.  Since this
bug will not be fixed soon, this is a temporary fix to let the configure and
build work.

Tested:
h5committest plus "--enable-debu=all" test in kagiso.
2008-09-16 16:26:38 -05:00
Scot Breitenfeld
d45346f76c [svn-r15631] Description:
In nh5tget_offset_c:

(1) The return value type of H5Tget_offset was set to size_t where
    it should be of type int.

(2) Was if offset was equal to 0 it returned the error code of -1 back to 
    Fortran, this was changed to return an error code of -1 when the
    offset value is < 0.

In h5tget_norm_c:

(1) was if the return value of H5Tget_norm = 0 it would return an error
code to Fortran, but from enum of the return value:

typedef enum H5T_norm_t {
    H5T_NORM_ERROR       = -1,  /*error                                      */
    H5T_NORM_IMPLIED     = 0,   /*msb of mantissa isn't stored, always 1     */
    H5T_NORM_MSBSET      = 1,   /*msb of mantissa is always 1                */
    H5T_NORM_NONE        = 2    /*not normalized                             */
    /*H5T_NORM_NONE must be last */
} H5T_norm_t;

only when -1 is returned is there an error, changed it to return an error only if the value of H5T_NORM_ERROR = -1.
2008-09-16 12:05:25 -05:00
Quincey Koziol
b9be045596 [svn-r15629] Description:
Remove trailing whitespace from C/C++ source files, with the following
script:

   foreach f (*.[ch] *.cpp)
       sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
   end

Tested on:
   Mac OS X/32 10.5.5 (amazon)
   No need for h5committest, just whitespace changes...
2008-09-16 11:22:16 -05:00
MuQun Yang
37a1f87664 [svn-r15625] This check-in fixes a bug inside parallel HDF5 testsuite.
When enable-debug is turned on, a special macro block H5_HAVE_INSTRUMENTED_LIBRARY inside HDF5 will be executed to check if some collective chunk IO test cases are being run with the correct settings(one link, multiple chunk etc.). However,when complicated derived datatype in some mpi-io packages are not supported, the library has to switch one link IO with/without the optimization to multiple chunk IO with/without the optimization. The current testsuite doesn't know this and generates a false assertion failure message.

This check-in fix this problem by providing a second property to avoid the false faiure message.


Tested at abe(NCSA linux cluster) and kagiso.
2008-09-15 17:25:31 -05:00
MuQun Yang
0a654a9df9 [svn-r15624] This check-in fixes a bug inside parallel HDF5 testsuite.
When enable-debug is turned on, a special macro block H5_HAVE_INSTRUMENTED_LIBRARY inside HDF5 will be executed to check if some collective chunk IO test cases are being run with the correct settings(one link, multiple chunk etc.). However,when complicated derived datatype in some mpi-io packages are not supported, the library has to switch one link IO with/without the optimization to multiple chunk IO with/without the optimization. The current testsuite doesn't know this and generates a false assertion failure message.

This check-in fix this problem by providing a second property to avoid the false faiure message.
2008-09-15 17:20:16 -05:00
HDF Tester
260228e645 [svn-r15621] Snapshot version 1.8 release 1 (snap4) 2008-09-14 17:50:44 -05:00
Quincey Koziol
80b958d8b4 [svn-r15613] Description:
Bring back r15612 from trunk:
        Minor cleanups of formatting, etc.

Tested on:
    Mac OS X/32 10.5.4. (amazon)
    Too minor to require h5committest
2008-09-11 07:36:08 -05:00
Quincey Koziol
d517c77bc0 [svn-r15610] Description:
Bring r15609 back from trunk:
        Omnibus compiler warning cleanup & some formatting happiness.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-09-10 14:53:38 -05:00
MuQun Yang
fc7993a9f0 [svn-r15605] The MPI compiler(mvapich2-0.9.8p2patched-intel-ofed-1.2) at NCSA's linux cluster(Abe) fails to handle collective IO calls with very complicate MPI derived datatype. All the values of input parameters from HDF5 are correct before passing to MPI-IO collective calls. Sometimes the following errors happen:
rank 0 in job 77  honest1.ncsa.uiuc.edu_60945   caused collective abort of all ranks
  exit status of rank 0: killed by signal 9

Up to this point, we decide to turn off the use of advanced MPI derived datatype features inside HDF5 so that complicated selection tests are ensured to be handled by HDF5.  This check-in reflects this.
2008-09-08 17:55:07 -05:00
HDF Tester
2b6b6825ab [svn-r15597] Snapshot version 1.8 release 1 (snap3) 2008-09-07 20:46:57 -05:00
Scott Wegner
6e009f1851 [svn-r15594] Purpose: Add new Fortran DEF file to Windows DLL project
Description:
All of the Windows-specific Fortran DLL code has been moved to a new file, hdf5_fortrandll.def.  This file needs to be added to the Windows hdf5_fortrandll project link properties.

Tested:
Vs2005 & IVF9.1 on WinXP
2008-09-05 09:39:18 -05:00
Scott Wegner
a8fbaf9ecd [svn-r15589] Purpose: Add new h5repack tests to Windows
Description:
New h5repack tests were added in revision 15551 and 15557, and also the syntax of one test was changed.  This was causing errors on Windows.  This checkin should fix those errors.

Tested:
VS2005 on WinXP
2008-09-03 11:30:40 -05:00
Scott Wegner
442565636a [svn-r15583] Purpose: Add Windows Fortran DLL export code to separate DEF file.
Description:
In in Fortran source code, there was a great deal of code that was necessary for Windows DLLs, and ignored for others systems.  To remove some of the bloat in the source code, we moved these definitions into separate *.def file, which will be used on by the Windows DLL project.

Tested:
VS2005 on WinXP

Note: The Windows project file will still need to be edited-- I will check that in soon.
2008-09-03 10:01:28 -05:00
Christian Chilan
39b9ddf4c8 [svn-r15581] Added script to build h5perf_serial in standalone mode.
Tested on kagiso, smirom, and linew.
2008-09-02 16:12:42 -05:00
HDF Tester
9c9337e3fd [svn-r15567] Snapshot version 1.8 release 1 (snap2) 2008-08-31 23:50:51 -05:00
Christian Chilan
c9af566e1d [svn-r15562] Added support for serial prefix HDF5_PREFIX.
Tested on kagiso, smirom, and linew.
2008-08-29 16:31:04 -05:00
Pedro Vicente Nunes
84335f79c6 [svn-r15560] new feature for h5repack (alignment) 2008-08-29 15:42:23 -05:00
Pedro Vicente Nunes
13f357a946 [svn-r15558] 1) There are 2 new command line parameters for h5repack. Together they allow a call to H5Pset_alignment to be made
-t T, --threshold=T     Threshold value for H5Pset_alignment
   -a A, --alignment=A     Alignment value for H5Pset_alignment


2) bug fix
the printing of the dataset name was not done for references (verbose mode)


tested: windows, linux
2008-08-29 15:35:51 -05:00
Neil Fortner
ca4379362b [svn-r15553] Fix potential memory leak in H5E_close_msg_cb.
Tested: kagiso
2008-08-28 17:08:06 -05:00
Scott Wegner
6803ed3729 [svn-r15542] Purpose: Add new h5repack test to Windows
Description:
There was one new h5repack test added recently.  This commit also adds it to the Windows test script

Tested:
VS2005 on WinXP
2008-08-27 09:53:58 -05:00
Pedro Vicente Nunes
9fafbf5a5f [svn-r15536] add a mention to h5repack new feature 2008-08-26 11:14:02 -05:00
Pedro Vicente Nunes
23cd7c534b [svn-r15533] #1184
Add a userblock to an HDF5 file during the repack.  The user gives  
give a filename and userblock size as command line parameters to  
h5repack and the contents of that file are stored in the  
userblock for the HDF5 file created by h5repack.


New flags to handle this -u and -b
Tested : windows, linux
2008-08-26 11:02:44 -05:00
Scott Wegner
cb166460d0 [svn-r15523] Purpose: Backport from trunk-- Fix Windows link dependencies in new app_ref DLL project
Description:
The app_refdll project was set to link with static version of hdf5 and libtest projects, which were causing the build to fail, only in Visual Studio .NET 2003, and was previously overlooked.  This corrects those errors.

Tested:
VS.NET on WinXP
2008-08-25 09:38:38 -05:00
Neil Fortner
b134708f2e [svn-r15516] Fix faulty error checking in call to H5I_remove().
Add prototype to the top of app_ref.c to suppress warning.

Tested: kagiso
2008-08-21 17:39:35 -05:00
Quincey Koziol
7a2756e7ae [svn-r15513] Description:
Bring back r15510 & r15512 from trunk:

    Fix compiler warnings and formatting.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    More tests upcoming
2008-08-21 16:15:00 -05:00
Pedro Vicente Nunes
428715468b [svn-r15511] bug fix
when comparing attributes, a type ID was not properly closed 


solution: close the Id on the iteration and continue instead of goto out of the cycle

tested: windows, linux
2008-08-21 15:39:27 -05:00
Scott Wegner
7dbcf115dd [svn-r15508] 2008-08-21 12:59:58 -05:00
Quincey Koziol
742fd2739e [svn-r15507] Description:
Bring r15501 back from trunk:

    Clean up warnings.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-08-21 12:04:04 -05:00
Neil Fortner
e70ea8d243 [svn-r15506] Change the names of some macros in app_ref.c to prevent warnings on Windows.
Tested: kagiso
2008-08-21 11:50:14 -05:00
Neil Fortner
2ab2b19d71 [svn-r15492] Added missing test. 2008-08-19 20:25:13 -05:00
Quincey Koziol
9e2496e85c [svn-r15490] Description:
Update release notes for last bug fix.
2008-08-19 14:43:56 -05:00
Quincey Koziol
7637f1b521 [svn-r15489] Description:
Bring rev. 15488 back from trunk:

    Fix bug where library could core dump when an invalid location ID was
passed to H5Giterate() (and add test for this case).

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-08-19 14:42:11 -05:00
Neil Fortner
4b141cbc6a [svn-r15486] Purpose: Allow library to shut down properly when objects have reference count
> 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)
2008-08-19 11:36:55 -05:00
HDF Tester
e660080290 [svn-r15480] Snapshot version 1.8 release 1 (snap1) 2008-08-17 18:16:49 -05:00
Neil Fortner
f6f7968df4 [svn-r15478] Removed vestigal code from H5SM_delete_from_index() which would have
dereferenced an uninitialized pointer if it had been reachable.  Closes bz
#1280.

Tested: kagiso, smirom, linew (h5committest)
2008-08-17 13:04:51 -05:00
HDF Tester
3d53b71a91 [svn-r15471] Snapshot version 1.8 release 1 (snap0) 2008-08-13 22:25:51 -05:00
Quincey Koziol
367f2125d9 [svn-r15463] Description:
Bring revision 15462 (compiler warnings) back from trunk.

Tested on:
    Mac OS X/32 10.5.4 (amazon) w/FORTRAN & C++
    (Too minor to require h5committest)
2008-08-12 08:33:49 -05:00
Neil Fortner
f040f990a0 [svn-r15459] Purpose: Modify the library to take the proper action when files with incorrect
datatype versions are encountered.

Description: The library now recognizes some problems with datatype versions in
H5O_decode_helper(), and, if not performing strict format checks, automatically
corrects them.  Framework added for other message decode routines to
automatically correct file errors.  Datatype version information added to
h5debug.  Resolves bz#1236, 1266.  Test files with incorrect datatype versions
corrected.

Tested: kagiso, smirom, linew (h5committest)
2008-08-11 10:18:54 -05:00
Neil Fortner
2df9af6ae8 [svn-r15450] Purpose: Fix various problems that were occurring when using mounted files.
Description:
Moved mount table from top file structure to shared file structure.  Moved
parent out of mount table and back into top file structure.  mounted files can
now be accessed from any handle of the parent file.  Changes to how files are
closed.  Stricter cycle checking on mounted files.  Removed unused function
H5F_has_mount().

Tested:
kagiso, smirom, linew (h5committest)
2008-08-07 16:32:36 -05:00
Pedro Vicente Nunes
c827f0450c [svn-r15447]
bug fix


http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=788
don't print array indices for regions


tested: windows, linux
2008-08-07 10:35:42 -05:00
Scott Wegner
dc7d4bc0a7 [svn-r15441] Purpose: Backport from trunk: Bring the Windows H5pubconf.h up-to-date
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
2008-08-06 15:04:37 -05:00
Pedro Vicente Nunes
a3d10354eb [svn-r15436] bug fix
the compression ratio was being printed for cases where a layout was requested and not a filter


tested: windows, linux
2008-08-06 10:26:21 -05:00
Scott Wegner
943aa55852 [svn-r15435] Purpose: Update Windows test script for new h5diff option: -c
Description:
A new parameter was added to h5diff recently.  We add a new test to the h5diff script, and change the syntax in which h5diff is called from the h5repack test script

Tested:
VS2005 on WinXP
2008-08-06 08:35:44 -05:00
Pedro Vicente Nunes
24739917cb [svn-r15434] new file for h5diff test 2008-08-05 14:37:38 -05:00
Pedro Vicente Nunes
e46107ca75 [svn-r15433] http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=1170
Summary: when using h5diff to compare the results of h5repack (or other tools that copy one HDF5 file to another), a new option is needed to allow h5diff to make an "absolute" comparison of the 2 files. This is the "contents" mode explained in the usage below.


If this mode is present, objects in both files must match (must be exactly the same). If this does not happen, the tool returns an error code of 1 (instead of the success code of 0)


Changes to the h5repack test script: the call to h5diff was changed to include -c (maintaining the previous -q). 


tested: windows, linux
2008-08-05 14:35:46 -05:00
Scot Breitenfeld
d364dc74a4 [svn-r15424] Description:
Fixed the error of passing an array to a scalar.
2008-07-29 09:19:19 -05:00
Scot Breitenfeld
607cadc648 [svn-r15419] Description:
Initialized a string with a space instead of a blank

i.e. var = '' is now var = ' '

This fixes a problem with AIX for bug 1252
2008-07-28 14:42:33 -05:00
Scot Breitenfeld
ec1358b0ca [svn-r15416] Description:
Changed the INTENT for total_error to be consistantly
INTENT(INOUT)

as noted in bug 1251
2008-07-28 12:33:38 -05:00
Scot Breitenfeld
adb2280c71 [svn-r15415] Description:
Added missing comma, i.e.

WRITE(*, "("" subroutine i"" i2.2,""()"")") j

should be

WRITE(*, "("" subroutine i"", i2.2,""()"")") j

etc...

as noted in bug 1251 and NAG compiler.


Checked the write fix using Sun f95, g95, pgf90, gfortran, ifort, absoft and all gave the correct write output.
2008-07-28 12:31:03 -05:00
Binh-Minh Ribler
98fdd752a4 [svn-r15404] Purpose: Code correction
Description:
    Accidentally left p_setId in public section in the previous checkin.
    Moved it to "protected:" section.

Platforms tested:
    Linux 2.6 (kagiso)
    SunOS 5.10 (linew)
    FreeBSD (duty)
2008-07-24 23:10:07 -05:00
Binh-Minh Ribler
836f7b53cc [svn-r15401] Purpose: Fix bug
Description:
    Changed all subclasses' setId to p_setId and put back setId in
    IdComponent.  p_setId is used in the library where the id provided
    by a C API passed on to user's application in the form of a C++ API
    object, which will be destroyed properly, and so p_setId does not
    call incRefCount.  On the other hand, the public version setId is
    used by other applications, in which the id passed to setId needs
    to be closed properly by the application, so setId must call incRefCount
    for the new object to prevent prematurely closing of the id.

Platforms tested:
    Linux 2.6 (kagiso)

    Still on going with these two platforms, but needed to check in before
    daily tests start.
    SunOS 5.10 (linew)
    FreeBSD (duty)
2008-07-24 16:18:28 -05:00
Christian Chilan
e1ee78dd09 [svn-r15398] Added declaration of functions needed for standalone building.
Tested on kagiso and abe.
2008-07-23 15:50:33 -05:00
Raymond Lu
9b6cc394cd [svn-r15392] Minor bug fix. The test tried to close an attribute handle with H5Pclose. Corrected it with
H5Aclose.  

No test needed.
2008-07-22 09:47:18 -05:00
Raymond Lu
e7037ad072 [svn-r15390] Last round of checkin introduced a bug. This checkin corrected it and made a few minor
changes.  

Last round of check in fixed the problem when an attribute was opened twice and data was 
written with one of the handles, the file didn't have the data.  It happened because each 
handle had its own object structure, and the empty one overwrote the data with fill value.
This is fixed by making some attribute information like the data be shared in the
attribute structure.

Tested on smirom, kagiso, and linew.
2008-07-21 11:50:22 -05:00
Binh-Minh Ribler
60957dc6cf [svn-r15387] Purpose: Fix bug
Description:
    Enclosed some code that test reference counts in brackets so that
    temporary objects will go out of scope before checking references.
    This is to work around the issue where some C++ compilers destroy
    temporary objects at different time than others.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-07-18 16:05:05 -05:00
Binh-Minh Ribler
d6dc8a4dfd [svn-r15386] Purpose: Fix bug
Description:
    A bug in reference counter was exposed when Ray fixed H5Awrite in
    the main library.  ::setId() called incRefCount when it shouldn't.
    Made sure that id's reference counter is manually incremented
    properly in copy constructor and operator= only.  The main library
    handles the rest.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-07-18 15:49:32 -05:00
Quincey Koziol
99e21e85c9 [svn-r15385] Description:
Correct return value for error condition to avoid compiler warning

Tested on:
    Just eyeballed, very minor
2008-07-18 09:08:21 -05:00
Christian Chilan
8b3ced0b9e [svn-r15384] Major update of h5perf files including bug fixes and extensions.
Tested on kagiso and abe.
2008-07-17 17:45:40 -05:00
Scot Breitenfeld
ba711c9cf5 [svn-r15379] Description:
Added optional "mounted" parameter to H5Gget_info_f, H5Gget_info_by_idx_f, H5Gget_info_by_name_f
2008-07-16 14:16:17 -05:00
Quincey Koziol
9981e28710 [svn-r15376] Description:
Bump shared library version # for change to H5G_info_t struct
2008-07-16 10:30:32 -05:00
Quincey Koziol
583eac5e6d [svn-r15373] Description:
Correct wrong error return value to avoid compiler warning

Tested on:
    Just eyeballed, extremely minor
2008-07-16 10:11:50 -05:00
Quincey Koziol
f21b99b592 [svn-r15371] Description:
Update release notes for file mounting bug fix and adding 'mounted' flag
to H5G_info_t.
2008-07-15 17:43:22 -05:00
Quincey Koziol
d6dadadc7e [svn-r15368] Description:
Bring back r15367 from the trunk:

    Add check to avoid mounting a file on a group twice, when the mounts
are done on the same HDF5 file, but opened with separate H5Fopen queries.

    Also add new 'mounted' flag to the H5G_info_t struct, queried with the
H5Gget_info() API call, to allow applications to detect and avoid this
situation.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Linux/64 10.5.4 (chicago)
2008-07-15 16:23:19 -05:00
Raymond Lu
ac73359fb1 [svn-r15346] Commented out attribute test because there's a bug related to the recent change of attribute in
the library.  

No test - simple change.
2008-07-11 14:07:07 -05:00
Raymond Lu
32a3d96939 [svn-r15345] Commented out tsohm.c and tattr.c test because there's a bug related to the changes of attribute
in the library.

Tested on linew - simple change.
2008-07-11 14:05:31 -05:00
Scott Wegner
81de0a75cc [svn-r15338] Purpose: Reset fill value in correct hyperslab selection (fixes bug 1155)
Description:
This bug was previously fixed, but the fixed was modified slightly from the 1.8 branch and the trunk.  The problem is that after we write a particular byte to manipulate the fill values, we need to write it back before reading and comparing to the expected value.  The previous change makes the second write after the hyperslab is manipulated, so the initial hyperslab is still incorrect.

Tested:
VS2005 on WinXP (32- and 64-bit)
h5committest
2008-07-08 12:03:45 -05:00
Neil Fortner
d989ab71f4 [svn-r15336] Fixed incorrect error message in H5Pset_fletcher32:
"unable to add deflate filter to pipeline"
->
"unable to add fletcher32 filter to pipeline"

Tested: kagiso
2008-07-08 11:20:39 -05:00
Vailin Choi
0631ac2273 [svn-r15334] Update test files for h5stat.
h5committested.
2008-07-08 09:03:46 -05:00
Raymond Lu
9f56d7f5ab [svn-r15330] When an attribute was opened twice and data was written with one of the handles,
the file didn't have the data.  It happened because each handle had its own
object structure, and the empty one overwrote the data with fill value.  This is
fixed by making some attribute information like the data be shared in the
attribute structure.

Tested on smirom, kagiso, and linew.
2008-07-07 12:00:03 -05:00
Scott Wegner
1f4ee5485e [svn-r15313] Purpose: Support Visual Studio 2008 on Windows
Description:
Write documentation for building HDF5 with the latest version of Visual Studio, 2008.  The process is very similar to building with Visual Studio 2005, but with an automatic project-file conversion beforehand.

Also adapt commandline build scripts for Visual Studio 2008 as well.

Tested:
VS2008 on WinXP
2008-07-02 14:49:20 -05:00
Raymond Lu
d238f0663c [svn-r15305] Changed H5Tcreate_array to H5Tcreate_array2 from last checkin for the bug fix for
H5Tpack.  The problem was that H5Tpack didn't act correctly with nested
compound datatype.

Tested on smirom - simple change.
2008-07-01 11:25:08 -05:00
Scott Wegner
7447d79091 [svn-r15304] Purpose: Minor typo in Windows documentation (zlib DLL directory)
Description:
When specifying library search path in Visual Studio, use the DLL folder for zlib.  Previously we pointed to the "lib" folder, which was causing confusion.
2008-06-30 15:13:23 -05:00
Scott Wegner
0c0e746ce7 [svn-r15302] Purpose: Support Intel Visual Fortran 10.1 from Visual Studio and Windows command line
Description:
Modify Windows documentation to support Intel Visual Fortran 10.1.  We have tested it in our Virtual machines, and have fixed the problems we were encountering.

Also, add a new parameter to the hdf5build.BAT and hdf5bt.BAT build scripts to support IVF 10.1.
2008-06-30 14:19:11 -05:00
Raymond Lu
2b1ee377c3 [svn-r15297] Bug fix for H5Tpack. The problem was that H5Tpack didn't act correctly with nested
compound datatype.  The size of compound type's member type wasn't updated.  It's
fixed in this commit.

Tested on smirom.  The same change was tested on three systems for v1.9.
2008-06-30 14:00:44 -05:00
Scott Wegner
372af0302f [svn-r15289] Purpose: Project Cleanup / Support directories with spaces
Description:
On Windows, we manage dynamically-generated code through "post-build" steps in Visual Studio.  However, the command for it wasn't checking to see if the code already existed, so it was re-generating in each build (and thus re-generating all dependencies).  To overcome, we simply check if the source file exists before generating it.

Also, put all paths inside quotes so we can handle directory names with spaces.

Tested:
VS2005 on WinXP
2008-06-27 11:55:02 -05:00
Scott Wegner
0dd254246c [svn-r15287] Purpose: Fix project settings for Intel Fortran 10.1
Description:
A typo in the project output file name was causing Intel Fortran 10.1 to crash.  The output file was set to "$(OutDir)\hdf5_fortranddll.dll   " (three trailing spaces).  IVF 9.1 ignored this error and continued gracefully.  However, IVF 10.1 would simply crash.  With this fix, we can now build on IVF 10.1 (so far..)

Tested:
VS2008 w/ IVF 10.1 on WinXP
2008-06-27 11:26:41 -05:00
Neil Fortner
11b12d8f96 [svn-r15284] Fixed bug 1155, added fillval.c back to windows test file, other minor cleanup in fillval.c.
Tested: kagiso
Same fix in trunk: kagiso (parallel), smirom, linew
2008-06-26 11:18:22 -05:00
Scott Wegner
c3a26ef402 [svn-r15272] Purpose: Disable fillval test on Windows
Description:
The fillval test uses random input to test various fill cases.  Certain boundary cases cause the test to fail, which produces sporadic errors on Windows.  There is a bug filed for the issue here:
http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=1155

We will disable the test until the bug is fixed.

Tested:
None, simply disabled.
2008-06-25 10:12:39 -05:00
Scot Breitenfeld
b950312318 [svn-r15255] Description:
Added the function h5tget_native_type and associated
requirements.
2008-06-20 11:38:54 -05:00
Scott Wegner
b5938a75af [svn-r15253] Purpose: Remove ttsafedll project from default build.
Description:
Somehow, the ttsafedll project was setup to build by default in Visual Studio .NET project files.  This causes build errors when the HDF5_EXT_PTHREAD variable isn't defined or the pthreads library path isn't setup.  It should be disabled by default.

Tested:
VS.NET on WinXP
2008-06-20 11:33:00 -05:00
Scott Wegner
f2a745a0bb [svn-r15241] Purpose: Port bugfix from trunk: Fix ohdr Windows timezone bug
Description:
On Windows, certain users were having trouble with the "ohdr" test, which does some processing on object header messages.  The errors were hard to reproduce on our machines, and we eventually determined that the errors were timezone-specific.

The bug is triggered on Windows when processing timestamps very near the "Epoch" (midnight on 1/1/1970)-- the mktime() function does some automatic adjustment on the time to correct for timezones.  In the USA, the correction adds a few hours; in Europe, it subtracts, thus giving us times pre-Epoch.

This only affects Windows because the Windows mktime() function cannot handle times before 1970-- other systems seemingly can.

The fix is to simply create timestamps only as early as 01/02/1970.  This way, any timezone adjustment will still be post-Epoch.

This bug only affects the ohdr test, and shouldn't be a problem in the library.  The earliest timestamps that will actually be read will be around the time HDF5 was created (~1996-7, per Quincey).

Tested:
(tested in trunk)
VS2005 on WinXP
h5committest (kagiso, linew, smirom)
2008-06-19 13:48:27 -05:00
Quincey Koziol
ea9b094c18 [svn-r15228] Description:
Bring back revision 15227 from trunk:

	Small cleanups to copying datatypes

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.5.3 (amazon) in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2008-06-17 15:07:50 -05:00
Quincey Koziol
e7b55928b6 [svn-r15214] Description:
Fix gcc 4.2 flag that was put in gcc 4.1 section

Tested on:
        Eyeballed & man pages
2008-06-13 07:29:07 -05:00
Quincey Koziol
970fcd54e0 [svn-r15212] Description:
Bring back revision 15211 from trunk:

        Update the gcc flags for version 4.3

        Clean up warnings

Tested on:
    Mac OS X/32 10.5.3 (amazon)
2008-06-12 23:55:44 -05:00
Quincey Koziol
c7ad57374b [svn-r15209] Description:
Bring back revision 15208 from trunk:

    Add a "HDcompile_assert" macro for assertions that can/should be checked
at compile time, as opposed to run time.  (And used it for a couple of simple
cases, to begin)

Tested on:
    Mac OS X/32 10.5.3 (amazon)
2008-06-12 14:36:01 -05:00
Quincey Koziol
7dcf5b3972 [svn-r15189] Description:
Bring revision 15188 back from trunk:

        Avoid leaking memory when copying the internal "shared" struct for
a named datatype when it's already been opened earlier.

Tested on:
	Linux/64 2.6 (chicago)
2008-06-10 12:28:42 -05:00
Scott Wegner
6df2bbd6e9 [svn-r15181] Purpose: _WIN32 macro cleanup
Description:
As part of our Windows cleanup, we try to remove windows-specific tweaks in the source code.  There are many instances where Windows code is introduces via ifdef's.  We re-evaluate whether they are still required, and found that many of them are not.  Others we change to "feature"-specific code, rather than Windows-specific.

Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagisopp, smirom, linew)
2008-06-09 12:31:22 -05:00
Christian Chilan
0304c9a5fa [svn-r15180] Change copyright notice to THG only. 2008-06-09 12:19:55 -05:00
Scott Wegner
720a985115 [svn-r15163] Purpose: Create new HDpthread_self and HDpthread_self_ulong macros
Description:
On Windows, the pthread_self function cannot be used to print the returned thread ID for debugging.  Instead, we need a separate function, GetCurrentThreadId.  To eliminate some Windows ifdef's in the code, we create two new function macros which can be used by all platforms.  It is conditionally defined in H5win32defs.h, and globally in H5private.h.

Tested:
VS2005 w/ pthreads on WinXP
kagiso w/ pthreads
2008-06-06 14:10:20 -05:00
Scott Wegner
0b5f34bfa6 [svn-r15160] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead.  This way, we can map special versions of the call on particular systems.  Previously, it was all done in H5private.h.  However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h.  This way, we can use the non-Posix versions that Visual Studio sends warnings about.

Some macros are set specifically in the platform-specific header files.  Then, any macros left unset will be set by the "default" implementation in H5private.h.

This checkin also cleans up various source files to use the HD* macros when possible.

Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-05 16:39:30 -05:00
Pedro Vicente Nunes
13cc35de11 [svn-r15159]
- h5dump: when doing binary output (-b), the stdout printing of attributes 
           was done incorrectly. Removed printing of attributes when doing binary 
           output. PVN - 2008/06/05
2008-06-05 16:23:09 -05:00
Scott Wegner
1c63211301 [svn-r15152] Purpose: Add testhdf5_1_8fortran[dll] Windows projects as dependencies to all_fortran
Description:
The projects testhdf5_1_8fortran[dll] which test the new fortran features in HDF5 1.8 were not registered as dependencies to the "all_fortran" pseudo-project.  As a result, the projects would not be built if you simply build all_fortran in Visual Studio, rather than "Build Solution".  This is a very minor cleanup, but is neccessary to be consistent in our projects.

Tested:
VS2005 on WinXP x64
2008-06-05 14:56:23 -05:00
Pedro Vicente Nunes
1229fc7886 [svn-r15151]
Fix for #1169
http://bugzilla.hdfgroup.uiuc.edu/show_bug.cgi?id=1169

don't print attributes to stdout when doing binary output
added an attribute to the file run on the binary output test

tested: windows, linux
2008-06-05 14:26:35 -05:00
Quincey Koziol
c7b6018bda [svn-r15148] Description:
Bring back revision 15146 from the trunk:

        Correct the definition of the 'nbytes' variable in the in-memory version
    of the B-tree key for chunks from 'size_t' to 'uint32_t', to match the
    definitions everywhere else.

Tested on:
    Mac OS X/32 10.5.3 (amazon) debug & production
    Linux/64 2.6 (chicago) production
2008-06-05 11:47:50 -05:00
Mike McGreevy
c72fb2f329 [svn-r15147] Purpose: Bug Fix
Description: Changing h5perf installation so only h5perf is installed when
             parallel is enabled, while only h5perf_serial is installed when
             parallel is disabled.

Tested: kagiso
2008-06-05 11:46:29 -05:00
Scott Wegner
7e8df66a0e [svn-r15144] Purpose: Add new h5ls test to Windows
Description:
A new test case was added to the general testh5ls script.  This update adds the test to Windows as well.

Tested:
VS2005 on WinXP
2008-06-05 10:10:23 -05:00
Albert Cheng
018ba9a701 [svn-r15136] Purpose:
bug fixes.

Description:
Added code to create an empty hdf5 (named h5diff_empty.h5) in order to test
if h5diff compares correctly an empty hdf5 vs. a non-empty one.

Tested:
Tested in kagiso of h5diffgentest itself.
Verified by h5dump that h5diff_empty.h5 was indeed empty.
Then "h5diff h5diff_empty.h5 h5diff_basic1.h5" returned 0 (should have
returned non-zero).
2008-06-04 12:14:23 -05:00
Quincey Koziol
6e196a7b66 [svn-r15134] Description:
Brought revision 15133 back from trunk:

        Fixed bug in h5ls that prevented relative group listings (like
    "h5ls foo.h5/bar") from working correctly.

Tested on:
    Mac OS X/32 10.5.3 (amazon)
2008-06-03 19:25:29 -05:00
Quincey Koziol
79380c228c [svn-r15132] Description:
Bring back revision 15131 from trunk:

        Finish omnibus chunked dataset I/O refactoring, to separate general
    actions on chunked datasets from actions that are specific to using the v1
    B-tree index.

        Cleaned up a few bugs and added some additional tests also.

Tested on:
    Mac OS X/32 10.5.3 (amazon)
    Linux/32 2.4 (chicago)
2008-06-03 15:34:58 -05:00
Christian Chilan
a9fa9a4a37 [svn-r15129] Revise man page and copyright notice.
Tested on smirom.
2008-06-03 00:29:41 -05:00
Scott Wegner
0eb9e1ac43 [svn-r15127] Purpose: Make Windows threadsafe debug message more useful
Description:
On Linux-like systems, we can get the ID of the current thread through a pthread_self.  However on Windows, the return cannot be cast as a threadID, so we simply couldn't get the ID.  Previously we simply gave up and printed a message that we couldn't get an ID.  Instead, though, we can use the Windows-specific call to GetCurrentThreadId(), which achieves the same goal.  This way we can provide better debug output with threadsafe features.

Tested:
VS2005 on WinXP
VS.NET on WinXP
(other platforms not tested because change is within _WIN32 ifdef)
2008-06-02 15:39:02 -05:00
Scott Wegner
73fe712356 [svn-r15125] Purpose: Cleanup unneeded Windows source
Description:
Previously, we maintained some source files that are commonly generated dynamically on other systems.  Now, we also generate them on Windows as well.  We should remove them from the repository so old versions are not accidentally used.

Also, clean up the project files to organize generator programs.

Tested:
VS2005 on WinXP
VS2005 on WinXP x64
VS.NET on WinXP
2008-06-02 14:59:45 -05:00
Scott Wegner
f1bfdda38c [svn-r15121] Purpose: Support Visual Studio .NET builds from command-line
Description:
In our Windows command-line build script, we now support building with Visual Studio .NET, although VS2005 is still the default.  Building with VS.NET still imposes the same feature restrictions as through the IDE:
-- 64-bit builds are unsupported
-- Fortran is unsupported

Tested:
VS.NET on WinXP
VS2005 on WinXP
2008-06-02 11:17:49 -05:00
Scott Wegner
8953ecfe9d [svn-r15120] Purpose: Ignore Windows POSIX-Depreciation warnings in Visual Studio 2005
Description:
On Windows, we receive many compiler warnings because Microsoft has implemented many "security-enhanced" versions of POSIX functions.  However, the old versions still exist, so the warnings can be ignored.  By setting a preprocessor definition, we can disable many of these warnings.  On a typical HDF5 build, this reduces the number of warnings from ~1500 to ~600

Tested:
VS2005 on WinXP
2008-06-02 11:14:56 -05:00
Scott Wegner
c65d5ffe8d [svn-r15118] Purpose: Backport Windows project cleanup from trunk: remove ignored system library, standardize program debug information, and unify Windows h5tinit
Description:
These changes are made via a user's suggestion, bugzilla bug #1164.  These have all been tested in the trunk, and are stable/favorable changes.

In many of our project files on Windows, we have our linker setting set to ignore old link libraries-- either libc.lib or libcd.lib.  This is a relic from converting project files from old versions of Visual Studio to newer ones, and is unnecessary.  We remove the ignored library from the project files.  This actually makes no difference in the output binaries.

In our debug project configurations, many of the projects were generating debug information for "Program Database and Edit & Continue".  Other projects were using different settings, or none at all. We standardize to use "Program Database" setting, because it generates much smaller .obj files and cuts out unnecessary debug information.

Previously, there was Windows-dependent code inside H5detect.c, because not all projects could access the gethostname() function.  However, we standardize our project-files to link with WS2_32.lib, so now this function is available.  Thus, the Windows-specific code has been removed from H5detect.c.

Tested:
VS2005 on WinXP
VS.NET on WinXP
2008-06-02 10:36:55 -05:00
Mike McGreevy
ac339aa792 [svn-r15111] Purpose: Bug Fix
Description: While '-Wl,-rpath' information was being removed from compile
             lines when using --disable-sharedlib-rpath, some information
             was still hidden in another variable that never got reset and
             thus snuck into the executables. This fix should take care of 
             that issue.

Tested: kagiso, smirom
2008-05-30 15:59:01 -05:00
Scott Wegner
454b061aa6 [svn-r15107] Purpose: Provide better fix for h5dump xml test failure on Windows
Description:
Shortly before the release, we noticed that one of our h5dump xml Windows tests failed when used with a release tarball.  This is because of the Unix-style EOL characters in the expected output.  For the release, we simply skipped the test.  However, we can instead convert the expected output to Windows EOL format, and run the test.  This is a backport from the HDF5 trunk.

Tested:
VS2005 on WinXP
2008-05-30 14:15:08 -05:00
Elena Pourmal
3605a2dc2d [svn-r15105] Maintenance: Modified version to 1.8.1-snap0, and updated HISTORY-1_8.txt and RELEASE.txt
for the further development in the branch.
2008-05-30 13:33:13 -05:00
Elena Pourmal
fbaf972a66 [svn-r15097] Maintenance: added g95 info for Linux 32 platforms and created a new source tar ball. 2008-05-29 15:30:57 -05:00
Elena Pourmal
727fa10578 [svn-r15091] Maintenance: used bin/release to release 1.8.1 tar ball (it is under /mnt/scr1/release-binary/hdf5/v181)
Checking in updated files before tagging the release.
2008-05-29 11:58:58 -05:00
HDF Tester
1d7ed4519c [svn-r15088] Update pgi version. 2008-05-28 16:53:06 -05:00
Binh-Minh Ribler
2cd6b67fd9 [svn-r15087] Purpose: Update for C++ API
Description:
    Noted the change from:
	void IdComponent::dereference(IdComponent& obj, void* ref)
    to
	void H5Object::dereference(H5File& h5file, void* ref)
	void H5Object::dereference(H5Object& obj, void* ref)
2008-05-28 16:48:59 -05:00
Albert Cheng
d317830e27 [svn-r15085] Updated version number to 1.8.1 to prepare for official release of v1.8.1. 2008-05-28 16:40:32 -05:00
Albert Cheng
3aa5d8b987 [svn-r15083] INSTALL_parallel:
Added and updated instructions for Red Storm serial and parallel build.
RELEASE.txt:
   Added Red Storm information.  Also, rearranged order of entries according
   to more recent first.
2008-05-28 16:32:32 -05:00
Elena Pourmal
b0fe33f243 [svn-r15080] Maintenance: Updated the file with the 1.8.0 release info (should be done long time ago ;-) before
rolling the 1.8.1 release tar ball.
2008-05-28 16:10:52 -05:00
Binh-Minh Ribler
bf9465c9cc [svn-r15079] Purpose: Update for C++ API
Description:
    Added notes about fixes of bugzillas 1045 and 1068.
2008-05-28 12:41:29 -05:00
Frank Baker
c6a0c6f6e7 [svn-r15078] Description:
Editorial pass
2008-05-27 17:26:04 -05:00
Scott Wegner
92fe8775dd [svn-r15077] Purpose: Comment out one Windows test that fails in release tarball
Description:
On test fails from the release tarball.  Specifically, the h5diff xml test for tsaf.h5.xml.  For some reason, fc (Windows diff utility) detects differences from the expected output if the file has unix-style end-of-line characters.  It only happens for this test.  I suspect it is because the file is so long, but it's too late to debug for the release.  Simply comment it out until we can fix it.

Tested:
VS2005 on WinXP (32- and 64-bit)
2008-05-27 15:25:15 -05:00
Larry Knox
726af41499 [svn-r15076] Update Platforms Tested and Supported Configuration Features Summary sections for THG and NCSA machines. 2008-05-27 14:50:30 -05:00
Elena Pourmal
c4200837ad [svn-r15071] Maintenance: Added information to the file for upcoming 1.8.1 release. There is still work to do
on this file before the source release.
2008-05-23 17:22:22 -05:00
Elena Pourmal
cd60d38593 [svn-r15068] Maintenance: used h5vers script to change version number to 1.8.1-rc1 before creating a tar
ball for remote testing
2008-05-22 17:07:25 -05:00
Scot Breitenfeld
ae27797c11 [svn-r15063] Description:
Added processor id in failure messages for MPI.
2008-05-21 14:52:03 -05:00
Scot Breitenfeld
f2989dab4c [svn-r15062] Description:
Removed extra MPI calls in subroutine by just passing
MPI variables into subroutines.

Added checks for MPI errors.

Cleaned-up formatting.
2008-05-21 14:43:22 -05:00
Elena Pourmal
b85229d0e2 [svn-r15059] Maintenance: File space identifier was not closed causing memory growth; fixed
Platforms tested: kagiso (minor fix)
2008-05-21 14:21:01 -05:00
Binh-Minh Ribler
e2b412cbf5 [svn-r15058] Purpose: Code cleanup
Description:
    Removed an unnecessary member function, H5File::dereference.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-05-21 12:43:12 -05:00
Scott Wegner
85608c722a [svn-r15055] Purpose: Update Windows h5repack test script
Description:
Add a function to test old h5repack syntax, as well as a new test case for it.

Tested:
VS2005 on WinXP
2008-05-21 10:28:43 -05:00
Pedro Vicente Nunes
74568cf5ca [svn-r15053] Add a test for the 1.6.7 -i infile -o outifle for backward compability
Used the function TOOLTEST  from 1.6.7

Tested: linux
2008-05-21 09:57:30 -05:00
Binh-Minh Ribler
831fd1712c [svn-r15051] Purpose: Fix typo
Description:
    Remove c_str() from a String argument.

Platforms:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-05-20 19:00:08 -05:00
Pedro Vicente Nunes
69929158f5 [svn-r15048] bug fix regarding change from -i to -d regarding number of links in indexed format
tested: windows
2008-05-20 15:35:09 -05:00
Binh-Minh Ribler
988e907b11 [svn-r15046] Purpose: Fixed bugs
Description:
    The class hierarchy was revised to address the problem reported in
    bugzilla #1068.  Classes AbstractDS and Attribute are moved out of
    H5Object.  Class Attribute now multiply inherits from IdComponent and
    AbstractDs and class DataSet from H5Object and AbstractDs.

    In addition, data member IdComponent::id was moved into subclasses:
    Attribute, DataSet, DataSpace, DataType, H5File, Group, and PropList.

    Also fixed bugzilla 1045: revised Attribute::write and Attribute::read
    wrappers to handle memory allocation/deallocation properly. (bugzilla 1045)

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-05-20 15:24:44 -05:00
Albert Cheng
980d183790 [svn-r15045] Bug fix.
Description:
perf would crash at the end as it complained it was doing MPI calls after
MPI_Finalize() is called.  I suspect the HDF5 library is making MPI calls
in the at_exit area.  This should not happened.

Solution:
Added the H5exit() right before MPI_Finalize() fixed the problem.
But it needs to find out why HDF5 library is making MPI calls in
the at_exit() area.  It should not.
Also, changed the temporay data file name from /tmp/test.out to
perftest.out, both to avoid multiple instance of this may use the
same /tmp/xxx name and also make the file name less generic.

Tested:
Kagiso PP.
2008-05-20 14:08:45 -05:00
Albert Cheng
4344cf5391 [svn-r15042] Bug fix.
Description:
The fortran Makefile.am used HDF_FORTRAN to indicate it is part of the
Fortran API source so that conclude.am will give fortran api prefix in the
test output.  The symbox HDF_FORTRAN is also used in configure for a different
purpose (indicated --enable-fortran). They conflicted.
Similar problem for the symbol HDF_CXX.

Solution:
Changed all the involved Makefile.am to use "FORTRAN_API" instead. It is
a more appropriate name.  Same for CXX_API.

Along the way, discovered that the Makefile.am of hl/fortran/test and
hl/cxx/test did not have those symbols at all.  Added them in.

Platform tested:
Kagiso serial and h5committested (kagisopp, smirom, linew).
2008-05-19 20:29:26 -05:00
Mike McGreevy
6631ced7a9 [svn-r15040] Purpose: Configure Fix
Description: Removing make target 'make check-perform'. The extra target is 
             unneeded because the tests don't take as long to run as initially
             anticipated, and can be lumped in with 'make check'.

Tested: kagiso
2008-05-19 15:37:30 -05:00
Scott Wegner
d11a2b8ba6 [svn-r15039] Purpose: Update h5repack test script
Description:
1 new test added for command-line syntax compatibility

Tested:
VS2005 on WinXP
2008-05-19 10:32:15 -05:00
Quincey Koziol
8a2023b552 [svn-r15038] Description:
Bring revision 15037 from trunk:

    Better cleanup of internal structures when no szip encoder.

Tested on:
    Linux/32 2.6 (kagiso) w/szip-no encoder
2008-05-19 01:05:31 -05:00
Quincey Koziol
90b94c00fe [svn-r15035] Description:
Backport revision 15034 from trunk: 

	Correct another case of using 'size_t' for chunk sizes where 'uint32_t'
was necessary.

Tested on:
	FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN
2008-05-18 23:47:38 -05:00
Albert Cheng
feab08a0ee [svn-r15033] Purpose:
Improvement.

Description:
src/libhdf5.settings was the initial configure summary and is installed.
Then configure is changed to dump a summary of the configure settings to
the output and also append it to src/libhdf5.settings.  That created
two different output formats and duplicated information.  This is the
initial attempt to clean up this confusion and unify the output format.

It is decided to use the src/libhdf5.settings template as the unified means.
This requires more macros symbols be defined. The following symbols are
all related to generating the src/libhdf5.settings file.

AC_SUBST(EXTERNAL_FILTERS)
AC_SUBST(MPE) MPE=no
AC_SUBST(STATIC_EXEC) STATIC_EXEC=no
AC_SUBST(HDF_FORTRAN) HDF_FORTRAN=no
AC_SUBST(FC) HDF_FORTRAN=no
AC_SUBST(HDF_CXX) HDF_CXX=no
AC_SUBST(CXX) HDF_CXX=no
AC_SUBST(HDF5_HL) HDF5_HL=yes
AC_SUBST(GPFS) GPFS=no
AC_SUBST(LINUX_LFS) LINUX_LFS=no
AC_SUBST(INSTRUMENT) INSTRUMENT=no
AC_SUBST(CODESTACK) CODESTACK=no
AC_SUBST(HAVE_DMALLOC) HAVE_DMALLOC=no
AC_SUBST(DIRECT_VFD) DIRECT_VFD=no
AC_SUBST(THREADSAFE) THREADSAFE=no
AC_SUBST(STATIC_SHARED)
AC_SUBST(enable_shared)
AC_SUBST(enable_static)
AC_SUBST(UNAME_INFO) UNAME_INFO=`uname -a`

The src/libhdf5.settings.in has CONDITIONAL's added to it too.  The
untrue conditions turned into a "#" and these lines are cleaned by the 
post processing script.

Platform tested:
h5committest on kagiso, smirom and linew. (smirom had failures not due to
my changes.)
2008-05-18 21:25:13 -05:00
Elena Pourmal
f0b8da5851 [svn-r15029] Maintenance: Fixed a comment 2008-05-17 22:05:42 -05:00
Elena Pourmal
7c818eaf88 [svn-r15027] Maintenance: Fixed a typo in the fortran h5tget(set)_fields_f subroutines.
Platfomrs tested: kagiso with Intel compilers (this is bug 1046, I am not closing it since there is
                  no test for those routines yet)
2008-05-17 21:57:47 -05:00
Pedro Vicente Nunes
57708e46ad [svn-r15024] backward compatibility for old -i infile -o outfile options
if these are detected this syntax is used, otherwise the one in usage is used
there was another -i option for 

-i L2, --indexed=L2     Minimum number of links in the indexed format

That was changed to -d

-d L2, --indexed=L2     Minimum number of links in the indexed format

Tested: windows, linux
2008-05-16 15:36:48 -05:00
Scott Wegner
1962e806c7 [svn-r15021] Purpose: Minor updates to Windows documentation via Kent's recommendations. 2008-05-16 13:47:25 -05:00
Mike McGreevy
c5fa17ae84 [svn-r15019]
Purpose: Configure Fix

Description: The test program h52gifgentst was getting installed in the bin
             directory during 'make install', and it shouldn't. Make now builds
             the program for use in testing but doesn't install it during
             'make install'.

Tested:      kagiso
2008-05-16 12:42:16 -05:00
Elena Pourmal
968552fbc8 [svn-r15018] Maintenance: Brought changes from th etrunk to 1.8 branch.
Platforms tested: kagiso with g95, Intel and PGI compilers and with -i8 flag
                  smirom with g95 and -i8 flag, duty with gfortran42
2008-05-16 10:10:36 -05:00
Quincey Koziol
c23c6b9392 [svn-r15016] Description:
Port revision 15015 back to 1.8 branch:

>     Detect chunks that are >4GB before dataset gets created and return error
> to application.
> 
>     Tweak lots of internal variables that hold the chunk size/dimensions to
> use an 'uint32_t', instead of a 'size_t', so that the integer size is constant.
> 
>     Correct a number of our tests which were creating datasets with chunks
> that were >4GB and add some specific tests for >4GB chunk size detection.
> 
>     Minor whitespace & other code cleanups.

Tested on:
    Mac OS X/32 10.5.2 (amazon)
    Forthcoming testing on other platforms...
2008-05-15 22:27:13 -05:00
Mike McGreevy
70cdaa12b2 [svn-r15013] Purpose: Configure Macro Modification
Description: The macro H5_HAVE_WINDOW_PATH is now defined to 1 only when
             MinGW is in use. This is needed to fix the "links" test, and the
             external link feature in the library.

Tested: kagiso
2008-05-15 16:25:52 -05:00
Mike McGreevy
484b4c47c3 [svn-r15011] Purpose: New configure option
Description: The configure option --disable-sharedlib-rpath will disable
             embedding of the '-Wl,-rpath' information into executables
             when shared libraries are produced.

Tested: kagiso
2008-05-15 16:02:34 -05:00
Mike McGreevy
362e5d9a10 [svn-r15006] Purpose: configure cleanup
Description: cleaning up configure related to removal of --disable-hsizet
             flag, which we no longer support.

Tested: kagiso
2008-05-15 10:48:48 -05:00
Scott Wegner
6481c7451f [svn-r15004] Purpose: Minor updates to Windows documentation.
Description:
-- INSTALL_Windows.txt:
   -- Update szip version number to 2.1
   -- Extra details for setting up 64-bit builds
   -- Explain adding HDF5 link settings more clearly
   -- Add link to FAQ
   -- Misc. typos and formatting
-- INSTALL_Windows_From_Command_Line.txt
   -- Add note about 64-bit support
-- INSTALL_Windows_Short_NET.TXT
   -- Add notes detailing features unsupported on VS.NET
-- INSTALL_Windows_Short_VS2005.TXT
   -- Add notes about extra features.
2008-05-15 09:16:24 -05:00
Scott Wegner
ea4dea20fe [svn-r15001] Purpose: Minor Windows documentation updates
Description:
Small changes to the documentation-- update version strings to 1.8.1 and document the HDF5TestExpress variable
2008-05-14 14:37:45 -05:00
Scott Wegner
2b8a9569bb [svn-r14998] Purpose: Minor updates to MinGW installation notes
Description:
Small changes, such as commenting out an additional test and fixing the search path, have been added to the MinGW install instructions.

Tested:
MinGW on WinXP
2008-05-14 14:25:06 -05:00
Scott Wegner
4261982ea1 [svn-r14994] Purpose: Add support for building 64-bit Windows binaries from command line
Description:
We can dynamically detect the host architecture using the PROCESSOR_ARCHITECTURE variable.  This allows us to setup our build paths accordingly and build 64-bit Windows binaries from the command line.  This allows us to run autotests on 64-bit Windows as well.

Tested:
VS2005 on WinXP x64
VS2005 on WinXP x86
2008-05-14 09:54:21 -05:00
Elena Pourmal
4297f8cc78 [svn-r14992] Maintenance: Brought changes from trunk into 1.8 branch
Platforms tested: kagiso, will do more testing later with -i8 flag.
2008-05-13 13:37:48 -05:00
Mike McGreevy
ee187da419 [svn-r14989] Purpose: Bug Fix
Description: Typo in the configure.in script. CC_VERSION should be set using
             CC_NOFLAGS, but is currently using CC_NOFLAG, which does not exist.

Tested: kagiso (configure issue)
2008-05-13 11:39:07 -05:00
Scott Wegner
475ce84ae6 [svn-r14986] Purpose: Add Windows fixes for new Fortran code.
Description:
There were a number of small tweaks we needed to make to add the new fortran_1_8 code on Windows.  We create new project files, add new source to them, add the test to our test suite, and fix a few typos in the Windows-specific source code.

Tested:
VS2005 on WinXP
2008-05-12 16:31:45 -05:00
Scott Wegner
8380b1827e [svn-r14983] Purpose: Update h5dump test script on Windows
Description:
One test has been added to h5dump test for custom output formats.  This adds the test on Windows as well.

Tested:
VS2005 on WinXP
2008-05-12 15:47:31 -05:00
Pedro Vicente Nunes
7f54a6cbeb [svn-r14981] - h5dump: support for external links, display the object that the external link
points to. (PVN - 2008/05/12)
2008-05-12 15:37:29 -05:00
Pedro Vicente Nunes
20c6bdda65 [svn-r14978] Support for external links follow up. The format is to print the target object as part of TARGETPATH, noted with some extra indentation
The previous printing of 
LINKCLASS 64
was removed

HDF5 "textlinksrc.h5" {
GROUP "/" {
   EXTERNAL_LINK "ext_link1" {
      TARGETFILE "textlinktar.h5"
      TARGETPATH "dset"
         DATASET "dset" {
            DATATYPE  H5T_STD_I32LE
            DATASPACE  SIMPLE { ( 6 ) / ( 6 ) }
            DATA {
            (0): 1, 2, 3, 4, 5, 6
            }
         }
   }
}
}

There is no script test for this behavior so far, because test script uses complete paths that vary from test to test, making not possible to define a valid TARGETFILE in the file

tested: windows, linux, solaris
2008-05-12 15:20:00 -05:00
Scott Wegner
f02082b568 [svn-r14974] Purpose: Fix bug in H5G_get_name_by_addr where buffer size is less than size of name
Description:
In the new tests merged from the fortran_1_8 branch, there is a test that fetches a dataset name in a small buffer.  The call to H5G_get_name_by_addr wrote an extra byte off the end of the buffer.  A simple and sufficient fix is to decrease the buffer size passed to strncmp by 1.  This bug was only caught by Visual Studio 2005 with extra debug checks on.

Tested:
VS2005 on WinXP
kagiso
2008-05-12 13:03:05 -05:00
Mike McGreevy
7e7e7c7aef [svn-r14968] Purpose: Bug Fix (Bug 1144)
Description: Tests in perform directory were never getting run, and 
             h5perf* programs were not being installed.

Solution: Added another build option, 'make check-perform', which runs the 
          tests in the perform directory. Also modified the Makefiles in the
          perform directory to install (with 'make install') h5perf when 
          parallel is enabled, and h5perf and h5perf_serial when parallel is 
          disabled 

Tested:   kagiso, smirom, linew
2008-05-12 09:48:32 -05:00
HDF Tester
c48f37b327 [svn-r14967] Snapshot version 1.8 release 0 (snap6) 2008-05-11 21:06:42 -05:00
Scot Breitenfeld
8d4ae7e283 [svn-r14964] merged the fortran trunk into the branch, used the command:
(svn merge -r 14942:14963 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran)
2008-05-09 16:38:52 -05:00
Elena Pourmal
9d8bed8483 [svn-r14959] Maintennce: IRIX compiler exposed a problem in one of the new APIs. Fixed.
Platforms tested: kagiso and UCAR IRIX machine
2008-05-09 14:05:05 -05:00
Scot Breitenfeld
a42154c441 [svn-r14957] Fixed integer type mismatch in c function 2008-05-09 11:10:13 -05:00
Scot Breitenfeld
4e261a5427 [svn-r14956] re-instated the test_attr_dense_open routine for debugging 2008-05-08 16:40:30 -05:00
Vailin Choi
cb79e86d4b [svn-r14952] 1. test/links.c: put in external link tests for windows
2. src/H5private.h: remove #define for HDputenv()
2008-05-08 08:30:30 -05:00
HDF Tester
a67435cf3b [svn-r14951] Check in fixes for compilation errors on tungsten. 2008-05-07 17:18:20 -05:00
Elena Pourmal
4b2c3c5e07 [svn-r14949] Maintenance: brought serial h5perf tool from trunk; use
svn merge -r 14824:14945 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/perform
             command to bring changes in.

Platforms tested: kagiso with Intel compilers, smirom with GNU compiler
2008-05-06 15:51:39 -05:00
Pedro Vicente Nunes
eb9ba954a5 [svn-r14948] Add a test for the floating point user defined printf format
Usage is 

-m T, --format=T

Where T - is a string containing the floating point format, e.g '%.3f'

The test consists of writing a number with 7 fractional digits (default precision display of %f is 6 digits) and have the 7 digits displayed with 

-m %.7f fpformat.h5

Tested: windows, linux, solaris

Note: the output file was generated in linux, it may be possible that platforms other than the ones tested have a different representation of the number
2008-05-06 15:08:11 -05:00
Elena Pourmal
41bf2001b1 [svn-r14943] Maintenance: Added files missed in the previous check-in.
Platforms tested: bin/chkmanifest on kagiso
2008-05-06 14:27:02 -05:00
Elena Pourmal
0bfb17bf00 [svn-r14942] Maintenance: Merged new Fortran APIs and tests from trunk into hdf5_1_8 branch
(used svn merge -r 14505:14941 http://svn.hdfgorup.uiuc.edu/hdf5/trunk/fortran 
              command).
             Updated MANIFEST
             Disabled -O3 optimization for gcc 4.3 (long due check-in)

Platforms tested: kagiso with PGI compilers, smirom with g95 and v16 option, linew
2008-05-06 14:23:32 -05:00
Mike McGreevy
464e4619f6 [svn-r14940] Purpose: Bug Fix (Bug 794)
Description: Test gcov script on kagiso

Solution: The bin/gcov script was not working on kagiso. The script was
          retooled and now works correctly on kagiso, placing code coverage logs
          into the generated gcov_logs directory when run.

Tested: kagiso
2008-05-06 12:18:48 -05:00
Mike McGreevy
1e313e76ff [svn-r14932] Purpose: updating RELEASE.txt document
Description:   added new autotool version information (updated libtool from 
               1.5.22 to 2.2.2 and automake from 1.10 to 1.10.1) to RELEASE.txt

Tested:        none needed, documentation update only
2008-05-05 09:33:51 -05:00
HDF Tester
c44f697040 [svn-r14931] Snapshot version 1.8 release 0 (snap5) 2008-05-04 20:44:48 -05:00
Quincey Koziol
06dc01d40e [svn-r14917] Description:
Clean up files created & cleaned up for dataset tests.

Tested on:
    Mac OS X/32 10.5.2 (amazon)
    Too minor to require h5committest
2008-05-01 17:19:40 -05:00
Pedro Vicente Nunes
8e184de40a [svn-r14915]
Introduced a compression ratio = uncompressed size /  compressed size
in the printing of the compression with 3 digits of precision per hdf-forum NASA developers suggestion

tested: windows, linux
2008-05-01 15:22:03 -05:00
Pedro Vicente Nunes
433c62542f [svn-r14911] add mention of new compression ratio feature in h5dump 2008-05-01 14:18:09 -05:00
Pedro Vicente Nunes
bee6951ac6 [svn-r14906] Introduced a ratio formula compression ratio = uncompressed size / compressed size
in the printing of the compression with 3 digits of precision per hdf-forum NASA developers suggestion

tested: windows, linux, solaris
2008-05-01 11:46:58 -05:00
Pedro Vicente Nunes
b2a2c17c44 [svn-r14895] RFC display compression ratio in h5dump
Here's the current behavior of h5dump regarding the printing of the dataset creation property list

For example

./h5dump -H -p -d filters

HDF5 "tfilters.h5" {
DATASET "deflate" {
   DATATYPE  H5T_STD_I32LE
   DATASPACE  SIMPLE { ( 20, 10 ) / ( 20, 10 ) }
   STORAGE_LAYOUT {
      CHUNKED ( 10, 5 )
      SIZE 385 
    }
   FILTERS {
      COMPRESSION DEFLATE { LEVEL 9 }
   }
   FILLVALUE {
      FILL_TIME H5D_FILL_TIME_IFSET
      VALUE  0
   }
   ALLOCATION_TIME {
      H5D_ALLOC_TIME_INCR
   }
}
}


The proposed behavior is to add this information after SIZE

SIZE 385 (51.9%COMPRESSION)

That percentage is obtained trough

Per = (b-a) / a

Where a = theoretical size obtained by multiplying datum size times number of elements
b =  size obtained with H5Dget_storage_size

The final print would look like

HDF5 "tfilters.h5" {
DATASET "deflate" {
   DATATYPE  H5T_STD_I32LE
   DATASPACE  SIMPLE { ( 20, 10 ) / ( 20, 10 ) }
   STORAGE_LAYOUT {
      CHUNKED ( 10, 5 )
      SIZE 385 (51.9%COMPRESSION)
    }
   FILTERS {
      COMPRESSION DEFLATE { LEVEL 9 }
   }
   FILLVALUE {
      FILL_TIME H5D_FILL_TIME_IFSET
      VALUE  0
   }
   ALLOCATION_TIME {
      H5D_ALLOC_TIME_INCR
   }
}
}

tested: windows, linux, solaris
2008-04-29 14:15:53 -05:00
Scott Wegner
c954ba63a4 [svn-r14868] Purpose: Add new source files to Windows projects
Description:
Two new source files have been added, H5Dchunk.c and H5Dscatgath.c.  This checkin adds the files to the Windows project files as well.

Tested:
VS.NET on WinXP
2008-04-28 09:09:50 -05:00
HDF Tester
8340a57349 [svn-r14866] Snapshot version 1.8 release 0 (snap4) 2008-04-27 21:07:59 -05:00
Mike McGreevy
82198aa9c5 [svn-r14862] Purpose: Disallow use of c++ or fortran with threadsafe.
Description:   Threadsafety is incompatible with c++ and with fortran, so if 
               the user specifies either at configure along with threadsafe, 
               throw an error.

Tested:        kagiso (configure change only, doesn't affect build or testing).
2008-04-24 15:41:51 -05:00
Quincey Koziol
e66cb6fec6 [svn-r14861] Description:
Bring revision 14860 back to 1.8 branch, change log for rev 14860 is:

        Omnibus raw data I/O revisions, with wide-ranging changes and
refactoring, in order to prepare for implementing "fast append" feature.

        These changes remove the majority of the code duplication for raw data
I/O which has crept in over the last ten years and introduces a more object-
oriented design for operating on different types of dataset storage.

Description:
        Omnibus raw data I/O revisions, with wide-ranging changes and
refactoring, in order to prepare for implementing "fast append" feature.

        These changes remove the majority of the code duplication for raw data
I/O which has crept in over the last ten years and introduces a more object-
oriented design for operating on different types of dataset storage.

        Chunked storage no longer has it's own I/O routines, it is now handled
as either contiguous (if chunk is not pulled into the cache) or compact (if the
chunk is cached in memory).

        No bug or feature changes, at least intentionally... :-)

Tested on:
    Mac OS X/32 10.5.2 (amazon) w/production
2008-04-24 10:39:32 -05:00
Scott Wegner
ed32d8e900 [svn-r14858] Purpose: Fix typo in Windows test script
Description:
A small typo in the main Windows test script was causing the C++ library tests not to run by default.

Tested:
VS2005 on WinXP x64
2008-04-21 13:05:34 -05:00
Scott Wegner
e3e9bbafce [svn-r14856] Purpose: Fix error message when with Windows pthreads
Description:
When building HDF5 with thread safety on Windows, the err_compat test was failing because our output was being parsed incorrectly.  Rather than having a thread number in the error stack trace, there will be the string "some thread: no way to know the thread (IDs): from pthread on windows:".  This checkin now takes this into account, and modifies the output accordingly.

Tested:
VS2005 on WinXP with Pthreads
2008-04-21 12:35:25 -05:00
HDF Tester
b6017c5cd1 [svn-r14851] Snapshot version 1.8 release 0 (snap3) 2008-04-20 19:00:23 -05:00
Scott Wegner
b6fc679940 [svn-r14844] Purpose: Fix link input in Windows HL Fortran examples
Description:
Previously, our Windows projects for HL Fortran examples were using outdated library names for our cstub code.  As a result, they wouldn't build correctly.  This checkin brings them up-to-date.

Also, add hdf5_hl.lib as a dependency to hdf5_hl_fortran.lib.  This goes un-noticed when building the complete VS solution, but should be required when only building hdf5_hl_fortran.lib

Tested:
VS2005 on WinXP
2008-04-14 16:32:39 -05:00
Scott Wegner
8fb201dd65 [svn-r14842] Purpose: Fix Windows Fortran examples runtime libraries
Description:
In the Windows Fortran example projects, the runtime library used for linking static-debug version was set incorrectly.  This was a result of the project being upgraded from VS6 where we used Single-threaded libraries.  Those libraries are no longer supported, so we use [Debug] Multithreaded [DLL] now instead.

Tested:
VS2005 on WinXP
2008-04-14 12:13:10 -05:00
Scott Wegner
af355e20a4 [svn-r14840] Purpose: Add new Windows macro for links test
Description:
Many new path-specific tests have been added via the "links" test.  Because Windows' path format is non-standard, we need a special macro defined to handle it specially.  Note that 2 tests still fail with this macro defined, but it should be fixed soon.

Tested:
VS2005 on WinXP
2008-04-14 10:47:49 -05:00
Scott Wegner
ac378bcfb1 [svn-r14837] Purpose: Remove ohdr_gentst from Windows projects
Description:
The ohdr_gentst project exists in order to re-create test input files that are distributed with the source.  These projects aren't built by default on most platforms, and the source isn't distributed in release builds.  To avoid confusion and bloat, we remove the Windows version of this project.

Tested:
None, only removed
2008-04-14 10:15:03 -05:00
Scott Wegner
e622c634d5 [svn-r14835] Purpose: Remove English-specific code from Windows test scripts
Description:
In previous versions of Windows, the builtin 'FC' command (diff equivalent) didn't return proper exit status.  As a work-around, we parsed the message returned to check status.  This relies on English return messages.

In current Windows XP and Windows Vista, FC will return exit status as expected, so we can remove this workaround.  Older platforms where we would need this workaround are no longer supported.

Tested:
VS2005 on Windows XP
Small test on Windows Vista
2008-04-14 09:59:52 -05:00
HDF Tester
740769d37f [svn-r14834] Snapshot version 1.8 release 0 (snap2) 2008-04-13 21:06:52 -05:00
Mike McGreevy
8f0879c89e [svn-r14830] Purpose: Update libtool to version 2.2.2
Description: Changing libtool from 2.2 to 2.2.2. The newer version was released
             last week and I missed the announcement before upgrading to 2.2
             yesterday afternoon.

             The new version is installed in home1/packages/libtool/, and the
             bin/reconfigure script was updated and executed.

Tested:      h5committest (smirom, linew, kagiso)
2008-04-11 16:56:25 -05:00
Mike McGreevy
934d532544 [svn-r14824] Purpose: Updating HDF5 1.8 to use automake 1.10.1 and libtool 2.2
Description:     Updated bin/reconfigure script to reflect the new versions of
                 libtool and automake in the /home1/packages/ directory.

                 Rearranged configure.in script. For some reason, when using
                 libtool 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, tg-login
2008-04-10 15:52:14 -05:00
Vailin Choi
19077b27d0 [svn-r14823] Fixed a bug in CHECK_ABSOLUTE() for windows.
Fixed declaration for H5_build_extpath() to remove the warning messages.
Tested on kagiso, linew, smirom.
2008-04-09 09:56:17 -05:00
Scott Wegner
b4bae33f23 [svn-r14820] Purpose: Disable ohdr_gentst project by default on Windows.
Description:
The ohdr_gentst project exists to dynamically generate the test files for ohdr test, which also exist in the repository.  The test is only run on other platforms when the configure flag --enable-build-all is specified.  Moreover, the source code ohdr_gentst.c is marked as _DO_NO_DISTRIBUTE_ in the MANIFEST.

As a result, there was a problem in the release tarball that the Windows projects would fail when trying to build this project.  To correct this, we no longer build this by default.  We will also need to release a FAQ/patch for the HDF5 1.8.0 release.

Tested:
VS2005 on WinXP
2008-04-08 15:10:41 -05:00
Vailin Choi
a5030f853b [svn-r14810] Add fix for H5Lcreate_external() to the list of bug fixes. 2008-04-08 10:50:26 -05:00
Pedro Vicente Nunes
202a3d4a6f [svn-r14803] mention to bug fixed 2008-04-07 10:59:51 -05:00
Pedro Vicente Nunes
59f29fa02f [svn-r14802] bug fix: #1106 h5dump -b will dump ASCII values for datasets after the first one. One variable that controls the binary output was incorrectly reset to zero after a binary output was done a first time. The effect was that on cases of several datasets, the ones after the first were not binary written. Eliminated the resetting of that variable and tested a file with several datasets. Modified the test file so that it is easier to test with the tool binread, that reads the binary output of h5dump.
tested: windows, linux
2008-04-07 10:53:35 -05:00
HDF Tester
7c6a99f05c [svn-r14801] Snapshot version 1.8 release 0 (snap1) 2008-04-06 21:10:35 -05:00
Vailin Choi
bcba07c53e [svn-r14795] Use putenv() instead of setenv() in src/links.c
(sol does not support setenv())
2008-04-04 13:48:15 -05:00
Vailin Choi
cff7516ca7 [svn-r14791] Add handling for external link:
1. src/H5F.c, src/H5system.c: formulate path for mainfile
2. src/H5Lexternal.c: add search for target file
3. configure.in: add H5_HAVE_WINDOW_PATH
4. test/links.c: add tests for external link
2008-04-02 14:33:08 -05:00
Scott Wegner
d8dfc1fb3f [svn-r14769] Purpose: Remove spurious szip link directory in h5repack debug project
Description:
As pointed out by a user, we added an un-needed link directory for szip which is machine-dependent and, in his case, problematic.  We can safely remove this reference because we already include the szip link directory elsewhere.

Tested:
None, simply removed
2008-03-24 13:04:36 -05:00
HDF Tester
5a8bbe317b [svn-r14763] Snapshot version 1.8 release 0 (snap0) 2008-03-20 22:29:59 -05:00
Quincey Koziol
f331bba32c [svn-r14737] Description:
Fix bug which would incorrectly encode the member offsets for compound
datatypes whose size was between 256 & 511 bytes, when the "use the latest
format" feature was enabled.

Tested on:
    Mac OS X/32 10.5.2 (amazon) w/debug
    FreeBSD/32 6.2 (duty) w/production
2008-03-13 16:44:18 -05:00
Quincey Koziol
4982e15623 [svn-r14722] Description:
Minor bug fix to H5Aget_num_attrs() to return error when an invalid
location ID is passed in.

Tested on:
    Mac OS X/32 (amazon)
    Too minor to require h5committest
2008-03-11 17:25:46 -05:00
Vailin Choi
da9a26d9a5 [svn-r14710] Fixed the assert() failures (development mode) from Wed. daily tests:
Added 2 more parameters to H5HF_man_iblock_size() (parent iblock and parent entry)
for passing onto H5HF_iblock_man_iblock_protect().
This bug was there before but was revealed now by exercising the recursive part of the code from the new
"h5stat_newgrat.h5".
Tested on kagiso, smirom and linew with --disable-production.
-This line, and those below, will be ignored--

M    src/H5HFiblock.c
M    src/H5HFpkg.h
M    src/H5HFstat.c
2008-03-06 12:16:17 -05:00
Vailin Choi
87be7927dd [svn-r14703] 1. H5HFiblock.c: fixed problem for uninitialized "u" for bug #1072 in H5HF_man_iblock_size().
2. H5HFstat.c: Since H5HF_space_size() zeroed out fs_size, add "meta_size" to store
   free-space size before adding to "heap_size".
3. h5stat_gentest.c: increase # of groups to get "h5stat_newgrat.h5" that contains 
   indirect block entries in fractal heap.  
   This is for testing the recursive part of the code in H5HF_man_iblock_size().
4. h5stat_newgrat.h5: the new .h5 file generated by h5stat_gentest.c.
5. h5stat_newgrat.ddl: expected output from new "h5stat_newgrat.h5".

Tested on kagiso, smirom, linew.
2008-03-04 15:04:18 -05:00
Scott Wegner
c635149be5 [svn-r14696] Purpose: Backport typo fix from trunk
Description:
A small typo in the recent update to installhdf5lib.bat caused the C++ header files not to be installed for the debug version of the libraries.  This corrects the issue.

Tested:
VS2005 on WinXP
2008-03-03 14:45:13 -05:00
Quincey Koziol
19924061d1 [svn-r14692] Description:
Update release notes with recent variable-length string fix for h5diff
2008-02-28 10:06:52 -05:00
Quincey Koziol
a233b8a08d [svn-r14691] Description:
Handle comparing datasets & attributes w/variable-length strings properly.

Tested on:
    Linux/64 2.6.9 (chicago)
2008-02-28 09:53:38 -05:00
Albert Cheng
c1c885892f [svn-r14679] Removed item c++/examples/testexamples.sh. 2008-02-25 23:47:43 -05:00
Albert Cheng
ba7d08029b [svn-r14675] Purpose:
Cleanup.

testexamples.sh is not used since v1.4.1.  Removed it.
2008-02-25 16:09:07 -05:00
Scott Wegner
fd50c1ae9b [svn-r14674] Purpose: Backport Windows updates from trunk
Description:
Allow building Fortran libraries from the Windows commandline

Tested:
VS2005 on WinXP
2008-02-25 15:50:21 -05:00
Scott Wegner
acfc6ce5ba [svn-r14669] Purpose: Remove old project files and folders to bring MANIFEST up-to-date
Description:
Somehow these folders didn't get deleted in a previous checkin.  This should bring things up-to-date
2008-02-25 12:07:45 -05:00
Scott Wegner
dd7dcb5b07 [svn-r14668] Purpose: Backport of added Windows HL examples from trunk
Description:
The Windows suite of examples for HL C was a very small subset of the examples that exist for other platforms.  Now we have all of the HL C examples-- integrated into the VS projects files, and batch test scripts.
2008-02-25 11:46:02 -05:00
Scott Wegner
711f06f2ea [svn-r14604] Purpose: Backport of Windows project updates from trunk
Description:
Add hdf5 library as a dependency to hdf5_hl library in Windows project files

For some reason, the hdf5_hl library didn't have hdf5 listed as a dependency.  This isn't normally a problem, because building "all" will build hdf5 library.  However, when a user tries to build only hdf5_hl, hdf5 library wouldn't be built.

Although not technically required for compiling the library code, the hdf5 library is needed for linking any applications, so it's a natural dependency.

Tested:
VS2005 on WinXP
VNET on WinXP
2008-02-18 13:26:29 -05:00
Scott Wegner
862f7431b2 [svn-r14602] Purpose: Update Cygwin documentation with patch
Description:
Basically, remove the "hack" that we documented because we have a better fix now.  With the latest changes, configure will avoid the cygwin bug, and no neccessary steps need to be taken by the user.
2008-02-18 12:53:36 -05:00
Scott Wegner
bce180dd5c [svn-r14600] Purpose: Backport of Windows typo fix from the trunk
Description:
Purpose: Fix very minor typo in Windows h5import test script
Single-letter typo in the Windows test script was causing us to return the wrong error code in some cases.

Tested:
VS2005 on WinXP
2008-02-18 11:49:57 -05:00
Scott Wegner
728e308764 [svn-r14597] Purpose: Backport Windows cleanup checkins from trunk
Description:
Make the Windows copy_hdf.bat a little cleaner/safer, and produce useful output in installhdf5lib.bat

Previously, all of our build output would simply go to stdout/stderr for command-line builds.  We can pipe this into a log file as a whole, but the complete logfile becomes very large very quickly.  Instead, we give the user an option to place build results and test results into separate logs (or even the same).  This will help keeping track of results in our automated testing.

Tested:
VS2005 on WinXP
2008-02-18 10:48:34 -05:00
Scott Wegner
dee9447656 [svn-r14595] Purpose: Patch the latest Cygwin's incompatibility with timzezone variable
Description:
We discovered that there was a problem with the latest cygwin DLL, in that it doesn't recognize the global variable 'timezone'.  This is a problem on cygwin's side, not ours.  Instead, we avoid the problem in configure with a case statement.

We didn't get this out in time for the release, but we can offer a patch instead.

Tested:
Cygwin on WinXP
All changes are in a cygwin 'case' clause, so shouldn't affect other platforms
2008-02-18 09:05:47 -05:00
HDF Tester
50a758f887 [svn-r14591] Add version string for 1.8 branch daily tests. 2008-02-15 14:11:00 -05:00
Raymond Lu
bbe565bdaf [svn-r14586] Added more tests. Test both H5Sselect_elements and H5Sselect_hyperslab, for both chunked and
contiguous datasets.

Tested on smirom, kagiso, and linew.
2008-02-15 10:25:58 -05:00
Elena Pourmal
069b52529e [svn-r14585] Maintenance after 1.8.0 release: Created HISTORY-1_8.txt file and prepared RELEASE.txt
for future entries.
                                 Changed version number to 1.8.0-snap0
                                 Added HISTORY-1_8.txt to MANIFEST
2008-02-14 11:17:48 -05:00
Elena Pourmal
95715a553e [svn-r14566] Maintenance: Checking in files modified by the bin/release script 2008-02-12 20:45:32 -05:00
Elena Pourmal
eb6bf807d2 [svn-r14565] Maintenance: Renamed history file before creating a final HDF5 1.8.0 release tar ball. 2008-02-12 20:39:54 -05:00
Elena Pourmal
43f78b295c [svn-r14563] Maintenance: Checking in files updated by bin/release script before tagging the release 2008-02-12 18:14:19 -05:00
Elena Pourmal
56ea611bfa [svn-r14562] Maintenance: Added compilers information for the VMS system
Updated release date in the INSTALL_VMS.txt file
2008-02-12 18:09:28 -05:00
Albert Cheng
ae18c5f41c [svn-r14556] Purpose:
Update.

What is done:
Moved the following three paragraphs to the Appendix part since they have old
information that are not relevant most recent machines or compilers.
    "Large (>2GB) versus small (<2GB) file capability", 
    "Building and testing with Intel compilers"
    "Building and testing with PGI compilers"

Tested:
eyeballed.
2008-02-12 13:06:59 -05:00
Frank Baker
8449affc4a [svn-r14555] Description:
Added note regarding removal of the stream VFD.
2008-02-12 12:44:53 -05:00
Frank Baker
4bc4e5417e [svn-r14554] Description:
Quick editorial review.
    Convert tabs to spaces for consistent display and printing.
    Verify and fix links and references.
2008-02-12 11:35:41 -05:00
Albert Cheng
62ff7f238d [svn-r14552] Purpose:
Updated section 4 for v1.8 release.
(May still check the v1.6 INSTALL to see if something can be adopted from
there.  But this is good for v1.8 release.)

Tested:
Just eyeballed.
2008-02-12 10:05:31 -05:00
Frank Baker
0174dfec78 [svn-r14550] Description:
Editorial review.
    Verify and fix links and references.
2008-02-11 15:32:49 -05:00
Albert Cheng
a1613da80e [svn-r14548] Purpose:
Updated for v1.8 release. (Not completed yet.)

Changes:
Moved the section 2. "Warnings about compilers" to Appendix A; renumbered
section 3-7 to section 2-6 and fixed all section references.

Updated Website names from ncsa.uiuc.edu to hdfgroup.org or hdfgroup.uiuc.edu.

Updated section 1-3 and some of section 4.

Tested:
Eyeball.
2008-02-11 14:38:17 -05:00
Albert Cheng
4f0e4f389a [svn-r14540] Purpose: update
Updated the parallel test suite section with more parallel tests description
to prepare for v1.8.0 release.

Test: eyeballed.
2008-02-08 19:01:07 -05:00
Elena Pourmal
a429d0c4b3 [svn-r14528] Maintenance: Made a first attempt to clean up the file for the 1.8.0 release. 2008-02-06 21:48:19 -05:00
Elena Pourmal
5fb8eefacd [svn-r14527] Maintenance: Added summary written by Frank to the RELEASE.txt file 2008-02-06 21:42:22 -05:00
1952 changed files with 289526 additions and 275164 deletions

15
ACKNOWLEDGMENTS Normal file
View File

@@ -0,0 +1,15 @@
Acknowledgments - June 2010
---------------------------
We would like to thank the following people who have contributed directly
or indirectly to HDF5:
John A. Biddiscombe, Mike Jackson, and Sean McBride for contributing and
testing CMake code included in the HDF5 1.8.5 distribution.
The HDF5 community for helping shape the development of HDF5 by contributing
bug reports and patches, joining in on forum discussions, and continually
supporting our software.
Finally, we'd like to thank all organizations whose funding has made HDF5
possible.

585
CMakeLists.txt Normal file
View File

@@ -0,0 +1,585 @@
cmake_minimum_required (VERSION 2.8)
PROJECT (HDF5 C CXX)
#-----------------------------------------------------------------------------
# Instructions for use : Normal Build
#
# For standard build of HDF5 libraries,tests and tools.
# Run cmake using the HDF5 source tree to generate a build tree.
# Enable/Disable options according to requirements and
# set CMAKE_INSTALL_PREFIX to the required install path.
# Make install can be used to install all components for system-wide use.
#
#-----------------------------------------------------------------------------
# Instructions for use : Sub-Project Build
#
# To include HDF5 as a sub-project within another project.
# Set HDF5_EXTERNALLY_CONFIGURED to 1 in the parent project and
# supply values for the following variables...
#
# HDF5_EXPORTED_TARGETS :
# Set this to the name of the targets variable which controls exports
# If unset (because parent project does not support/use the
# INSTALL (EXPORT target...) syntax), then targets are not configured
# for export during install.
#
# HDF5_LIB_DEPENDENCIES :
# If the build of HDF5 libs is being customized, then rules for the
# dependencies of the HDF5 libs may be 'incomplete', add additional
# dependencies to this variable so that external projects pick them up
#
# HDF5_EXTERNAL_LIB_PREFIX :
# If the parent project needs to install hdf libraries, but avoid
# name conflicts with system versions, then a prefix may be added
# to ensure that the correct versions configured are used.
#
# Consider this example from the ParaView project, it builds its own zlib
# library and tells HDF5 to add it as a dependency - this ensures that
# any project making use of this build of HDF5 will use the correct zlib
#
# # Tell hdf5 that we are manually overriding certain settings
# SET(HDF5_EXTERNALLY_CONFIGURED 1)
# # Avoid duplicating names of installed libraries
# SET(HDF5_EXTERNAL_LIB_PREFIX "vtk")
# # Targets linking to the HDF5 libs need to know their names
# # if they are changed in the sub project, they should be here too
# SET(HDF5_LIB_NAME "vtkhdf5")
# SET(HDF5_HL_LIB_NAME "vtkhdf5_hl")
# SET(HDF5_LIBRARY "${HDF5_LIB_NAME};${HDF5_HL_LIB_NAME}")
# # Export configuration to this export variable
# SET(HDF5_EXPORTED_TARGETS "paraview-targets")
#
# # Setup all necessary overrides for zlib so that HDF5 uses our
# # internally compiled zlib rather than any other version
# IF(HDF5_ENABLE_Z_LIB_SUPPORT)
# # We must tell the main HDF5 library that it depends on our zlib
# SET(HDF5_LIB_DEPENDENCIES vtkzlib)
# # Override the zlib header file
# IF(VTK_USE_SYSTEM_ZLIB)
# SET(H5_ZLIB_HEADER "zlib.h")
# ELSE(VTK_USE_SYSTEM_ZLIB)
# SET(H5_ZLIB_HEADER "vtk_zlib.h")
# # Set vars that FindZlib would have set if used in sub project
# SET(ZLIB_INCLUDE_DIRS "${VTK_ZLIB_INCLUDE_DIRS}")
# SET(ZLIB_LIBRARIES vtkzlib)
# ENDIF(VTK_USE_SYSTEM_ZLIB)
# ENDIF(HDF5_ENABLE_Z_LIB_SUPPORT)
#
# # Add the sub project
# ADD_SUBDIRECTORY(Utilities/hdf5-1.8)
# # Add the HDf5 dirs to our include path
# SET(HDF5_INCLUDE_DIR
# ${ParaView_SOURCE_DIR}/Utilities/hdf5-1.8/src
# ${ParaView_BINARY_DIR}/Utilities/hdf5-1.8
# ${ParaView_SOURCE_DIR}/Utilities/hdf5-1.8/hl/src)
#
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Basic HDF5 stuff here
#-----------------------------------------------------------------------------
SET (HDF5_PACKAGE "hdf5")
SET (HDF5_PACKAGE_NAME "HDF5")
SET (HDF5_PACKAGE_VERSION 1.8.5)
SET (HDF5_PACKAGE_VERSION_MAJOR 1.8)
SET (HDF5_PACKAGE_STRING "${HDF5_PACKAGE_NAME} ${HDF5_PACKAGE_VERSION}")
SET (HDF5_PACKAGE_TARNAME "hdf5")
SET (HDF5_PACKAGE_URL "htt://www.hdfgroup.org")
SET (HDF5_PACKAGE_BUGREPORT "help@hdfgroup.org")
#-----------------------------------------------------------------------------
# Set the core names of all the libraries
#-----------------------------------------------------------------------------
SET (HDF5_LIB_CORENAME "hdf5")
SET (HDF5_TEST_LIB_CORENAME "hdf5_test")
SET (HDF5_CPP_LIB_CORENAME "hdf5_cpp")
SET (HDF5_HL_LIB_CORENAME "hdf5_hl")
SET (HDF5_HL_CPP_LIB_CORENAME "hdf5_hl_cpp")
SET (HDF5_TOOLS_LIB_CORENAME "hdf5_tools")
SET (HDF5_F90_LIB_CORENAME "hdf5_fortran")
SET (HDF5_F90_C_LIB_CORENAME "hdf5_f90cstub")
SET (HDF5_F90_TEST_LIB_CORENAME "hdf5_test_fortran")
SET (HDF5_F90_C_TEST_LIB_CORENAME "hdf5_test_f90cstub")
SET (HDF5_HL_F90_LIB_CORENAME "hdf5_hl_fortran")
SET (HDF5_HL_F90_C_LIB_CORENAME "hdf5_hl_f90cstub")
#-----------------------------------------------------------------------------
# Set the true names of all the libraries if customized by external project
#-----------------------------------------------------------------------------
SET (HDF5_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_CORENAME}")
SET (HDF5_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_TEST_LIB_CORENAME}")
SET (HDF5_CPP_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_CPP_LIB_CORENAME}")
SET (HDF5_HL_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_LIB_CORENAME}")
SET (HDF5_HL_CPP_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_CPP_LIB_CORENAME}")
SET (HDF5_TOOLS_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_TOOLS_LIB_CORENAME}")
SET (HDF5_F90_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_LIB_CORENAME}")
SET (HDF5_F90_C_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_C_LIB_CORENAME}")
SET (HDF5_F90_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_TEST_LIB_CORENAME}")
SET (HDF5_F90_C_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_C_TEST_LIB_CORENAME}")
SET (HDF5_HL_F90_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_F90_LIB_CORENAME}")
SET (HDF5_HL_F90_C_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_F90_C_LIB_CORENAME}")
#-----------------------------------------------------------------------------
# Define some CMake variables for use later in the project
#-----------------------------------------------------------------------------
SET (HDF5_RESOURCES_DIR ${HDF5_SOURCE_DIR}/Resources)
SET (HDF5_SRC_DIR ${HDF5_SOURCE_DIR}/src)
SET (HDF5_TEST_SOURCE_DIR ${HDF5_SOURCE_DIR}/test)
SET (HDF5_CPP_SOURCE_DIR ${HDF5_SOURCE_DIR}/c++)
SET (HDF5_CPP_TEST_DIR ${HDF5_CPP_SOURCE_DIR}/test)
SET (HDF5_HL_SOURCE_DIR ${HDF5_SOURCE_DIR}/hl)
SET (HDF5_TOOLS_SOURCE_DIR ${HDF5_SOURCE_DIR}/tools)
SET (HDF5_PERFORM_SOURCE_DIR ${HDF5_SOURCE_DIR}/perform)
SET (HDF5_F90_SOURCE_DIR ${HDF5_SOURCE_DIR}/fortran)
#-----------------------------------------------------------------------------
# Include some macros for reusable code
#-----------------------------------------------------------------------------
INCLUDE (${HDF5_RESOURCES_DIR}/HDF5Macros.cmake)
#-----------------------------------------------------------------------------
# Setup output Directories
#-----------------------------------------------------------------------------
IF (NOT HDF5_EXTERNALLY_CONFIGURED)
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY
${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Executables."
)
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY
${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all Libraries"
)
SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all static libraries."
)
SET (CMAKE_Fortran_MODULE_DIRECTORY
${PROJECT_BINARY_DIR}/bin/fortran CACHE PATH "Single Directory for all fortran modules."
)
ELSE (NOT HDF5_EXTERNALLY_CONFIGURED)
# if we are externally configured, but the project uses old cmake scripts
# this may not be set and utilities like H5detect will fail
IF (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
ENDIF (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
ENDIF(NOT HDF5_EXTERNALLY_CONFIGURED)
#-----------------------------------------------------------------------------
# Targets built within this project are exported at Install time for use
# by other projects using FindHDF5.
#-----------------------------------------------------------------------------
IF (NOT HDF5_EXPORTED_TARGETS)
SET (HDF5_EXPORTED_TARGETS "hdf5-targets")
ENDIF (NOT HDF5_EXPORTED_TARGETS)
#-----------------------------------------------------------------------------
# To include a library in the list exported by the project AT BUILD TIME,
# add it to this variable. This is NOT used by Make Install, but for projects
# which include hdf5 as a sub-project within their build tree
#-----------------------------------------------------------------------------
SET_GLOBAL_VARIABLE(HDF5_LIBRARIES_TO_EXPORT "")
#-----------------------------------------------------------------------------
# Run all the CMake configuration tests for our build environment
#-----------------------------------------------------------------------------
INCLUDE (${HDF5_SOURCE_DIR}/ConfigureChecks.cmake)
#-----------------------------------------------------------------------------
# Option to use legacy naming for windows libs/programs, default is legacy
#-----------------------------------------------------------------------------
IF (WIN32)
OPTION (H5_LEGACY_NAMING "Use Legacy Names for Libraries and Programs" ON)
ENDIF (WIN32)
#-----------------------------------------------------------------------------
# Option to Build Shared/Static libs, default is static
#-----------------------------------------------------------------------------
OPTION (BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
SET (LIB_TYPE STATIC)
IF (BUILD_SHARED_LIBS)
SET (LIB_TYPE SHARED)
SET (H5_BUILT_AS_DYNAMIC_LIB 1)
SET (LIBPOSTFIX "")
IF (MSVC)
SET (CMAKE_MFC_FLAG 0)
FOREACH (flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
IF (${flag_var} MATCHES "/MT")
STRING (REGEX REPLACE "/MT" "/MD" ${flag_var} "${${flag_var}}")
ENDIF (${flag_var} MATCHES "/MT")
ENDFOREACH (flag_var)
ENDIF (MSVC)
ELSE (BUILD_SHARED_LIBS)
IF (NOT WIN32)
# should this be a user setting : Everyone uses it anyway ?
ADD_DEFINITIONS(-DPIC)
ENDIF (NOT WIN32)
SET (LIBPOSTFIX "")
IF (MSVC)
SET (CMAKE_MFC_FLAG 0)
FOREACH (flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
IF (${flag_var} MATCHES "/MD")
STRING (REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
ENDIF (${flag_var} MATCHES "/MD")
ENDFOREACH (flag_var)
ENDIF (MSVC)
ENDIF (BUILD_SHARED_LIBS)
#-----------------------------------------------------------------------------
# Set the target names of all the libraries
#-----------------------------------------------------------------------------
SET (HDF5_LIB_TARGET ${HDF5_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_TEST_LIB_TARGET ${HDF5_TEST_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_CPP_LIB_TARGET ${HDF5_CPP_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_HL_LIB_TARGET ${HDF5_HL_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_HL_CPP_LIB_TARGET ${HDF5_HL_CPP_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_TOOLS_LIB_TARGET ${HDF5_TOOLS_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_F90_LIB_TARGET ${HDF5_F90_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_F90_C_LIB_TARGET ${HDF5_F90_C_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_F90_TEST_LIB_TARGET ${HDF5_F90_TEST_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_F90_C_TEST_LIB_TARGET ${HDF5_F90_C_TEST_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_HL_F90_LIB_TARGET ${HDF5_HL_F90_LIB_NAME}${LIBPOSTFIX})
SET (HDF5_HL_F90_C_LIB_TARGET ${HDF5_HL_F90_C_LIB_NAME}${LIBPOSTFIX})
#-----------------------------------------------------------------------------
# Include the main src and config directories
#-----------------------------------------------------------------------------
SET (HDF5_INCLUDE_DIRECTORIES
${HDF5_SRC_DIR}
${HDF5_SOURCE_DIR}
${HDF5_BINARY_DIR}
)
INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRECTORIES})
#-----------------------------------------------------------------------------
# When building utility executables that generate other (source) files :
# we make use of the following variables defined in the root CMakeLists.
# Certain systems may add /Debug or /Release to output paths
# and we need to call the executable from inside the CMake configuration
#-----------------------------------------------------------------------------
SET (EXE_EXT "")
IF (WIN32)
SET (EXE_EXT ".exe")
ADD_DEFINITIONS (-DBIND_TO_CURRENT_VCLIBS_VERSION=1)
ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS)
ENDIF (WIN32)
SET (MAKE_SYSTEM)
IF (CMAKE_BUILD_TOOL MATCHES "make")
SET (MAKE_SYSTEM 1)
ENDIF (CMAKE_BUILD_TOOL MATCHES "make")
SET (CFG_INIT "/${CMAKE_CFG_INTDIR}")
IF (MAKE_SYSTEM)
SET (CFG_INIT "")
ENDIF (MAKE_SYSTEM)
#-----------------------------------------------------------------------------
# Add some definitions for Debug Builds
#-----------------------------------------------------------------------------
IF (CMAKE_BUILD_TYPE MATCHES Debug)
ADD_DEFINITIONS (-DDEBUG)
ADD_DEFINITIONS (
-DH5_DEBUG_API -DH5Z_DEBUG -DH5V_DEBUG -DH5T_DEBUG
-DH5S_DEBUG -DH5P_DEBUG -DH5O_DEBUG -DH5MM_DEBUG -DH5MF_DEBUG
-DH5I_DEBUG -DH5HL_DEBUG -DH5HG_DEBUG -DH5G_DEBUG -DH5F_DEBUG
-DH5E_DEBUG -DH5D_DEBUG -DH5B_DEBUG -DH5AC_DEBUG -UNDEBUG
)
#-- NMake Makefiles will overwhelm the console with warnings if -Wall is used.
IF (NOT WIN32)
ADD_DEFINITIONS (-Wall)
ENDIF (NOT WIN32)
ELSE (CMAKE_BUILD_TYPE MATCHES Debug)
ADD_DEFINITIONS (-UH5_DEBUG_API -DNDEBUG)
ENDIF (CMAKE_BUILD_TYPE MATCHES Debug)
#-----------------------------------------------------------------------------
# Compiler specific flags : Shouldn't there be compiler tests for these
#-----------------------------------------------------------------------------
IF (NOT WIN32)
SET (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -fomit-frame-pointer -finline-functions -fno-common")
ENDIF (NOT WIN32)
#-----------------------------------------------------------------------------
# Option to allow the user to disable compiler warnings
#-----------------------------------------------------------------------------
OPTION (HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF)
IF (HDF5_DISABLE_COMPILER_WARNINGS)
# MSVC uses /w to suppress warnings. It also complains if another
# warning level is given, so remove it.
IF (MSVC)
SET (HDF5_WARNINGS_BLOCKED 1)
STRING (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " "
CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w")
ENDIF (MSVC)
IF(WIN32)
ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS)
ENDIF(WIN32)
# Borland uses -w- to suppress warnings.
IF (BORLAND)
SET (HDF5_WARNINGS_BLOCKED 1)
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-")
ENDIF (BORLAND)
# Most compilers use -w to suppress warnings.
IF (NOT HDF5_WARNINGS_BLOCKED)
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
ENDIF (NOT HDF5_WARNINGS_BLOCKED)
ENDIF (HDF5_DISABLE_COMPILER_WARNINGS)
#-----------------------------------------------------------------------------
# This is in here to help some of the GCC based IDES like Eclipse
# and code blocks parse the compiler errors and warnings better.
#-----------------------------------------------------------------------------
IF (CMAKE_COMPILER_IS_GNUCC)
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0")
ENDIF (CMAKE_COMPILER_IS_GNUCC)
IF (CMAKE_COMPILER_IS_GNUCXX)
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0")
ENDIF (CMAKE_COMPILER_IS_GNUCXX)
#-----------------------------------------------------------------------------
# Option to Enable MPI Parallel
#-----------------------------------------------------------------------------
OPTION (HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF)
IF (HDF5_ENABLE_PARALLEL)
INCLUDE (FindMPI)
INCLUDE_DIRECTORIES (${MPI_INCLUDE_PATH})
IF (MPI_FOUND)
SET (H5_HAVE_PARALLEL 1)
# MPI checks, only do these if MPI_FOUND is true, otherwise they always fail
# and once set, they are cached as false and not regenerated
SET (CMAKE_REQUIRED_INCLUDES "${MPI_INCLUDE_PATH}/mpi.h" )
SET (CMAKE_REQUIRED_LIBRARIES "${MPI_LIBRARY}" )
CHECK_FUNCTION_EXISTS (MPI_File_get_size H5_HAVE_MPI_GET_SIZE)
# Used by Fortran + MPI
CHECK_SYMBOL_EXISTS (MPI_Comm_c2f "${MPI_INCLUDE_PATH}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Comm)
CHECK_SYMBOL_EXISTS (MPI_Info_c2f "${MPI_INCLUDE_PATH}/mpi.h" H5_HAVE_MPI_MULTI_LANG_Info)
ENDIF (MPI_FOUND)
ENDIF (HDF5_ENABLE_PARALLEL)
# Parallel IO usage requires MPI to be Linked and Included
IF (H5_HAVE_PARALLEL)
SET (LINK_LIBS ${LINK_LIBS} ${MPI_LIBRARY})
IF (MPI_LINK_FLAGS)
SET (CMAKE_EXE_LINKER_FLAGS ${MPI_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS})
ENDIF (MPI_LINK_FLAGS)
IF (MPI_EXTRA_LIBRARY)
SET (LINK_LIBS ${LINK_LIBS} ${MPI_EXTRA_LIBRARY})
ENDIF (MPI_EXTRA_LIBRARY)
ENDIF (H5_HAVE_PARALLEL)
#-----------------------------------------------------------------------------
# Option to use 1.6.x API
#-----------------------------------------------------------------------------
OPTION (HDF5_USE_16_API_DEFAULT "Use the HDF5 1.6.x API by default" OFF)
SET (USE_16_API_DEFAULT 0)
IF (HDF5_USE_16_API_DEFAULT)
SET (H5_USE_16_API_DEFAULT 1)
ENDIF (HDF5_USE_16_API_DEFAULT)
#-----------------------------------------------------------------------------
# Options for HDF5 Filters
#-----------------------------------------------------------------------------
MACRO (HDF5_SETUP_FILTERS FILTER)
OPTION (HDF5_USE_FILTER_${FILTER} "Use the ${FILTER} Filter" ON)
IF (HDF5_USE_FILTER_${FILTER})
SET (H5_HAVE_FILTER_${FILTER} 1)
ENDIF (HDF5_USE_FILTER_${FILTER})
# MESSAGE (STATUS "Filter ${FILTER} is ${HDF5_USE_FILTER_${FILTER}}")
ENDMACRO (HDF5_SETUP_FILTERS)
HDF5_SETUP_FILTERS (SHUFFLE)
HDF5_SETUP_FILTERS (FLETCHER32)
HDF5_SETUP_FILTERS (NBIT)
HDF5_SETUP_FILTERS (SCALEOFFSET)
#-----------------------------------------------------------------------------
# Option for ZLib support
#-----------------------------------------------------------------------------
OPTION (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF)
IF (HDF5_ENABLE_Z_LIB_SUPPORT)
IF (NOT H5_ZLIB_HEADER)
FIND_PACKAGE (ZLIB REQUIRED)
IF (ZLIB_FOUND)
SET (H5_HAVE_FILTER_DEFLATE 1)
SET (H5_HAVE_ZLIB_H 1)
SET (H5_HAVE_LIBZ 1)
SET (H5_ZLIB_HEADER "zlib.h")
ELSE (ZLIB_FOUND)
MESSAGE (FATAL " ZLib is Required for ZLib support in HDF5")
ENDIF (ZLIB_FOUND)
ELSE (NOT H5_ZLIB_HEADER)
# This project is being called from within another and ZLib is already configured
SET (H5_HAVE_FILTER_DEFLATE 1)
SET (H5_HAVE_ZLIB_H 1)
SET (H5_HAVE_LIBZ 1)
ENDIF (NOT H5_ZLIB_HEADER)
CONFIGURE_FILE (${HDF5_SOURCE_DIR}/Resources/hdf5_zlib.h.in ${HDF5_BINARY_DIR}/hdf5_zlib.h @ONLY)
SET (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES})
INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS})
MESSAGE (STATUS "Filter ZLIB is ON")
ENDIF (HDF5_ENABLE_Z_LIB_SUPPORT)
#-----------------------------------------------------------------------------
# Option for SzLib support
#-----------------------------------------------------------------------------
SET (CMAKE_MODULE_PATH ${HDF5_SOURCE_DIR}/Resources/CMake ${CMAKE_MODULE_PATH})
OPTION (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF)
IF (HDF5_ENABLE_SZIP_SUPPORT)
FIND_PACKAGE (SZIP REQUIRED)
IF (SZIP_FOUND)
SET (H5_HAVE_FILTER_SZIP 1)
SET (H5_HAVE_SZLIB_H 1)
SET (H5_HAVE_LIBSZ 1)
SET (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES})
INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIRS})
# MESSAGE (STATUS "SZIP_INCLUDE_DIRS: ${SZIP_INCLUDE_DIRS}")
# MESSAGE (STATUS "SZIP_INCLUDE_DIR: ${SZIP_INCLUDE_DIR}")
MESSAGE (STATUS "Filter SZIP is ON")
OPTION (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF)
IF (HDF5_ENABLE_SZIP_ENCODING)
SET (H5_HAVE_SZIP_ENCODER 1)
ENDIF (HDF5_ENABLE_SZIP_ENCODING)
ELSE (SZIP_FOUND)
MESSAGE (FATAL_ERROR "SZIP is Required for SZIP support in HDF5")
ENDIF (SZIP_FOUND)
ENDIF (HDF5_ENABLE_SZIP_SUPPORT)
#-----------------------------------------------------------------------------
# Option to use PACKED BITS SUPPORT
#-----------------------------------------------------------------------------
OPTION (HDF5_USE_H5DUMP_PACKED_BITS "Use the PACKED BITS feature in h5dump" ON)
SET (H5_HAVE_H5DUMP_PACKED_BITS 0)
IF (HDF5_USE_H5DUMP_PACKED_BITS)
SET (H5_HAVE_H5DUMP_PACKED_BITS 1)
ENDIF (HDF5_USE_H5DUMP_PACKED_BITS)
#-----------------------------------------------------------------------------
# Add the HDF5 Library Target to the build
#-----------------------------------------------------------------------------
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src)
#-----------------------------------------------------------------------------
# Build utility to copy and strip X lines of file
#-----------------------------------------------------------------------------
IF (HDF5_BUILD_TOOLS AND BUILD_TESTING)
SET (XLATE_UTILITY "xlatefile")
ADD_EXECUTABLE(${XLATE_UTILITY} ${HDF5_SOURCE_DIR}/Resources/xlatefile.c)
ENDIF (HDF5_BUILD_TOOLS AND BUILD_TESTING)
#-----------------------------------------------------------------------------
# Dashboard and Testing Settings
#-----------------------------------------------------------------------------
OPTION (BUILD_TESTING "Build HDF5 Unit Testing" OFF)
IF (BUILD_TESTING)
SET (DART_TESTING_TIMEOUT 1200 CACHE INTEGER
"Timeout in seconds for each test (default 1200=20minutes)")
ENABLE_TESTING ()
INCLUDE (CTest)
IF (NOT HDF5_EXTERNALLY_CONFIGURED)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/tools/lib ${PROJECT_BINARY_DIR}/tools/lib)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/test ${PROJECT_BINARY_DIR}/test)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/perform ${PROJECT_BINARY_DIR}/perform)
ENDIF (NOT HDF5_EXTERNALLY_CONFIGURED)
INCLUDE (${HDF5_SOURCE_DIR}/CTestConfig.cmake)
ENDIF (BUILD_TESTING)
#-----------------------------------------------------------------------------
# Option to build Fortran bindings/tests/examples
# Make sure this appears before the CONFIGURE_FILE step
# so that fortran name mangling is detected before writing H5pubconf.h
#-----------------------------------------------------------------------------
OPTION (HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF)
IF (HDF5_BUILD_FORTRAN)
# Set default name mangling : overridden by Fortran detection in fortran dir
SET (H5_FC_FUNC "H5_FC_FUNC(name,NAME) name ## _")
SET (H5_FC_FUNC_ "H5_FC_FUNC_(name,NAME) name ## _")
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/fortran ${PROJECT_BINARY_DIR}/fortran)
ELSE (HDF5_BUILD_FORTRAN)
SET (H5_FC_FUNC "H5_FC_FUNC(name,NAME) name ## _")
SET (H5_FC_FUNC_ "H5_FC_FUNC_(name,NAME) name ## _")
ENDIF (HDF5_BUILD_FORTRAN)
#-----------------------------------------------------------------------------
# Option to build examples
#-----------------------------------------------------------------------------
OPTION (HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" OFF)
IF (HDF5_BUILD_EXAMPLES)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/examples ${PROJECT_BINARY_DIR}/examples)
ENDIF (HDF5_BUILD_EXAMPLES)
#-----------------------------------------------------------------------------
# Option to build HDF5 C++ Library
#-----------------------------------------------------------------------------
OPTION (HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF)
IF (HDF5_BUILD_CPP_LIB)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/c++ ${PROJECT_BINARY_DIR}/c++)
ENDIF (HDF5_BUILD_CPP_LIB)
#-----------------------------------------------------------------------------
# Option to build HDF5 Tools
#-----------------------------------------------------------------------------
OPTION (HDF5_BUILD_TOOLS "Build HDF5 Tools" OFF)
IF (HDF5_BUILD_TOOLS)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools)
ENDIF (HDF5_BUILD_TOOLS)
#-----------------------------------------------------------------------------
# Option to build High Level API's
#-----------------------------------------------------------------------------
OPTION (HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" OFF)
IF (HDF5_BUILD_HL_LIB)
SET (H5_INCLUDE_HL 1)
ADD_SUBDIRECTORY (${HDF5_SOURCE_DIR}/hl ${PROJECT_BINARY_DIR}/hl)
ENDIF (HDF5_BUILD_HL_LIB)
#-----------------------------------------------------------------------------
# Generate the H5pubconf.h file containing user settings needed by compilation
#-----------------------------------------------------------------------------
CONFIGURE_FILE (${HDF5_SOURCE_DIR}/Resources/H5pubconf.h.in ${HDF5_BINARY_DIR}/H5pubconf.h @ONLY)
#-----------------------------------------------------------------------------
# Add file(s) to CMake Install
#-----------------------------------------------------------------------------
INSTALL (
FILES
${PROJECT_BINARY_DIR}/H5pubconf.h
DESTINATION
include
)
#-----------------------------------------------------------------------------
# Add Target(s) to CMake Install for import into other projects
#-----------------------------------------------------------------------------
INSTALL (
EXPORT
${HDF5_EXPORTED_TARGETS}
DESTINATION
lib
FILE
HDF5-config.cmake
)
# The install rule below copies compiled module files to the install location
# using a "code" rule. The code string should not be broken up, it must be on one line
IF (HDF5_BUILD_FORTRAN)
INSTALL ( CODE
"EXECUTE_PROCESS (COMMAND \"${CMAKE_COMMAND}\" -E copy_directory \"${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}\" \"${CMAKE_INSTALL_PREFIX}/fortran\")"
)
ENDIF (HDF5_BUILD_FORTRAN)
#-----------------------------------------------------------------------------
# Export all exported targets to the build tree for use by parent project
#-----------------------------------------------------------------------------
EXPORT (
TARGETS
${HDF5_LIBRARIES_TO_EXPORT} ${HDF5_LIB_DEPENDENCIES}
FILE
HDF5-config.cmake
)

34
COPYING
View File

@@ -4,18 +4,13 @@ HDF5 (Hierarchical Data Format 5) Software Library and Utilities
-----------------------------------------------------------------------------
HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 2006-2008 by The HDF Group (THG).
Copyright 2006-2010 by The HDF Group.
NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 1998-2006 by the Board of Trustees of the University of Illinois.
All rights reserved.
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Fortner Software, Unidata Program Center (netCDF),
The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip),
and Digital Equipment Corporation (DEC).
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial purposes)
provided that the following conditions are met:
@@ -39,17 +34,32 @@ provided that the following conditions are met:
5. Neither the name of The HDF Group, the name of the University, nor the
name of any Contributor may be used to endorse or promote products derived
from this software without specific prior written permission from the
University, THG, or the Contributor, respectively.
from this software without specific prior written permission from
The HDF Group, the University, or the Contributor, respectively.
DISCLAIMER:
THIS SOFTWARE IS PROVIDED BY THE HDF GROUP (THG) AND THE CONTRIBUTORS
THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS
"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no
event shall THG or the Contributors be liable for any damages suffered by
the users arising out of the use of this software, even if advised of the
possibility of such damage.
event shall The HDF Group or the Contributors be liable for any damages
suffered by the users arising out of the use of this software, even if
advised of the possibility of such damage.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Fortner Software, Unidata Program Center (netCDF),
The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip),
and Digital Equipment Corporation (DEC).
-----------------------------------------------------------------------------
Portions of HDF5 were developed with support from the Lawrence Berkeley
National Laboratory (LBNL) and the United States Department of Energy
under Prime Contract No. DE-AC02-05CH11231.
-----------------------------------------------------------------------------
Portions of HDF5 were developed with support from the University of
California, Lawrence Livermore National Laboratory (UC LLNL).
The following statement applies to those portions of the product and must

15
CTestConfig.cmake Normal file
View File

@@ -0,0 +1,15 @@
## This file should be placed in the root directory of your project.
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
## # The following are required to uses Dart and the Cdash dashboard
## ENABLE_TESTING()
## INCLUDE(CTest)
set(CTEST_PROJECT_NAME "HDF5.1.8")
set(CTEST_NIGHTLY_START_TIME "20:00:00 CST")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "nei.hdfgroup.uiuc.edu")
set(CTEST_DROP_LOCATION "/cdash/submit.php?project=HDF5.1.8")
set(CTEST_DROP_SITE_CDASH TRUE)
set(UPDATE_TYPE svn)

788
ConfigureChecks.cmake Normal file
View File

@@ -0,0 +1,788 @@
#-----------------------------------------------------------------------------
# Include all the necessary files for macros
#-----------------------------------------------------------------------------
INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFileCXX.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
MESSAGE (STATUS "Configure Checks that still need to be implemented")
MESSAGE (STATUS " GetConsoleScreenBufferInfo function for Windows")
#-----------------------------------------------------------------------------
# Always SET this for now IF we are on an OS X box
#-----------------------------------------------------------------------------
IF (APPLE)
SET (H5_AC_APPLE_UNIVERSAL_BUILD 1)
ENDIF (APPLE)
#-----------------------------------------------------------------------------
# Option to Clear File Buffers before write --enable-clear-file-buffers
#-----------------------------------------------------------------------------
OPTION (HDF5_Enable_Clear_File_Buffers "Securely clear file buffers before writing to file" ON)
IF (HDF5_Enable_Clear_File_Buffers)
SET (H5_CLEAR_MEMORY 1)
ENDIF (HDF5_Enable_Clear_File_Buffers)
#-----------------------------------------------------------------------------
# Option for --enable-instrument
#-----------------------------------------------------------------------------
IF (CMAKE_BUILD_TYPE MATCHES Debug)
SET (HDF5_Enable_Instrument ON)
ENDIF (CMAKE_BUILD_TYPE MATCHES Debug)
OPTION (HDF5_Enable_Instrument "Instrument The library" HDF5_Enable_Instrument)
IF (HDF5_Enable_Instrument)
SET (H5_HAVE_INSTRUMENTED_LIBRARY 1)
ENDIF (HDF5_Enable_Instrument)
#-----------------------------------------------------------------------------
# Option for --enable-strict-format-checks
#-----------------------------------------------------------------------------
OPTION (HDF5_STRICT_FORMAT_CHECKS "Whether to perform strict file format checks" OFF)
IF (HDF5_STRICT_FORMAT_CHECKS)
SET (H5_STRICT_FORMAT_CHECKS 1)
ENDIF (HDF5_STRICT_FORMAT_CHECKS)
#-----------------------------------------------------------------------------
# Option for --enable-metadata-trace-file
#-----------------------------------------------------------------------------
OPTION (HDF5_METADATA_TRACE_FILE "Enable metadata trace file collection" OFF)
IF (HDF5_METADATA_TRACE_FILE)
SET (H5_METADATA_TRACE_FILE 1)
ENDIF (HDF5_METADATA_TRACE_FILE)
# ----------------------------------------------------------------------
# Decide whether the data accuracy has higher priority during data
# conversions. If not, some hard conversions will still be prefered even
# though the data may be wrong (for example, some compilers don't
# support denormalized floating values) to maximize speed.
#
OPTION (HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON)
IF (HDF5_WANT_DATA_ACCURACY)
SET (H5_WANT_DATA_ACCURACY 1)
ENDIF(HDF5_WANT_DATA_ACCURACY)
# ----------------------------------------------------------------------
# Decide whether the presence of user's exception handling functions is
# checked and data conversion exceptions are returned. This is mainly
# for the speed optimization of hard conversions. Soft conversions can
# actually benefit little.
#
OPTION (HDF5_WANT_DCONV_EXCEPTION "exception handling functions is checked during data conversions" ON)
IF (HDF5_WANT_DCONV_EXCEPTION)
SET (H5_WANT_DCONV_EXCEPTION 1)
ENDIF (HDF5_WANT_DCONV_EXCEPTION)
SET (LINUX_LFS 0)
IF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
# Linux Specific flags
ADD_DEFINITIONS (-D_POSIX_SOURCE -D_BSD_SOURCE)
OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
IF (HDF5_ENABLE_LARGE_FILE)
SET (LARGEFILE 1)
ENDIF (HDF5_ENABLE_LARGE_FILE)
ENDIF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
SET (HDF5_EXTRA_FLAGS)
IF (LINUX_LFS)
SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
SET (CMAKE_REQUIRED_DEFINITIONS ${HDF5_EXTRA_FLAGS})
ENDIF (LINUX_LFS)
ADD_DEFINITIONS (${HDF5_EXTRA_FLAGS})
#IF (WIN32)
# SET (DEFAULT_STREAM_VFD OFF)
#ELSE (WIN32)
# SET (DEFAULT_STREAM_VFD ON)
#ENDIF (WIN32)
#OPTION (HDF5_STREAM_VFD "Compile Stream Virtual File Driver support" ${DEFAULT_STREAM_VFD})
OPTION (HDF5_ENABLE_HSIZET "Enable datasets larger than memory" ON)
SET (WINDOWS)
IF (WIN32)
IF (NOT UNIX)
SET (WINDOWS 1)
ENDIF (NOT UNIX)
ENDIF (WIN32)
# TODO --------------------------------------------------------------------------
# Should the Default Virtual File Driver be compiled?
# This is hard-coded now but option should added to match configure
#
IF (WINDOWS)
SET (H5_HAVE_WINDOWS 1)
# SET (H5_WINDOWS_USE_STDIO 0)
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine has window style pathname,
# that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/").
# (This flag should be _unset_ for all machines, except for Windows)
#
SET (H5_HAVE_WINDOW_PATH 1)
SET (WINDOWS_MAX_BUF (1024 * 1024 * 1024))
SET (H5_DEFAULT_VFD H5FD_WINDOWS)
ELSE (WINDOWS)
SET (H5_DEFAULT_VFD H5FD_SEC2)
ENDIF (WINDOWS)
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can handle converting
# floating-point to long long values.
# (This flag should be _unset_ for all machines)
#
# SET (H5_HW_FP_TO_LLONG_NOT_WORKS 0)
# so far we have no check for this
SET(H5_HAVE_TMPFILE 1)
#-----------------------------------------------------------------------------
# This MACRO checks IF the symbol exists in the library and IF it
# does, it appends library to the list.
#-----------------------------------------------------------------------------
SET (LINK_LIBS "")
MACRO (CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE)
CHECK_LIBRARY_EXISTS ("${LIBRARY};${LINK_LIBS}" ${SYMBOL} "" ${VARIABLE})
IF (${VARIABLE})
SET (LINK_LIBS ${LINK_LIBS} ${LIBRARY})
ENDIF (${VARIABLE})
ENDMACRO (CHECK_LIBRARY_EXISTS_CONCAT)
#-----------------------------------------------------------------------------
# Check for the math library "m"
#-----------------------------------------------------------------------------
IF (WINDOWS)
SET (H5_HAVE_LIBM 1)
ELSE (WINDOWS)
CHECK_LIBRARY_EXISTS_CONCAT ("m" printf H5_HAVE_LIBM)
ENDIF (WINDOWS)
CHECK_LIBRARY_EXISTS_CONCAT ("ws2_32" printf H5_HAVE_LIBWS2_32)
CHECK_LIBRARY_EXISTS_CONCAT ("wsock32" printf H5_HAVE_LIBWSOCK32)
#CHECK_LIBRARY_EXISTS_CONCAT ("dl" dlopen H5_HAVE_LIBDL)
CHECK_LIBRARY_EXISTS_CONCAT ("ucb" gethostname H5_HAVE_LIBUCB)
CHECK_LIBRARY_EXISTS_CONCAT ("socket" connect H5_HAVE_LIBSOCKET)
CHECK_LIBRARY_EXISTS ("c" gethostbyname "" NOT_NEED_LIBNSL)
IF (NOT NOT_NEED_LIBNSL)
CHECK_LIBRARY_EXISTS_CONCAT ("nsl" gethostbyname H5_HAVE_LIBNSL)
ENDIF (NOT NOT_NEED_LIBNSL)
SET (USE_INCLUDES "")
#-----------------------------------------------------------------------------
# Check IF header file exists and add it to the list.
#-----------------------------------------------------------------------------
MACRO (CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
CHECK_INCLUDE_FILES ("${USE_INCLUDES};${FILE}" ${VARIABLE})
IF (${VARIABLE})
SET (USE_INCLUDES ${USE_INCLUDES} ${FILE})
ENDIF (${VARIABLE})
ENDMACRO (CHECK_INCLUDE_FILE_CONCAT)
#-----------------------------------------------------------------------------
# If we are on Windows we know some of the answers to these tests already
#-----------------------------------------------------------------------------
IF (WINDOWS)
SET (H5_HAVE_IO_H 1)
SET (H5_HAVE_SETJMP_H 1)
SET (H5_HAVE_STDDEF_H 1)
SET (H5_HAVE_SYS_STAT_H 1)
SET (H5_HAVE_SYS_TIMEB_H 1)
SET (H5_HAVE_SYS_TYPES_H 1)
SET (H5_HAVE_WINSOCK_H 1)
ENDIF (WINDOWS)
#-----------------------------------------------------------------------------
# Check for the existence of certain header files
#-----------------------------------------------------------------------------
CHECK_INCLUDE_FILE_CONCAT ("globus/common.h" H5_HAVE_GLOBUS_COMMON_H)
CHECK_INCLUDE_FILE_CONCAT ("io.h" H5_HAVE_IO_H)
CHECK_INCLUDE_FILE_CONCAT ("mfhdf.h" H5_HAVE_MFHDF_H)
CHECK_INCLUDE_FILE_CONCAT ("pdb.h" H5_HAVE_PDB_H)
CHECK_INCLUDE_FILE_CONCAT ("pthread.h" H5_HAVE_PTHREAD_H)
CHECK_INCLUDE_FILE_CONCAT ("setjmp.h" H5_HAVE_SETJMP_H)
CHECK_INCLUDE_FILE_CONCAT ("srbclient.h" H5_HAVE_SRBCLIENT_H)
CHECK_INCLUDE_FILE_CONCAT ("stddef.h" H5_HAVE_STDDEF_H)
CHECK_INCLUDE_FILE_CONCAT ("stdint.h" H5_HAVE_STDINT_H)
CHECK_INCLUDE_FILE_CONCAT ("string.h" H5_HAVE_STRING_H)
CHECK_INCLUDE_FILE_CONCAT ("strings.h" H5_HAVE_STRINGS_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/ioctl.h" H5_HAVE_SYS_IOCTL_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/proc.h" H5_HAVE_SYS_PROC_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/resource.h" H5_HAVE_SYS_RESOURCE_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/socket.h" H5_HAVE_SYS_SOCKET_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/stat.h" H5_HAVE_SYS_STAT_H)
IF (CMAKE_SYSTEM_NAME MATCHES "OSF")
CHECK_INCLUDE_FILE_CONCAT ("sys/sysinfo.h" H5_HAVE_SYS_SYSINFO_H)
ELSE (CMAKE_SYSTEM_NAME MATCHES "OSF")
SET (H5_HAVE_SYS_SYSINFO_H "" CACHE INTERNAL "" FORCE)
ENDIF (CMAKE_SYSTEM_NAME MATCHES "OSF")
CHECK_INCLUDE_FILE_CONCAT ("sys/time.h" H5_HAVE_SYS_TIME_H)
CHECK_INCLUDE_FILE_CONCAT ("time.h" H5_HAVE_TIME_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/timeb.h" H5_HAVE_SYS_TIMEB_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/types.h" H5_HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILE_CONCAT ("unistd.h" H5_HAVE_UNISTD_H)
CHECK_INCLUDE_FILE_CONCAT ("stdlib.h" H5_HAVE_STDLIB_H)
CHECK_INCLUDE_FILE_CONCAT ("memory.h" H5_HAVE_MEMORY_H)
CHECK_INCLUDE_FILE_CONCAT ("dlfcn.h" H5_HAVE_DLFCN_H)
CHECK_INCLUDE_FILE_CONCAT ("features.h" H5_HAVE_FEATURES_H)
CHECK_INCLUDE_FILE_CONCAT ("inttypes.h" H5_HAVE_INTTYPES_H)
CHECK_INCLUDE_FILE_CONCAT ("winsock.h" H5_HAVE_WINSOCK_H)
CHECK_INCLUDE_FILE_CONCAT ("netinet/in.h" H5_HAVE_NETINET_IN_H)
# IF the c compiler found stdint, check the C++ as well. On some systems this
# file will be found by C but not C++, only do this test IF the C++ compiler
# has been initialized (e.g. the project also includes some c++)
IF (H5_HAVE_STDINT_H AND CMAKE_CXX_COMPILER_LOADED)
CHECK_INCLUDE_FILE_CXX ("stdint.h" H5_HAVE_STDINT_H_CXX)
IF (NOT H5_HAVE_STDINT_H_CXX)
SET (H5_HAVE_STDINT_H "" CACHE INTERNAL "Have includes HAVE_STDINT_H")
ENDIF (NOT H5_HAVE_STDINT_H_CXX)
ENDIF (H5_HAVE_STDINT_H AND CMAKE_CXX_COMPILER_LOADED)
#-----------------------------------------------------------------------------
# Check the size in bytes of all the int and float types
#-----------------------------------------------------------------------------
MACRO (H5_CHECK_TYPE_SIZE type var)
SET (aType ${type})
SET (aVar ${var})
# MESSAGE (STATUS "Checking size of ${aType} and storing into ${aVar}")
CHECK_TYPE_SIZE (${aType} ${aVar})
IF (NOT ${aVar})
SET (${aVar} 0 CACHE INTERNAL "SizeOf for ${aType}")
# MESSAGE (STATUS "Size of ${aType} was NOT Found")
ENDIF (NOT ${aVar})
ENDMACRO (H5_CHECK_TYPE_SIZE)
H5_CHECK_TYPE_SIZE (char H5_SIZEOF_CHAR)
H5_CHECK_TYPE_SIZE (short H5_SIZEOF_SHORT)
H5_CHECK_TYPE_SIZE (int H5_SIZEOF_INT)
H5_CHECK_TYPE_SIZE (unsigned H5_SIZEOF_UNSIGNED)
IF (NOT APPLE)
H5_CHECK_TYPE_SIZE (long H5_SIZEOF_LONG)
ENDIF (NOT APPLE)
H5_CHECK_TYPE_SIZE ("long long" H5_SIZEOF_LONG_LONG)
H5_CHECK_TYPE_SIZE (__int64 H5_SIZEOF___INT64)
IF (NOT H5_SIZEOF___INT64)
SET (H5_SIZEOF___INT64 0)
ENDIF (NOT H5_SIZEOF___INT64)
H5_CHECK_TYPE_SIZE (float H5_SIZEOF_FLOAT)
H5_CHECK_TYPE_SIZE (double H5_SIZEOF_DOUBLE)
H5_CHECK_TYPE_SIZE ("long double" H5_SIZEOF_LONG_DOUBLE)
H5_CHECK_TYPE_SIZE (int8_t H5_SIZEOF_INT8_T)
H5_CHECK_TYPE_SIZE (uint8_t H5_SIZEOF_UINT8_T)
H5_CHECK_TYPE_SIZE (int_least8_t H5_SIZEOF_INT_LEAST8_T)
H5_CHECK_TYPE_SIZE (uint_least8_t H5_SIZEOF_UINT_LEAST8_T)
H5_CHECK_TYPE_SIZE (int_fast8_t H5_SIZEOF_INT_FAST8_T)
H5_CHECK_TYPE_SIZE (uint_fast8_t H5_SIZEOF_UINT_FAST8_T)
H5_CHECK_TYPE_SIZE (int16_t H5_SIZEOF_INT16_T)
H5_CHECK_TYPE_SIZE (uint16_t H5_SIZEOF_UINT16_T)
H5_CHECK_TYPE_SIZE (int_least16_t H5_SIZEOF_INT_LEAST16_T)
H5_CHECK_TYPE_SIZE (uint_least16_t H5_SIZEOF_UINT_LEAST16_T)
H5_CHECK_TYPE_SIZE (int_fast16_t H5_SIZEOF_INT_FAST16_T)
H5_CHECK_TYPE_SIZE (uint_fast16_t H5_SIZEOF_UINT_FAST16_T)
H5_CHECK_TYPE_SIZE (int32_t H5_SIZEOF_INT32_T)
H5_CHECK_TYPE_SIZE (uint32_t H5_SIZEOF_UINT32_T)
H5_CHECK_TYPE_SIZE (int_least32_t H5_SIZEOF_INT_LEAST32_T)
H5_CHECK_TYPE_SIZE (uint_least32_t H5_SIZEOF_UINT_LEAST32_T)
H5_CHECK_TYPE_SIZE (int_fast32_t H5_SIZEOF_INT_FAST32_T)
H5_CHECK_TYPE_SIZE (uint_fast32_t H5_SIZEOF_UINT_FAST32_T)
H5_CHECK_TYPE_SIZE (int64_t H5_SIZEOF_INT64_T)
H5_CHECK_TYPE_SIZE (uint64_t H5_SIZEOF_UINT64_T)
H5_CHECK_TYPE_SIZE (int_least64_t H5_SIZEOF_INT_LEAST64_T)
H5_CHECK_TYPE_SIZE (uint_least64_t H5_SIZEOF_UINT_LEAST64_T)
H5_CHECK_TYPE_SIZE (int_fast64_t H5_SIZEOF_INT_FAST64_T)
H5_CHECK_TYPE_SIZE (uint_fast64_t H5_SIZEOF_UINT_FAST64_T)
IF (NOT APPLE)
H5_CHECK_TYPE_SIZE (size_t H5_SIZEOF_SIZE_T)
H5_CHECK_TYPE_SIZE (ssize_t H5_SIZEOF_SSIZE_T)
IF (NOT H5_SIZEOF_SSIZE_T)
SET (H5_SIZEOF_SSIZE_T 0)
ENDIF (NOT H5_SIZEOF_SSIZE_T)
ENDIF (NOT APPLE)
H5_CHECK_TYPE_SIZE (off_t H5_SIZEOF_OFF_T)
H5_CHECK_TYPE_SIZE (off64_t H5_SIZEOF_OFF64_T)
IF (NOT H5_SIZEOF_OFF64_T)
SET (H5_SIZEOF_OFF64_T 0)
ENDIF (NOT H5_SIZEOF_OFF64_T)
# For other tests to use the same libraries
SET (CMAKE_REQUIRED_LIBRARIES ${LINK_LIBS})
#-----------------------------------------------------------------------------
# Check for some functions that are used
IF (WINDOWS)
SET (H5_HAVE_STRDUP 1)
SET (H5_HAVE_SYSTEM 1)
SET (H5_HAVE_DIFFTIME 1)
SET (H5_HAVE_LONGJMP 1)
SET (H5_STDC_HEADERS 1)
SET (H5_HAVE_GETHOSTNAME 1)
ENDIF (WINDOWS)
CHECK_FUNCTION_EXISTS (alarm H5_HAVE_ALARM)
CHECK_FUNCTION_EXISTS (fork H5_HAVE_FORK)
CHECK_FUNCTION_EXISTS (frexpf H5_HAVE_FREXPF)
CHECK_FUNCTION_EXISTS (frexpl H5_HAVE_FREXPL)
CHECK_FUNCTION_EXISTS (gethostname H5_HAVE_GETHOSTNAME)
CHECK_FUNCTION_EXISTS (getpwuid H5_HAVE_GETPWUID)
CHECK_FUNCTION_EXISTS (getrusage H5_HAVE_GETRUSAGE)
CHECK_FUNCTION_EXISTS (lstat H5_HAVE_LSTAT)
CHECK_FUNCTION_EXISTS (rand_r H5_HAVE_RAND_R)
CHECK_FUNCTION_EXISTS (random H5_HAVE_RANDOM)
CHECK_FUNCTION_EXISTS (setsysinfo H5_HAVE_SETSYSINFO)
CHECK_FUNCTION_EXISTS (signal H5_HAVE_SIGNAL)
CHECK_FUNCTION_EXISTS (longjmp H5_HAVE_LONGJMP)
CHECK_FUNCTION_EXISTS (setjmp H5_HAVE_SETJMP)
CHECK_FUNCTION_EXISTS (siglongjmp H5_HAVE_SIGLONGJMP)
CHECK_FUNCTION_EXISTS (sigsetjmp H5_HAVE_SIGSETJMP)
CHECK_FUNCTION_EXISTS (sigaction H5_HAVE_SIGACTION)
CHECK_FUNCTION_EXISTS (sigprocmask H5_HAVE_SIGPROCMASK)
CHECK_FUNCTION_EXISTS (snprintf H5_HAVE_SNPRINTF)
CHECK_FUNCTION_EXISTS (srandom H5_HAVE_SRANDOM)
CHECK_FUNCTION_EXISTS (strdup H5_HAVE_STRDUP)
CHECK_FUNCTION_EXISTS (symlink H5_HAVE_SYMLINK)
CHECK_FUNCTION_EXISTS (system H5_HAVE_SYSTEM)
CHECK_FUNCTION_EXISTS (tmpfile H5_HAVE_TMPFILE)
CHECK_FUNCTION_EXISTS (vasprintf H5_HAVE_VASPRINTF)
CHECK_FUNCTION_EXISTS (waitpid H5_HAVE_WAITPID)
CHECK_FUNCTION_EXISTS (vsnprintf H5_HAVE_VSNPRINTF)
CHECK_FUNCTION_EXISTS (ioctl H5_HAVE_IOCTL)
#CHECK_FUNCTION_EXISTS (gettimeofday H5_HAVE_GETTIMEOFDAY)
CHECK_FUNCTION_EXISTS (difftime H5_HAVE_DIFFTIME)
CHECK_FUNCTION_EXISTS (fseeko H5_HAVE_FSEEKO)
CHECK_FUNCTION_EXISTS (ftello H5_HAVE_FTELLO)
CHECK_FUNCTION_EXISTS (fstat64 H5_HAVE_FSTAT64)
CHECK_FUNCTION_EXISTS (stat64 H5_HAVE_STAT64)
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Since gettimeofday is not defined any where standard, lets look in all the
# usual places. On MSVC we are just going to use ::clock()
#-----------------------------------------------------------------------------
IF (NOT MSVC)
IF ("H5_HAVE_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_TIME_GETTIMEOFDAY$")
TRY_COMPILE (HAVE_TIME_GETTIMEOFDAY
${CMAKE_BINARY_DIR}
${HDF5_SOURCE_DIR}/Resources/GetTimeOfDayTest.cpp
COMPILE_DEFINITIONS -DTRY_TIME_H
OUTPUT_VARIABLE OUTPUT
)
IF (HAVE_TIME_GETTIMEOFDAY STREQUAL "TRUE")
SET (H5_HAVE_TIME_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_TIME_GETTIMEOFDAY")
ENDIF (HAVE_TIME_GETTIMEOFDAY STREQUAL "TRUE")
ENDIF ("H5_HAVE_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_TIME_GETTIMEOFDAY$")
IF ("H5_HAVE_SYS_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_SYS_TIME_GETTIMEOFDAY$")
TRY_COMPILE (HAVE_SYS_TIME_GETTIMEOFDAY
${CMAKE_BINARY_DIR}
${HDF5_SOURCE_DIR}/Resources/GetTimeOfDayTest.cpp
COMPILE_DEFINITIONS -DTRY_SYS_TIME_H
OUTPUT_VARIABLE OUTPUT
)
IF (HAVE_SYS_TIME_GETTIMEOFDAY STREQUAL "TRUE")
SET (H5_HAVE_SYS_TIME_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_SYS_TIME_GETTIMEOFDAY")
ENDIF (HAVE_SYS_TIME_GETTIMEOFDAY STREQUAL "TRUE")
ENDIF ("H5_HAVE_SYS_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_SYS_TIME_GETTIMEOFDAY$")
ENDIF (NOT MSVC)
IF (NOT HAVE_SYS_TIME_GETTIMEOFDAY AND NOT H5_HAVE_GETTIMEOFDAY AND NOT MSVC)
MESSAGE (STATUS "---------------------------------------------------------------")
MESSAGE (STATUS "Function 'gettimeofday()' was not found. HDF5 will use its")
MESSAGE (STATUS " own implementation.. This can happen on older versions of")
MESSAGE (STATUS " MinGW on Windows. Consider upgrading your MinGW installation")
MESSAGE (STATUS " to a newer version such as MinGW 3.12")
MESSAGE (STATUS "---------------------------------------------------------------")
ENDIF (NOT HAVE_SYS_TIME_GETTIMEOFDAY AND NOT H5_HAVE_GETTIMEOFDAY AND NOT MSVC)
# Check for Symbols
CHECK_SYMBOL_EXISTS (tzname "time.h" H5_HAVE_DECL_TZNAME)
#-----------------------------------------------------------------------------
#
#-----------------------------------------------------------------------------
IF (NOT WINDOWS)
CHECK_SYMBOL_EXISTS (TIOCGWINSZ "sys/ioctl.h" H5_HAVE_TIOCGWINSZ)
CHECK_SYMBOL_EXISTS (TIOCGETD "sys/ioctl.h" H5_HAVE_TIOCGETD)
ENDIF (NOT WINDOWS)
#-----------------------------------------------------------------------------
# Check for the Stream VFD driver
#-----------------------------------------------------------------------------
IF (HDF5_STREAM_VFD)
CHECK_INCLUDE_FILE_CONCAT ("netdb.h" H5_HAVE_NETDB_H)
CHECK_INCLUDE_FILE_CONCAT ("netinet/tcp.h" H5_HAVE_NETINET_TCP_H)
CHECK_INCLUDE_FILE_CONCAT ("sys/filio.h" H5_HAVE_SYS_FILIO_H)
SET (H5_HAVE_STREAM 1)
ENDIF (HDF5_STREAM_VFD)
# For other other specific tests, use this MACRO.
MACRO (HDF5_FUNCTION_TEST OTHER_TEST)
IF ("H5_${OTHER_TEST}" MATCHES "^H5_${OTHER_TEST}$")
SET (MACRO_CHECK_FUNCTION_DEFINITIONS "-D${OTHER_TEST} ${CMAKE_REQUIRED_FLAGS}")
SET (OTHER_TEST_ADD_LIBRARIES)
IF (CMAKE_REQUIRED_LIBRARIES)
SET (OTHER_TEST_ADD_LIBRARIES "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
ENDIF (CMAKE_REQUIRED_LIBRARIES)
FOREACH (def ${HDF5_EXTRA_TEST_DEFINITIONS})
SET (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}=${${def}}")
ENDFOREACH (def)
FOREACH (def
H5_HAVE_SYS_TIME_H
H5_HAVE_UNISTD_H
H5_HAVE_SYS_TYPES_H
H5_HAVE_SYS_SOCKET_H
)
IF ("${def}")
SET (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}")
ENDIF ("${def}")
ENDFOREACH (def)
IF (LINUX_LFS)
SET (MACRO_CHECK_FUNCTION_DEFINITIONS
"${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
)
ENDIF (LINUX_LFS)
# (STATUS "Performing ${OTHER_TEST}")
TRY_COMPILE (${OTHER_TEST}
${CMAKE_BINARY_DIR}
${HDF5_SOURCE_DIR}/Resources/HDF5Tests.c
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
"${OTHER_TEST_ADD_LIBRARIES}"
OUTPUT_VARIABLE OUTPUT
)
IF (${OTHER_TEST})
SET (H5_${OTHER_TEST} 1 CACHE INTERNAL "Other test ${FUNCTION}")
MESSAGE (STATUS "Performing Other Test ${OTHER_TEST} - Success")
ELSE (${OTHER_TEST})
MESSAGE (STATUS "Performing Other Test ${OTHER_TEST} - Failed")
SET (H5_${OTHER_TEST} "" CACHE INTERNAL "Other test ${FUNCTION}")
FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
"Performing Other Test ${OTHER_TEST} failed with the following output:\n"
"${OUTPUT}\n"
)
ENDIF (${OTHER_TEST})
ENDIF ("H5_${OTHER_TEST}" MATCHES "^H5_${OTHER_TEST}$")
ENDMACRO (HDF5_FUNCTION_TEST)
#-----------------------------------------------------------------------------
# Check a bunch of other functions
#-----------------------------------------------------------------------------
IF (WINDOWS)
SET (H5_HAVE_TIMEZONE 1)
SET (H5_HAVE_FUNCTION 1)
ELSE (WINDOWS)
FOREACH (test
TIME_WITH_SYS_TIME
STDC_HEADERS
HAVE_TM_ZONE
HAVE_STRUCT_TM_TM_ZONE
HAVE_ATTRIBUTE
HAVE_FUNCTION
HAVE_TM_GMTOFF
HAVE_TIMEZONE
HAVE_STRUCT_TIMEZONE
HAVE_STAT_ST_BLOCKS
HAVE_FUNCTION
SYSTEM_SCOPE_THREADS
HAVE_SOCKLEN_T
DEV_T_IS_SCALAR
HAVE_OFF64_T
GETTIMEOFDAY_GIVES_TZ
VSNPRINTF_WORKS
HAVE_C99_FUNC
HAVE_C99_DESIGNATED_INITIALIZER
CXX_HAVE_OFFSETOF
)
HDF5_FUNCTION_TEST (${test})
ENDFOREACH (test)
ENDIF (WINDOWS)
#-----------------------------------------------------------------------------
# Look for 64 bit file stream capability
#-----------------------------------------------------------------------------
IF (HAVE_OFF64_T)
CHECK_FUNCTION_EXISTS (lseek64 H5_HAVE_LSEEK64)
CHECK_FUNCTION_EXISTS (fseek64 H5_HAVE_FSEEK64)
ENDIF (HAVE_OFF64_T)
#-----------------------------------------------------------------------------
# Determine how 'inline' is used
#-----------------------------------------------------------------------------
SET (HDF5_EXTRA_TEST_DEFINITIONS INLINE_TEST_INLINE)
FOREACH (inline_test inline __inline__ __inline)
SET (INLINE_TEST_INLINE ${inline_test})
HDF5_FUNCTION_TEST (INLINE_TEST_${inline_test})
ENDFOREACH (inline_test)
SET (HDF5_EXTRA_TEST_DEFINITIONS)
IF (INLINE_TEST___inline__)
SET (H5_inline __inline__)
ELSE (INLINE_TEST___inline__)
IF (INLINE_TEST___inline)
SET (H5_inline __inline)
ELSE (INLINE_TEST___inline)
IF (INLINE_TEST_inline)
SET (H5_inline inline)
ENDIF (INLINE_TEST_inline)
ENDIF (INLINE_TEST___inline)
ENDIF (INLINE_TEST___inline__)
#-----------------------------------------------------------------------------
# Check how to print a Long Long integer
#-----------------------------------------------------------------------------
SET (H5_H5_PRINTF_LL_WIDTH "H5_PRINTF_LL_WIDTH")
IF (H5_PRINTF_LL_WIDTH MATCHES "^H5_PRINTF_LL_WIDTH$")
SET (PRINT_LL_FOUND 0)
MESSAGE (STATUS "Checking for appropriate format for 64 bit long:")
FOREACH (HDF5_PRINTF_LL l64 l L q I64 ll)
SET (CURRENT_TEST_DEFINITIONS "-DPRINTF_LL_WIDTH=${HDF5_PRINTF_LL}")
IF (H5_SIZEOF_LONG_LONG)
SET (CURRENT_TEST_DEFINITIONS "${CURRENT_TEST_DEFINITIONS} -DHAVE_LONG_LONG")
ENDIF (H5_SIZEOF_LONG_LONG)
TRY_RUN (HDF5_PRINTF_LL_TEST_RUN HDF5_PRINTF_LL_TEST_COMPILE
${HDF5_BINARY_DIR}/CMake
${HDF5_SOURCE_DIR}/Resources/HDF5Tests.c
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CURRENT_TEST_DEFINITIONS}
OUTPUT_VARIABLE OUTPUT
)
IF (HDF5_PRINTF_LL_TEST_COMPILE)
IF (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
SET (H5_PRINTF_LL_WIDTH "\"${HDF5_PRINTF_LL}\"" CACHE INTERNAL "Width for printf for type `long long' or `__int64', us. `ll")
SET (PRINT_LL_FOUND 1)
ELSE (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
MESSAGE ("Width with ${HDF5_PRINTF_LL} failed with result: ${HDF5_PRINTF_LL_TEST_RUN}")
ENDIF (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
ELSE (HDF5_PRINTF_LL_TEST_COMPILE)
FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
"Test H5_PRINTF_LL_WIDTH for ${HDF5_PRINTF_LL} failed with the following output:\n ${OUTPUT}\n"
)
ENDIF (HDF5_PRINTF_LL_TEST_COMPILE)
ENDFOREACH (HDF5_PRINTF_LL)
IF (PRINT_LL_FOUND)
MESSAGE (STATUS "Checking for apropriate format for 64 bit long: found ${H5_PRINTF_LL_WIDTH}")
ELSE (PRINT_LL_FOUND)
MESSAGE (STATUS "Checking for apropriate format for 64 bit long: not found")
SET (H5_PRINTF_LL_WIDTH "\"unknown\"" CACHE INTERNAL
"Width for printf for type `long long' or `__int64', us. `ll"
)
ENDIF (PRINT_LL_FOUND)
ENDIF (H5_PRINTF_LL_WIDTH MATCHES "^H5_PRINTF_LL_WIDTH$")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can handle converting
# denormalized floating-point values.
# (This flag should be set for all machines, except for the Crays, where
# the cache value is set in it's config file)
#
SET (H5_CONVERT_DENORMAL_FLOAT 1)
#-----------------------------------------------------------------------------
# Are we going to use HSIZE_T
#-----------------------------------------------------------------------------
IF (HDF5_ENABLE_HSIZET)
SET (H5_HAVE_LARGE_HSIZET 1)
ENDIF (HDF5_ENABLE_HSIZET)
IF (CYGWIN)
SET (H5_HAVE_LSEEK64 0)
ENDIF (CYGWIN)
#-----------------------------------------------------------------------------
# Macro to determine the various conversion capabilities
#-----------------------------------------------------------------------------
MACRO (H5ConversionTests TEST msg)
IF ("${TEST}" MATCHES "^${TEST}$")
# MESSAGE (STATUS "===> ${TEST}")
TRY_RUN (${TEST}_RUN ${TEST}_COMPILE
${HDF5_BINARY_DIR}/CMake
${HDF5_SOURCE_DIR}/Resources/ConversionTests.c
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-D${TEST}_TEST
OUTPUT_VARIABLE OUTPUT
)
IF (${TEST}_COMPILE)
IF (${TEST}_RUN MATCHES 0)
SET (${TEST} 1 CACHE INTERNAL ${msg})
MESSAGE(STATUS "${msg}... yes")
ELSE (${TEST}_RUN MATCHES 0)
SET (${TEST} "" CACHE INTERNAL ${msg})
MESSAGE (STATUS "${msg}... no")
FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
"Test ${TEST} Run failed with the following output and exit code:\n ${OUTPUT}\n"
)
ENDIF (${TEST}_RUN MATCHES 0)
ELSE (${TEST}_COMPILE )
SET (${TEST} "" CACHE INTERNAL ${msg})
MESSAGE (STATUS "${msg}... no")
FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
"Test ${TEST} Compile failed with the following output:\n ${OUTPUT}\n"
)
ENDIF (${TEST}_COMPILE)
ENDIF("${TEST}" MATCHES "^${TEST}$")
ENDMACRO (H5ConversionTests)
#-----------------------------------------------------------------------------
# Macro to make some of the conversion tests easier to write/read
#-----------------------------------------------------------------------------
MACRO (H5MiscConversionTest VAR TEST msg)
IF ("${TEST}" MATCHES "^${TEST}$")
IF (${VAR})
SET (${TEST} 1 CACHE INTERNAL ${msg})
MESSAGE (STATUS "${msg}... yes")
ELSE (${VAR})
SET (${TEST} "" CACHE INTERNAL ${msg})
MESSAGE (STATUS "${msg}... no")
ENDIF (${VAR})
ENDIF ("${TEST}" MATCHES "^${TEST}$")
ENDMACRO (H5MiscConversionTest)
#-----------------------------------------------------------------------------
# Check various conversion capabilities
#-----------------------------------------------------------------------------
# -----------------------------------------------------------------------
# Set flag to indicate that the machine can handle conversion from
# long double to integers accurately. This flag should be set "yes" for
# all machines except all SGIs. For SGIs, some conversions are
# incorrect and its cache value is set "no" in its config/irix6.x and
# irix5.x.
#
H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "checking IF converting from long double to integers is accurate")
# -----------------------------------------------------------------------
# Set flag to indicate that the machine can do conversion from
# long double to integers regardless of accuracy. This flag should be
# set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the
# compiler has 'floating exception' when converting 'long double' to all
# integers except 'unsigned long long'. Other HP-UX systems are unknown
# yet. (1/8/05 - SLU)
#
H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works")
# -----------------------------------------------------------------------
# Set flag to indicate that the machine can handle conversion from
# integers to long double. (This flag should be set "yes" for all
# machines except all SGIs, where some conversions are
# incorrect and its cache value is set "no" in its config/irix6.x and
# irix5.x)
#
H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_INTEGER_TO_LDOUBLE_ACCURATE "checking IF accurately converting from integers to long double")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can accurately convert
# 'unsigned long' to 'float' values.
# (This flag should be set for all machines, except for Pathscale compiler
# on Sandia's Linux machine where the compiler interprets 'unsigned long'
# values as negative when the first bit of 'unsigned long' is on during
# the conversion to float.)
#
H5ConversionTests (H5_ULONG_TO_FLOAT_ACCURATE "Checking IF accurately converting unsigned long to float values")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can accurately convert
# 'unsigned (long) long' values to 'float' and 'double' values.
# (This flag should be set for all machines, except for the SGIs, where
# the cache value is set in the config/irix6.x config file) and Solaris
# 64-bit machines, where the short program below tests if round-up is
# correctly handled.
#
H5ConversionTests (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE "Checking IF accurately converting unsigned long long to floating-point values")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can accurately convert
# 'float' or 'double' to 'unsigned long long' values.
# (This flag should be set for all machines, except for PGI compiler
# where round-up happens when the fraction of float-point value is greater
# than 0.5.
#
H5ConversionTests (H5_FP_TO_ULLONG_ACCURATE "Checking IF accurately roundup converting floating-point to unsigned long long values" )
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can accurately convert
# 'float', 'double' or 'long double' to 'unsigned long long' values.
# (This flag should be set for all machines, except for HP-UX machines
# where the maximal number for unsigned long long is 0x7fffffffffffffff
# during conversion.
#
H5ConversionTests (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "Checking IF right maximum converting floating-point to unsigned long long values" )
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can accurately convert
# 'long double' to 'unsigned int' values. (This flag should be set for
# all machines, except for some Intel compilers on some Linux.)
#
H5ConversionTests (H5_LDOUBLE_TO_UINT_ACCURATE "Checking IF correctly converting long double to unsigned int values")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can _compile_
# 'unsigned long long' to 'float' and 'double' typecasts.
# (This flag should be set for all machines.)
#
IF (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$)
SET (H5_ULLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling unsigned long long to floating-point typecasts work")
MESSAGE (STATUS "Checking IF compiling unsigned long long to floating-point typecasts work... yes")
ENDIF (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$)
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can _compile_
# 'long long' to 'float' and 'double' typecasts.
# (This flag should be set for all machines.)
#
IF (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
SET (H5_LLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling long long to floating-point typecasts work")
MESSAGE (STATUS "Checking IF compiling long long to floating-point typecasts work... yes")
ENDIF (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can convert from
# 'unsigned long long' to 'long double' without precision loss.
# (This flag should be set for all machines, except for FreeBSD(sleipnir)
# where the last 2 bytes of mantissa are lost when compiler tries to do
# the conversion, and Cygwin where compiler doesn't do rounding correctly.)
#
H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can handle overflow converting
# all floating-point to all integer types.
# (This flag should be set for all machines, except for Cray X1 where
# floating exception is generated when the floating-point value is greater
# than the maximal integer value).
#
H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS "Checking IF overflows normally converting floating-point to integer values")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can accurately convert
# 'long double' to '(unsigned) long long' values. (This flag should be set for
# all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence
# of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long
# start to go wrong on these two machines. Adjusting it higher to
# 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted
# values wildly wrong. This test detects this wrong behavior and disable the test.
#
H5ConversionTests (H5_LDOUBLE_TO_LLONG_ACCURATE "Checking IF correctly converting long double to (unsigned) long long values")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can accurately convert
# '(unsigned) long long' to 'long double' values. (This flag should be set for
# all machines, except for Mac OS 10.4, when the bit sequences are 003fff...,
# 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice
# as big as they should be.
#
H5ConversionTests (H5_LLONG_TO_LDOUBLE_CORRECT "Checking IF correctly converting (unsigned) long long to long double values")
H5ConversionTests (H5_NO_ALIGNMENT_RESTRICTIONS "Checking IF alignment restrictions are strictly enforced")
#-----------------------------------------------------------------------------
# These tests need to be manually SET for windows since there is currently
# something not quite correct with the actual test implementation. This affects
# the 'dt_arith' test and most likely lots of other code
# ----------------------------------------------------------------------------
IF (WINDOWS)
SET (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "" CACHE INTERNAL "")
ENDIF (WINDOWS)

822
MANIFEST

File diff suppressed because it is too large Load Diff

View File

@@ -73,12 +73,15 @@ else
endif
SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
$(HDF5_HL_DIR)
$(HDF5_HL_DIR) perform
DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
# Some files generated during configure that should be cleaned
DISTCLEANFILES=config/stamp1 config/stamp2
# Some files/directories generated during check that should be cleaned
CHECK_CLEANFILES+=*-tmp
# Define rules for lib, progs, check, and tests.
# These simply involve recursing into subdirectories.
test _test: check
@@ -113,6 +116,7 @@ check-clean:
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
$(RM) -rf prefix-tmp destdir-tmp
# Some C++ compilers/linkers will create a directory named ii_files in
# the root directory, which should be cleaned.
@@ -121,17 +125,20 @@ mostlyclean-local:
$(RM) -rf ii_files; \
fi
# 'make install' will now install examples, the same as 'make install-all'.
# 'make-install-all' will be redundant but will still work.
install: install-recursive install-examples
uninstall: uninstall-recursive uninstall-examples
# 'make install-all' also installs examples
install-all:
@$(MAKE) $(AM_MAKEFLAGS) install
@$(MAKE) $(AM_MAKEFLAGS) install-examples
uninstall-all:
@$(MAKE) $(AM_MAKEFLAGS) uninstall
@$(MAKE) $(AM_MAKEFLAGS) uninstall-examples
# Install examples in this directory and recursively
install-examples uninstall-examples:
@@SETX@; for d in examples $(HDF5_INTERFACES); do \
@@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
done
@@ -145,11 +152,31 @@ uninstall-doc:
# `make check-install' or `make installcheck' checks that examples can
# be successfully built
installcheck-local:
if test -n "${DESTDIR}"; then \
(cd ${DESTDIR}/$(bindir) && pwd && ./h5redeploy -force); \
fi
@(cd examples && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;
# check-install is just a synonym for installcheck
check-install: installcheck
# check-all-install tests all installation methods.
# Install via different mechanism and then compare against the default.
# Fine if only libXXX.a files are different since they may have been ranlib'ed.
check-all-install:
@echo Installing to default location
$(MAKE) install
@echo Installing to different prefix location
$(MAKE) prefix=${ROOT}/prefix-tmp install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r prefix-tmp ${prefix}
@echo Installing to different $$\DESTDIR location
env DESTDIR=${ROOT}/destdir-tmp $(MAKE) install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r destdir-tmp${prefix} ${prefix}
# Only source files in the src directory include tracing information,
# so 'make trace' only needs to recurse into that directory.
trace:

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -48,8 +49,9 @@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -79,6 +81,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -90,15 +93,43 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
@@ -106,6 +137,16 @@ distcleancheck_listfiles = find . -type f -print
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -119,46 +160,49 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CXX_VERSION = @CXX_VERSION@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FC_VERSION = @FC_VERSION@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -167,11 +211,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -179,11 +226,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LARGEFILE = @LARGEFILE@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -192,14 +244,21 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PACKED_BITS = @PACKED_BITS@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
@@ -211,22 +270,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -235,13 +293,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -257,8 +316,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -266,15 +329,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -287,6 +349,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -296,12 +359,12 @@ CP = cp
# Some machines need a command to run executables; this is that command
# so that our tests will run.
# We use RUNTESTS instead of RUNSERIAL directly because it may be that
# We use RUNEXEC instead of RUNSERIAL directly because it may be that
# some tests need to be run with a different command. Older versions
# of the makefiles used the command
# $(LIBTOOL) --mode=execute
# in some directories, for instance.
RUNTESTS = $(RUNSERIAL)
RUNEXEC = $(RUNSERIAL)
# Libraries to link to while building
LIBHDF5 = $(top_builddir)/src/libhdf5.la
@@ -317,11 +380,11 @@ LIBH5CPP_HL = $(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la
# Scripts used to build examples
# If only shared libraries have been installed, have h5cc build examples with
# shared libraries instead of static libraries
H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
H5CPP = $(bindir)/h5c++
H5CC = ${DESTDIR}$(bindir)/h5cc
H5CC_PP = ${DESTDIR}$(bindir)/h5pcc
H5FC = ${DESTDIR}$(bindir)/h5fc
H5FC_PP = ${DESTDIR}$(bindir)/h5pfc
H5CPP = ${DESTDIR}$(bindir)/h5c++
# The trace script; this is used on source files from the C library to
# insert tracing macros.
@@ -330,7 +393,10 @@ TRACE = perl $(top_srcdir)/bin/trace
# .chkexe files are used to mark tests that have run successfully.
# .chklog files are output from those tests.
# *.clog are from the MPE option.
CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Some files/directories generated during check that should be cleaned
CHECK_CLEANFILES = *.chkexe *.chklog *.clog $(TEST_PROG) *.o *.exe \
*-tmp
@BUILD_PARALLEL_CONDITIONAL_FALSE@TESTPARALLEL_DIR =
# Define subdirectories to build.
@@ -351,7 +417,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
@BUILD_HDF5_HL_CONDITIONAL_FALSE@HDF5_HL_DIR =
@BUILD_HDF5_HL_CONDITIONAL_TRUE@HDF5_HL_DIR = hl
SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
$(HDF5_HL_DIR)
$(HDF5_HL_DIR) perform
DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
@@ -366,15 +432,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -387,9 +453,10 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
esac;
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
@@ -398,7 +465,7 @@ clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
-rm -f libtool config.lt
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -407,7 +474,7 @@ distclean-libtool:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -424,7 +491,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -432,7 +499,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@failcom='exit 1'; \
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -458,16 +525,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -475,14 +542,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -494,46 +561,50 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d $(distdir) || mkdir $(distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -549,38 +620,55 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
@@ -589,6 +677,14 @@ dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
@@ -612,13 +708,17 @@ dist dist-all: distdir
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
@@ -626,9 +726,11 @@ distcheck: dist
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
@@ -650,13 +752,15 @@ distcheck: dist
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
@@ -678,10 +782,8 @@ check: check-recursive
all-am: Makefile all-local
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
@@ -698,6 +800,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -719,6 +822,8 @@ dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
@@ -727,18 +832,28 @@ install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-exec-local
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am: installcheck-local
maintainer-clean: maintainer-clean-recursive
@@ -762,22 +877,22 @@ ps-am:
uninstall-am: uninstall-local
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
install-strip
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am all-local am--refresh check check-am clean \
clean-generic clean-libtool ctags ctags-recursive dist \
dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
distcheck distclean distclean-generic distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-exec-local install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installcheck-local \
installdirs installdirs-am maintainer-clean \
dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-generic \
distclean-libtool distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-exec-local \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installcheck-local installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am uninstall-local
@@ -828,6 +943,7 @@ check-clean:
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
fi; \
done
$(RM) -rf prefix-tmp destdir-tmp
# Some C++ compilers/linkers will create a directory named ii_files in
# the root directory, which should be cleaned.
@@ -836,17 +952,20 @@ mostlyclean-local:
$(RM) -rf ii_files; \
fi
# 'make install' will now install examples, the same as 'make install-all'.
# 'make-install-all' will be redundant but will still work.
install: install-recursive install-examples
uninstall: uninstall-recursive uninstall-examples
# 'make install-all' also installs examples
install-all:
@$(MAKE) $(AM_MAKEFLAGS) install
@$(MAKE) $(AM_MAKEFLAGS) install-examples
uninstall-all:
@$(MAKE) $(AM_MAKEFLAGS) uninstall
@$(MAKE) $(AM_MAKEFLAGS) uninstall-examples
# Install examples in this directory and recursively
install-examples uninstall-examples:
@@SETX@; for d in examples $(HDF5_INTERFACES); do \
@@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do \
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
done
@@ -860,11 +979,31 @@ uninstall-doc:
# `make check-install' or `make installcheck' checks that examples can
# be successfully built
installcheck-local:
if test -n "${DESTDIR}"; then \
(cd ${DESTDIR}/$(bindir) && pwd && ./h5redeploy -force); \
fi
@(cd examples && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;
# check-install is just a synonym for installcheck
check-install: installcheck
# check-all-install tests all installation methods.
# Install via different mechanism and then compare against the default.
# Fine if only libXXX.a files are different since they may have been ranlib'ed.
check-all-install:
@echo Installing to default location
$(MAKE) install
@echo Installing to different prefix location
$(MAKE) prefix=${ROOT}/prefix-tmp install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r prefix-tmp ${prefix}
@echo Installing to different $$\DESTDIR location
env DESTDIR=${ROOT}/destdir-tmp $(MAKE) install
@echo Compare against the default installation.
@echo Fine if only libXXX.a files are different.
-diff -r destdir-tmp${prefix} ${prefix}
# Only source files in the src directory include tracing information,
# so 'make trace' only needs to recurse into that directory.
trace:
@@ -890,6 +1029,7 @@ $(top_builddir)/config.status:
# Don't include conclude.am in root Makefile; tests target needs to
# recurse into perform directory as well as reguar subdirs.
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -1,39 +1,40 @@
HDF5 version 1.8.0 currently under development
HDF5 version 1.8.5-patch1 released on Thu Aug 26 09:33:03 CDT 2010
Please refer to the release_docs/INSTALL file for installation instructions.
------------------------------------------------------------------------------
This release is almost fully functional for the entire API defined in the
documentation, see the RELEASE.txt file in the release_docs directory for information
specific to this release of the library. The INSTALL file contains
instructions on compiling and installing the library. The INSTALL_parallel
file contains instructions on installing the parallel version of the
library. The INSTALL* files can be found in the release_docs/ directory.
This release is fully functional for the API described in the documentation.
See the RELEASE.txt file in the release_docs/ directory for information
specific to this release of the library. Several INSTALL* files can also be
found in the release_docs/ directory: INSTALL contains instructions for
compiling and installing the library; INSTALL_parallel contains instructions
for installing the parallel version of the library; similarly-named files
contain instructions for VMS and several environments on MS Windows systems.
Documentation for this release can be found at the following URL:
http://www.hdfgroup.uiuc.edu/HDF5/release/beta/obtain518.html
http://www.hdfgroup.org/HDF5/doc/.
Four mailing lists are currently set up for use with the HDF5
library.
The following mailing lists are currently set up for HDF5 Library users:
news - For announcements of HDF5 related developments,
not a discussion list.
news - For announcements of HDF5 related developments,
not a discussion list.
hdf-forum - For general discussion of the HDF5 library with
other users.
hdf-forum - For general discussion of the HDF5 library with
other users.
hdf5dev - For discussion of the HDF5 library development
with developers and other interested parties.
hdf5dev - For discussion of the HDF5 library development
with developers and other interested parties.
To subscribe to a list, send mail to "<list>-subscribe@hdfgroup.org".
where <list> is the name of the list.
E.g., mail hdf5-subscribe@hdfgroup.org
where <list> is the name of the list. For example, send a request
to subscribe to the 'news' mail list to the following address:
news-subscribe@hdfgroup.org
Messages to be sent to the list should be sent to "<list>@hdfgroup.org".
Messages sent to the list should be addressed to "<list>@hdfgroup.org".
Periodic code snapshots are provided at the following URL:
ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/hdf5/snapshots
Please read the README.txt file in that directory before working with a library
snapshot.
Please read the README.txt file in that directory before working with a
library snapshot.
The HDF5 website is located at http://hdfgroup.org/HDF5/

View File

@@ -0,0 +1,179 @@
# - Find SZIP library
# - Derived from the FindTiff.cmake that is included with cmake
# Find the native SZIP includes and library
# This module defines
# SZIP_INCLUDE_DIRS, where to find tiff.h, etc.
# SZIP_LIBRARIES, libraries to link against to use SZIP.
# SZIP_FOUND, If false, do not try to use SZIP.
# also defined, but not for general use are
# SZIP_LIBRARY, where to find the SZIP library.
# SZIP_LIBRARY_DEBUG - Debug version of tiff library
# SZIP_LIBRARY_RELEASE - Release Version of tiff library
# MESSAGE (STATUS "Finding Szip library and headers..." )
############################################
#
# Check the existence of the libraries.
#
############################################
# This macro was taken directly from the FindQt4.cmake file that is included
# with the CMake distribution. This is NOT my work. All work was done by the
# original authors of the FindQt4.cmake file. Only minor modifications were
# made to remove references to Qt and make this file more generally applicable
#########################################################################
MACRO (SZIP_ADJUST_LIB_VARS basename)
IF (${basename}_INCLUDE_DIR)
# if only the release version was found, set the debug variable also to the release version
IF (${basename}_LIBRARY_RELEASE AND NOT ${basename}_LIBRARY_DEBUG)
SET (${basename}_LIBRARY_DEBUG ${${basename}_LIBRARY_RELEASE})
SET (${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE})
SET (${basename}_LIBRARIES ${${basename}_LIBRARY_RELEASE})
ENDIF (${basename}_LIBRARY_RELEASE AND NOT ${basename}_LIBRARY_DEBUG)
# if only the debug version was found, set the release variable also to the debug version
IF (${basename}_LIBRARY_DEBUG AND NOT ${basename}_LIBRARY_RELEASE)
SET (${basename}_LIBRARY_RELEASE ${${basename}_LIBRARY_DEBUG})
SET (${basename}_LIBRARY ${${basename}_LIBRARY_DEBUG})
SET (${basename}_LIBRARIES ${${basename}_LIBRARY_DEBUG})
ENDIF (${basename}_LIBRARY_DEBUG AND NOT ${basename}_LIBRARY_RELEASE)
IF (${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE)
# if the generator supports configuration types then set
# optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value
IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
SET (${basename}_LIBRARY optimized ${${basename}_LIBRARY_RELEASE} debug ${${basename}_LIBRARY_DEBUG})
ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
# if there are no configuration types and CMAKE_BUILD_TYPE has no value
# then just use the release libraries
SET (${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE} )
ENDIF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
SET (${basename}_LIBRARIES optimized ${${basename}_LIBRARY_RELEASE} debug ${${basename}_LIBRARY_DEBUG})
ENDIF (${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE)
SET (${basename}_LIBRARY ${${basename}_LIBRARY} CACHE FILEPATH "The ${basename} library")
IF (${basename}_LIBRARY)
SET (${basename}_FOUND 1)
ENDIF (${basename}_LIBRARY)
ENDIF (${basename}_INCLUDE_DIR )
# Make variables changeble to the advanced user
MARK_AS_ADVANCED (${basename}_LIBRARY ${basename}_LIBRARY_RELEASE ${basename}_LIBRARY_DEBUG ${basename}_INCLUDE_DIR )
ENDMACRO (SZIP_ADJUST_LIB_VARS)
# Look for the header file.
SET (SZIP_INCLUDE_SEARCH_DIRS
$ENV{SZIP_INSTALL}/include
$ENV{SZIP_INSTALL}/include/szip
/usr/include
/usr/include/szip
)
SET (SZIP_LIB_SEARCH_DIRS
$ENV{SZIP_INSTALL}/lib
/usr/lib
)
SET (SZIP_BIN_SEARCH_DIRS
$ENV{SZIP_INSTALL}/bin
/usr/bin
)
FIND_PATH (SZIP_INCLUDE_DIR
NAMES szlib.h
PATHS ${SZIP_INCLUDE_SEARCH_DIRS}
NO_DEFAULT_PATH
)
IF (WIN32 AND NOT MINGW)
SET (SZIP_SEARCH_DEBUG_NAMES "sz_d;libsz_d")
SET (SZIP_SEARCH_RELEASE_NAMES "sz;libsz")
ELSE (WIN32 AND NOT MINGW)
SET (SZIP_SEARCH_DEBUG_NAMES "sz_d")
SET (SZIP_SEARCH_RELEASE_NAMES "sz")
ENDIF (WIN32 AND NOT MINGW)
# Look for the library.
FIND_LIBRARY (SZIP_LIBRARY_DEBUG
NAMES ${SZIP_SEARCH_DEBUG_NAMES}
PATHS ${SZIP_LIB_SEARCH_DIRS}
NO_DEFAULT_PATH
)
FIND_LIBRARY (SZIP_LIBRARY_RELEASE
NAMES ${SZIP_SEARCH_RELEASE_NAMES}
PATHS ${SZIP_LIB_SEARCH_DIRS}
NO_DEFAULT_PATH
)
SZIP_ADJUST_LIB_VARS (SZIP)
IF (SZIP_INCLUDE_DIR AND SZIP_LIBRARY)
SET (SZIP_FOUND 1)
SET (SZIP_LIBRARIES ${SZIP_LIBRARY})
SET (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR})
IF (SZIP_LIBRARY_DEBUG)
GET_FILENAME_COMPONENT (SZIP_LIBRARY_PATH ${SZIP_LIBRARY_DEBUG} PATH)
SET (SZIP_LIB_DIR ${SZIP_LIBRARY_PATH})
ELSEIF (SZIP_LIBRARY_RELEASE)
GET_FILENAME_COMPONENT (SZIP_LIBRARY_PATH ${SZIP_LIBRARY_RELEASE} PATH)
SET (SZIP_LIB_DIR ${SZIP_LIBRARY_PATH})
ENDIF (SZIP_LIBRARY_DEBUG)
ELSE (SZIP_INCLUDE_DIR AND SZIP_LIBRARY)
SET (SZIP_FOUND 0)
SET (SZIP_LIBRARIES)
SET (SZIP_INCLUDE_DIRS)
ENDIF (SZIP_INCLUDE_DIR AND SZIP_LIBRARY)
# Report the results.
IF (NOT SZIP_FOUND)
SET (SZIP_DIR_MESSAGE
"SZip was not found. Make sure SZIP_LIBRARY and SZIP_INCLUDE_DIR are set or set the SZIP_INSTALL environment variable."
)
IF (NOT SZIP_FIND_QUIETLY)
MESSAGE (STATUS "${SZIP_DIR_MESSAGE}")
ELSE (NOT SZIP_FIND_QUIETLY)
IF (SZIP_FIND_REQUIRED)
MESSAGE (FATAL_ERROR "SZip was NOT found and is Required by this project")
ENDIF (SZIP_FIND_REQUIRED)
ENDIF (NOT SZIP_FIND_QUIETLY)
ENDIF (NOT SZIP_FOUND)
IF (SZIP_FOUND)
INCLUDE (CheckSymbolExists)
#############################################
# Find out if SZIP was build using dll's
#############################################
# Save required variable
SET (CMAKE_REQUIRED_INCLUDES_SAVE ${CMAKE_REQUIRED_INCLUDES})
SET (CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS})
# Add SZIP_INCLUDE_DIR to CMAKE_REQUIRED_INCLUDES
SET (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${SZIP_INCLUDE_DIRS}")
CHECK_SYMBOL_EXISTS (SZIP_BUILT_AS_DYNAMIC_LIB "SZconfig.h" HAVE_SZIP_DLL)
IF (HAVE_SZIP_DLL STREQUAL "TRUE")
SET (HAVE_SZIP_DLL "1")
ENDIF (HAVE_SZIP_DLL STREQUAL "TRUE")
# Restore CMAKE_REQUIRED_INCLUDES and CMAKE_REQUIRED_FLAGS variables
SET (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_SAVE})
SET (CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE})
#
#############################################
ENDIF (SZIP_FOUND)
IF (FIND_SZIP_DEBUG)
MESSAGE (STATUS "SZIP_INCLUDE_DIR: ${SZIP_INCLUDE_DIR}")
MESSAGE (STATUS "SZIP_INCLUDE_DIRS: ${SZIP_INCLUDE_DIRS}")
MESSAGE (STATUS "SZIP_LIBRARY_DEBUG: ${SZIP_LIBRARY_DEBUG}")
MESSAGE (STATUS "SZIP_LIBRARY_RELEASE: ${SZIP_LIBRARY_RELEASE}")
MESSAGE (STATUS "HAVE_SZIP_DLL: ${HAVE_SZIP_DLL}")
MESSAGE (STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
ENDIF (FIND_SZIP_DEBUG)

View File

@@ -0,0 +1,48 @@
#
# Check if the type exists and determine size of type. if the type
# exists, the size will be stored to the variable.
#
# CHECK_TYPE_SIZE - macro which checks the size of type
# VARIABLE - variable to store size if the type exists.
# HAVE_${VARIABLE} - does the variable exists or not
#
MACRO (HDF_CHECK_TYPE_SIZE TYPE VARIABLE)
SET (CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1)
IF ("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
SET (MACRO_CHECK_TYPE_SIZE_FLAGS
"-DCHECK_TYPE_SIZE_TYPE=\"${TYPE}\" ${CMAKE_REQUIRED_FLAGS}"
)
FOREACH (def HAVE_SYS_TYPES_H HAVE_STDINT_H HAVE_STDDEF_H HAVE_INTTYPES_H)
IF ("${def}")
SET (MACRO_CHECK_TYPE_SIZE_FLAGS "${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}")
ENDIF("${def}")
ENDFOREACH (def)
MESSAGE (STATUS "Check size of ${TYPE}")
IF (CMAKE_REQUIRED_LIBRARIES)
SET (CHECK_TYPE_SIZE_ADD_LIBRARIES
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}"
)
ENDIF (CMAKE_REQUIRED_LIBRARIES)
TRY_RUN (${VARIABLE} HAVE_${VARIABLE}
${CMAKE_BINARY_DIR}
${HDF5_PROJECT_DIR}/Resources/CheckTypeSize.c
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS}
"${CHECK_TYPE_SIZE_ADD_LIBRARIES}"
OUTPUT_VARIABLE OUTPUT
)
IF (HAVE_${VARIABLE})
MESSAGE (STATUS "Check size of ${TYPE} - done")
FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log
"Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n"
)
ELSE (HAVE_${VARIABLE})
MESSAGE (STATUS "Check size of ${TYPE} - failed")
FILE (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
"Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\n\n"
)
ENDIF (HAVE_${VARIABLE})
ENDIF ("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
SET (CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS)
ENDMACRO (HDF_CHECK_TYPE_SIZE)

422
Resources/ConversionTests.c Normal file
View File

@@ -0,0 +1,422 @@
#ifdef H5_FP_TO_INTEGER_OVERFLOW_WORKS_TEST
int main(void)
{
float f = 2147483648.0f;
int i;
i = (int)f;
done:
exit(0);
}
#endif
#ifdef H5_FP_TO_ULLONG_ACCURATE_TEST
int main(void)
{
float f = 111.60f;
double d = 222.55L;
unsigned long long l1 = (unsigned long long)f;
unsigned long long l2 = (unsigned long long)d;
int ret = 0;
if(l1 == 112)
ret = 1;
if(l2 == 223)
ret = 1;
done:
exit(ret);
}
#endif
#ifdef H5_FP_TO_ULLONG_RIGHT_MAXIMUM_TEST
int main(void)
{
float f = 9701917572145405952.00f;
double d1 = 9701917572145405952.00L;
long double d2 = 9701917572145405952.00L;
double d3 = 2e40L;
unsigned long long l1 = (unsigned long long)f;
unsigned long long l2 = (unsigned long long)d1;
unsigned long long l3 = (unsigned long long)d2;
unsigned long long l4;
unsigned long long l5 = 0x7fffffffffffffffULL;
int ret = 0;
if(l1 <= l5 || l2 <= l5 || l3 <= l5)
ret = 1;
l4 = (unsigned long long)d3;
if(l4 <= l5)
ret = 1;
done:
exit(ret);
}
#endif
#ifdef H5_LDOUBLE_TO_INTEGER_WORKS_TEST
int main(void)
{
void *align;
long double ld = 9701917572145405952.00L;
unsigned char v1;
short v2;
unsigned int v3;
int ret = 0;
align = (void*) malloc(sizeof(long double));
memcpy(align, &ld, sizeof(long double));
/*For HU-UX11.00, there's floating exception(core dump) when doing some of casting
*from 'long double' to integers*/
v1 = (unsigned char) (*((long double*) align));
v2 = (short) (*((long double*) align));
v3 = (unsigned int) (*((long double*) align));
done: exit(ret);
}
#endif
#ifdef H5_LDOUBLE_TO_LLONG_ACCURATE_TEST
int main(void)
{
long double ld = 20041683600089727.779961L;
long long ll;
unsigned long long ull;
unsigned char s[16];
int ret = 0;
if(sizeof(long double) == 16)
{
/*make sure the long double type is the same as the failing type
*which has 16 bytes in size and 11 bits of exponent. If it is,
*the bit sequence should be like below. It's not
*a decent way to check but this info isn't available. */
memcpy(s, &ld, 16);
if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 &&
s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 &&
s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c)
{
/*slightly adjust the bit sequence (s[8]=0xdf). The converted
*values will go wild on Mac OS 10.4 and IRIX64 6.5.*/
s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3;
s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0;
s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c;
s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
memcpy(&ld, s, 16);
ll = (long long)ld;
ull = (unsigned long long)ld;
if(ll != 20041683600089728 || ull != 20041683600089728)
ret = 1;
}
}
done:
exit(ret);
}
#endif
#ifdef H5_LDOUBLE_TO_UINT_ACCURATE_TEST
int main(void)
{
long double ld = 2733248032.9183987530L;
unsigned int i;
int ret = 0;
i = (unsigned int)ld;
if(i!=2733248032 && i!=2733248031 && i!=2733248033)
ret = 1;
done:
exit(ret);
}
#endif
#ifdef H5_LLONG_TO_LDOUBLE_CORRECT_TEST
int main(void)
{
long double ld;
long long ll;
unsigned long long ull;
unsigned char s[16];
int flag=0, ret=0;
/*Determine if long double has 16 byte in size, 11 bit exponent, and
*the bias is 0x3ff */
if(sizeof(long double) == 16)
{
ld = 1.0L;
memcpy(s, &ld, 16);
if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00)
flag = 1;
}
if(flag==1 && sizeof(long long)==8)
{
ll = 0x01ffffffffffffffLL;
ld = (long double)ll;
memcpy(s, &ld, 16);
/*Check if the bit sequence is as supposed to be*/
if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff ||
s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff ||
s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00)
ret = 1;
}
if(flag==1 && sizeof(unsigned long long)==8)
{
ull = 0x01ffffffffffffffULL;
ld = (long double)ull;
memcpy(s, &ld, 16);
if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff ||
s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff ||
s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00)
ret = 1;
}
done:
exit(ret);
}
#endif
#ifdef H5_NO_ALIGNMENT_RESTRICTIONS_TEST
#include <stdlib.h>
#include <string.h>
typedef struct
{
size_t len;
void *p;
}hvl_t;
#ifdef FC_DUMMY_MAIN
#ifndef FC_DUMMY_MAIN_EQ_F77
# ifdef __cplusplus
extern "C"
# endif
int FC_DUMMY_MAIN()
{ return 1;}
#endif
#endif
int
main ()
{
char *chp = "beefs";
char **chpp = malloc (2 * sizeof (char *));
char **chpp2;
hvl_t vl =
{ 12345, (void *) chp};
hvl_t *vlp;
hvl_t *vlp2;
memcpy ((void *) ((char *) chpp + 1), &chp, sizeof (char *));
chpp2 = (char **) ((char *) chpp + 1);
if (strcmp (*chpp2, chp))
{
free (chpp);
return 1;
}
free (chpp);
vlp = malloc (2 * sizeof (hvl_t));
memcpy ((void *) ((char *) vlp + 1), &vl, sizeof (hvl_t));
vlp2 = (hvl_t *) ((char *) vlp + 1);
if (vlp2->len != vl.len || vlp2->p != vl.p)
{
free (vlp);
return 1;
}
free (vlp);
;
return 0;
}
#endif
#ifdef H5_ULLONG_TO_LDOUBLE_PRECISION_TEST
#include <stddef.h>
int main(void)
{
/* General variables */
int endian;
int tst_value = 1;
int ret = 0;
/* For FreeBSD */
unsigned long long l = 0xa601e80bda85fcefULL;
long double ld;
unsigned char *c1, *c2;
size_t size;
/* For Cygwin */
unsigned long long l_cyg = 0xfffffffffffffff0ULL;
long double ld_cyg;
unsigned char *c2_cyg;
size_t size_cyg;
/* Determine this system's endianess */
c1 = (unsigned char*)calloc(1, sizeof(int));
memcpy((void*)c1, &tst_value, sizeof(int));
if(c1[0]==1)
endian = 0; /* little endian */
else
endian = 1; /* big endian */
/* For FreeBSD */
size = sizeof(long double);
memset(&ld, 0, size);
ld = (long double)l;
c2 = (unsigned char*)calloc(1, size);
memcpy((void*)c2, &ld, size);
/* Test if the last 2 bytes of mantissa are lost. Mainly for FreeBSD on Intel
* architecture(sleipnir) where it happens. */
/*if(endian==0 && c2[0]==0 && c2[1]==0)*//*little endian*/
if(endian==0 && c2[0]==0)
{ /*little endian*/
ret = 1;
goto done;
}
/* For Cygwin */
size_cyg = sizeof(long double);
memset(&ld_cyg, 0, size);
ld_cyg = (long double)l_cyg;
c2_cyg = (unsigned char*)calloc(1, size_cyg);
memcpy((void*)c2_cyg, &ld_cyg, size_cyg);
/* Test if the last 4 bytes(roughly) of mantissa are rounded up. Mainly for Cygwin
* where the values like 0xffffffffffffffff, 0xfffffffffffffffe, ...,
* 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000
* instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ...,
* 0x0000403efffffffffffff000 ...
*/
if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0)
ret = 1;
done:
if(c1)
free(c1);
if(c2)
free(c2);
if(c2_cyg)
free(c2_cyg);
exit(ret);
}
#endif
#ifdef H5_ULONG_TO_FLOAT_ACCURATE_TEST
int main(void)
{
int ret = 0;
unsigned long l1;
unsigned long l2;
unsigned long l3;
float f1;
float f2;
float f3;
if(sizeof(unsigned long)==8) {
l1 = 0xffffffffffffffffUL;
l2 = 0xffffffffffff0000UL;
l3 = 0xf000000000000000UL;
f1 = (float)l1;
f2 = (float)l2;
f3 = (float)l3;
if((f1 < 0) || (f2 < 0) || (f3 < 0))
ret = 1;
}
done:
exit(ret);
}
#endif
#ifdef H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE_TEST
#include <string.h>
int main(void)
{
unsigned long l1;
unsigned long l2;
unsigned long l3;
unsigned long l4;
unsigned long long ld1;
unsigned long long ld2;
unsigned long long ld3;
unsigned long long ld4;
double d1, d2, d3, d4;
unsigned char s[8];
int ret = 0;
if(sizeof(unsigned long)==8) {
l1 = 0xf000000000000b00UL; /*Round-down case*/
l2 = 0xf000000000000401UL; /*Round-up case*/
l3 = 0xf000000000000400UL; /*Round-down case*/
l4 = 0xf000000000000c00UL; /*Round-up case*/
d1 = (double)l1;
d2 = (double)l2;
d3 = (double)l3;
d4 = (double)l4;
} else if(sizeof(unsigned long long)==8) {
ld1 = 0xf000000000000b00ULL; /*Round-down case*/
ld2 = 0xf000000000000401ULL; /*Round-up case*/
ld3 = 0xf000000000000400ULL; /*Round-down case*/
ld4 = 0xf000000000000c00ULL; /*Round-up case*/
d1 = (double)ld1;
d2 = (double)ld2;
d3 = (double)ld3;
d4 = (double)ld4;
} else {
ret = 1;
goto done;
}
memcpy(s, &d1, 8);
if(s[7]!=1)
ret = 1;
memcpy(s, &d2, 8);
if(s[7]!=1)
ret = 1;
memcpy(s, &d3, 8);
if(s[7]!=0)
ret = 1;
memcpy(s, &d4, 8);
if(s[7]!=2)
ret = 1;
done:
exit(ret);
}
#endif

View File

@@ -0,0 +1,15 @@
#if defined (TRY_SYS_TIME_H)
#include <sys/time.h>
/* #include <time.h> */
#endif
#if defined (TRY_TIME_H)
#include <time.h>
#endif
int main(int argc, char **argv) {
struct timeval t1;
gettimeofday(&t1, 0x00);
return 0;
}

View File

@@ -0,0 +1,5 @@
/* src/H5cxx_config.h.in Created manually. */
/* Define if offsetof extension is present */
#cmakedefine HAVE_OFFSETOF ${HAVE_OFFSETOF}

745
Resources/H5pubconf.h.in Normal file
View File

@@ -0,0 +1,745 @@
/* H5pubconf.h Generated By CMake during the configuration */
#ifndef H5_CONFIG_H_
#define H5_CONFIG_H_
/* Define if the Windows virtual file driver should be compiled */
#cmakedefine H5_HAVE_WINDOWS @H5_HAVE_WINDOWS@
/* Define if the Windows virtual file driver should use buffered IO functions */
/* #undef WINDOWS_USE_STDIO */
/* Define the maximum write size for the Windows file driver. Larger writes
will be split into many writes. Safe values are 1 <= WINDOWS_MAX_BUF <= 2GB-1. */
#cmakedefine WINDOWS_MAX_BUF (1024 * 1024 * 1024)
/* Defined if HDF5 was built with CMake AND build as a shared library */
#cmakedefine H5_BUILT_AS_DYNAMIC_LIB @H5_BUILT_AS_DYNAMIC_LIB@
/* Defined if HDF5 CPP was built with CMake AND build as a shared library */
#cmakedefine H5_CPP_BUILT_AS_DYNAMIC_LIB @H5_CPP_BUILT_AS_DYNAMIC_LIB@
/* Defined if HDF5 HL was built with CMake AND build as a shared library */
#cmakedefine H5_HL_BUILT_AS_DYNAMIC_LIB @H5_HL_BUILT_AS_DYNAMIC_LIB@
/* Define if building universal (internal helper macro) */
#cmakedefine H5_AC_APPLE_UNIVERSAL_BUILD @H5_AC_APPLE_UNIVERSAL_BUILD@
/* Define if your system generates wrong code for log2 routine. */
#cmakedefine H5_BAD_LOG2_CODE_GENERATED @H5_BAD_LOG2_CODE_GENERATED@
/* Define if the memory buffers being written to disk should be cleared before
writing. */
#cmakedefine H5_CLEAR_MEMORY @H5_CLEAR_MEMORY@
/* Define if your system can handle converting denormalized floating-point
values. */
#cmakedefine H5_CONVERT_DENORMAL_FLOAT @H5_CONVERT_DENORMAL_FLOAT@
/* Define if C++ compiler recognizes offsetof */
#cmakedefine H5_CXX_HAVE_OFFSETOF @H5_CXX_HAVE_OFFSETOF@
/* Define the default virtual file driver to compile */
#cmakedefine H5_DEFAULT_VFD @H5_DEFAULT_VFD@
/* Define if `dev_t' is a scalar */
#cmakedefine H5_DEV_T_IS_SCALAR @H5_DEV_T_IS_SCALAR@
/* Define to dummy `main' function (if any) required to link to the Fortran
libraries. */
#cmakedefine H5_FC_DUMMY_MAIN @H5_FC_DUMMY_MAIN@
/* Define if F77 and FC dummy `main' functions are identical. */
#cmakedefine H5_FC_DUMMY_MAIN_EQ_F77 @H5_FC_DUMMY_MAIN_EQ_F77@
/* Define to a macro mangling the given C identifier (in lower and upper
case), which must not contain underscores, for linking with Fortran. */
#define @H5_FC_FUNC@
/* As FC_FUNC, but for C identifiers containing underscores. */
#define @H5_FC_FUNC_@
/* Define if your system can handle overflow converting floating-point to
integer values. */
#cmakedefine H5_FP_TO_INTEGER_OVERFLOW_WORKS @H5_FP_TO_INTEGER_OVERFLOW_WORKS@
/* Define if your system roundup accurately converting floating-point to
unsigned long long values. */
#cmakedefine H5_FP_TO_ULLONG_ACCURATE @H5_FP_TO_ULLONG_ACCURATE@
/* Define if your system has right maximum convert floating-point to unsigned
long long values. */
#cmakedefine H5_FP_TO_ULLONG_RIGHT_MAXIMUM @H5_FP_TO_ULLONG_RIGHT_MAXIMUM@
/* Define if gettimeofday() populates the tz pointer passed in */
#cmakedefine H5_GETTIMEOFDAY_GIVES_TZ @H5_GETTIMEOFDAY_GIVES_TZ@
/* Define to 1 if you have the `alarm' function. */
#cmakedefine H5_HAVE_ALARM @H5_HAVE_ALARM@
/* Define if the __attribute__(()) extension is present */
#cmakedefine H5_HAVE_ATTRIBUTE @H5_HAVE_ATTRIBUTE@
/* Define to 1 if you have the `BSDgettimeofday' function. */
#cmakedefine H5_HAVE_BSDGETTIMEOFDAY @H5_HAVE_BSDGETTIMEOFDAY@
/* Define if the compiler understands C99 designated initialization of structs
and unions */
#cmakedefine H5_HAVE_C99_DESIGNATED_INITIALIZER @H5_HAVE_C99_DESIGNATED_INITIALIZER@
/* Define if the compiler understands the __func__ keyword */
#cmakedefine H5_HAVE_C99_FUNC @H5_HAVE_C99_FUNC@
/* Define if the function stack tracing code is to be compiled in */
#cmakedefine H5_HAVE_CODESTACK @H5_HAVE_CODESTACK@
/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
*/
#cmakedefine H5_HAVE_DECL_TZNAME @H5_HAVE_DECL_TZNAME@
/* Define to 1 if you have the `difftime' function. */
#cmakedefine H5_HAVE_DIFFTIME @H5_HAVE_DIFFTIME@
/* Define if the direct I/O virtual file driver should be compiled */
#cmakedefine H5_HAVE_DIRECT @H5_HAVE_DIRECT@
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine H5_HAVE_DLFCN_H @H5_HAVE_DLFCN_H@
/* Define to 1 if you have the <dmalloc.h> header file. */
#cmakedefine H5_HAVE_DMALLOC_H @H5_HAVE_DMALLOC_H@
/* Define if library information should be embedded in the executables */
#cmakedefine H5_HAVE_EMBEDDED_LIBINFO @H5_HAVE_EMBEDDED_LIBINFO@
/* Define to 1 if you have the <features.h> header file. */
#cmakedefine H5_HAVE_FEATURES_H @H5_HAVE_FEATURES_H@
/* Define if support for deflate (zlib) filter is enabled */
#cmakedefine H5_HAVE_FILTER_DEFLATE @H5_HAVE_FILTER_DEFLATE@
/* Define if support for Fletcher32 checksum is enabled */
#cmakedefine H5_HAVE_FILTER_FLETCHER32 @H5_HAVE_FILTER_FLETCHER32@
/* Define if support for nbit filter is enabled */
#cmakedefine H5_HAVE_FILTER_NBIT @H5_HAVE_FILTER_NBIT@
/* Define if support for scaleoffset filter is enabled */
#cmakedefine H5_HAVE_FILTER_SCALEOFFSET @H5_HAVE_FILTER_SCALEOFFSET@
/* Define if support for shuffle filter is enabled */
#cmakedefine H5_HAVE_FILTER_SHUFFLE @H5_HAVE_FILTER_SHUFFLE@
/* Define if support for szip filter is enabled */
#cmakedefine H5_HAVE_FILTER_SZIP @H5_HAVE_FILTER_SZIP@
/* Define to 1 if you have the `fork' function. */
#cmakedefine H5_HAVE_FORK @H5_HAVE_FORK@
/* Define to 1 if you have the `frexpf' function. */
#cmakedefine H5_HAVE_FREXPF @H5_HAVE_FREXPF@
/* Define to 1 if you have the `frexpl' function. */
#cmakedefine H5_HAVE_FREXPL @H5_HAVE_FREXPL@
/* Define to 1 if you have the `fseek64' function. */
#cmakedefine H5_HAVE_FSEEK64 @H5_HAVE_FSEEK64@
/* Define to 1 if you have the `fseeko' function. */
#cmakedefine H5_HAVE_FSEEKO @H5_HAVE_FSEEKO@
/* Define to 1 if you have the `fstat64' function. */
#cmakedefine H5_HAVE_FSTAT64 @H5_HAVE_FSTAT64@
/* Define to 1 if you have the `ftello' function. */
#cmakedefine H5_HAVE_FTELLO @H5_HAVE_FTELLO@
/* Define to 1 if you have the `ftruncate64' function. */
#cmakedefine H5_HAVE_FTRUNCATE64 @H5_HAVE_FTRUNCATE64@
/* Define if the compiler understands the __FUNCTION__ keyword */
#cmakedefine H5_HAVE_FUNCTION @H5_HAVE_FUNCTION@
/* Define to 1 if you have the `GetConsoleScreenBufferInfo' function. */
#cmakedefine H5_HAVE_GETCONSOLESCREENBUFFERINFO @H5_HAVE_GETCONSOLESCREENBUFFERINFO@
/* Define to 1 if you have the `gethostname' function. */
#cmakedefine H5_HAVE_GETHOSTNAME @H5_HAVE_GETHOSTNAME@
/* Define to 1 if you have the `getpwuid' function. */
#cmakedefine H5_HAVE_GETPWUID @H5_HAVE_GETPWUID@
/* Define to 1 if you have the `getrusage' function. */
#cmakedefine H5_HAVE_GETRUSAGE @H5_HAVE_GETRUSAGE@
/* Define to 1 if you have the `gettextinfo' function. */
#cmakedefine H5_HAVE_GETTEXTINFO @H5_HAVE_GETTEXTINFO@
/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine H5_HAVE_GETTIMEOFDAY @H5_HAVE_GETTIMEOFDAY@
/* Define to 1 if you have the `gettimeofday' function declared in time.h . */
#cmakedefine H5_HAVE_TIME_GETTIMEOFDAY @H5_HAVE_TIME_GETTIMEOFDAY@
/* Define to 1 if you have the `gettimeofday' function declared in time.h . */
#cmakedefine H5_HAVE_SYS_TIME_GETTIMEOFDAY @H5_HAVE_SYS_TIME_GETTIMEOFDAY@
/* Define to 1 if you have the `get_fpc_csr' function. */
#cmakedefine H5_HAVE_GET_FPC_CSR @H5_HAVE_GET_FPC_CSR@
/* Define if we have GPFS support */
#cmakedefine H5_HAVE_GPFS @H5_HAVE_GPFS@
/* Define to 1 if you have the <gpfs.h> header file. */
#cmakedefine H5_HAVE_GPFS_H @H5_HAVE_GPFS_H@
/* Define if h5dump packed bits feature is enabled */
#cmakedefine H5_HAVE_H5DUMP_PACKED_BITS @H5_HAVE_H5DUMP_PACKED_BITS@
/* Define if library will contain instrumentation to detect correct
optimization operation */
#cmakedefine H5_HAVE_INSTRUMENTED_LIBRARY @H5_HAVE_INSTRUMENTED_LIBRARY@
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine H5_HAVE_INTTYPES_H @H5_HAVE_INTTYPES_H@
/* Define to 1 if you have the `ioctl' function. */
#cmakedefine H5_HAVE_IOCTL @H5_HAVE_IOCTL@
/* Define to 1 if you have the <io.h> header file. */
#cmakedefine H5_HAVE_IO_H @H5_HAVE_IO_H@
/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */
#cmakedefine H5_HAVE_LIBDMALLOC @H5_HAVE_LIBDMALLOC@
/* Define to 1 if you have the `lmpe' library (-llmpe). */
#cmakedefine H5_HAVE_LIBLMPE @H5_HAVE_LIBLMPE@
/* Define to 1 if you have the `m' library (-lm). */
#cmakedefine H5_HAVE_LIBM @H5_HAVE_LIBM@
/* Define to 1 if you have the `mpe' library (-lmpe). */
#cmakedefine H5_HAVE_LIBMPE @H5_HAVE_LIBMPE@
/* Define to 1 if you have the `mpi' library (-lmpi). */
#cmakedefine H5_HAVE_LIBMPI @H5_HAVE_LIBMPI@
/* Define to 1 if you have the `mpich' library (-lmpich). */
#cmakedefine H5_HAVE_LIBMPICH @H5_HAVE_LIBMPICH@
/* Define to 1 if you have the `mpio' library (-lmpio). */
#cmakedefine H5_HAVE_LIBMPIO @H5_HAVE_LIBMPIO@
/* Define to 1 if you have the `nsl' library (-lnsl). */
#cmakedefine H5_HAVE_LIBNSL @H5_HAVE_LIBNSL@
/* Define to 1 if you have the `pthread' library (-lpthread). */
#cmakedefine H5_HAVE_LIBPTHREAD @H5_HAVE_LIBPTHREAD@
/* Define to 1 if you have the `socket' library (-lsocket). */
#cmakedefine H5_HAVE_LIBSOCKET @H5_HAVE_LIBSOCKET@
/* Define to 1 if you have the `sz' library (-lsz). */
#cmakedefine H5_HAVE_LIBSZ @H5_HAVE_LIBSZ@
/* Define to 1 if you have the `z' library (-lz). */
#cmakedefine H5_HAVE_LIBZ @H5_HAVE_LIBZ@
/* Define to 1 if you have the `longjmp' function. */
#cmakedefine H5_HAVE_LONGJMP @H5_HAVE_LONGJMP@
/* Define to 1 if you have the `lseek64' function. */
#cmakedefine H5_HAVE_LSEEK64 @H5_HAVE_LSEEK64@
/* Define to 1 if you have the `lstat' function. */
#cmakedefine H5_HAVE_LSTAT @H5_HAVE_LSTAT@
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine H5_HAVE_MEMORY_H @H5_HAVE_MEMORY_H@
/* Define if we have MPE support */
#cmakedefine H5_HAVE_MPE @H5_HAVE_MPE@
/* Define to 1 if you have the <mpe.h> header file. */
#cmakedefine H5_HAVE_MPE_H @H5_HAVE_MPE_H@
/* Define if MPI_File_get_size works correctly */
#cmakedefine H5_HAVE_MPI_GET_SIZE @H5_HAVE_MPI_GET_SIZE@
/* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */
#cmakedefine H5_HAVE_MPI_MULTI_LANG_Comm @H5_HAVE_MPI_MULTI_LANG_Comm@
/* Define if `MPI_Info_c2f' and `MPI_Info_f2c' exists */
#cmakedefine H5_HAVE_MPI_MULTI_LANG_Info @H5_HAVE_MPI_MULTI_LANG_Info@
/* Define if we have parallel support */
#cmakedefine H5_HAVE_PARALLEL @H5_HAVE_PARALLEL@
/* Define to 1 if you have the <pthread.h> header file. */
#cmakedefine H5_HAVE_PTHREAD_H @H5_HAVE_PTHREAD_H@
/* Define to 1 if you have the `random' function. */
#cmakedefine H5_HAVE_RANDOM @H5_HAVE_RANDOM@
/* Define to 1 if you have the `rand_r' function. */
#cmakedefine H5_HAVE_RAND_R @H5_HAVE_RAND_R@
/* Define to 1 if you have the <setjmp.h> header file. */
#cmakedefine H5_HAVE_SETJMP_H @H5_HAVE_SETJMP_H@
/* Define to 1 if you have the `setsysinfo' function. */
#cmakedefine H5_HAVE_SETSYSINFO @H5_HAVE_SETSYSINFO@
/* Define to 1 if you have the `sigaction' function. */
#cmakedefine H5_HAVE_SIGACTION @H5_HAVE_SIGACTION@
/* Define to 1 if you have the `siglongjmp' function. */
#cmakedefine H5_HAVE_SIGLONGJMP @H5_HAVE_SIGLONGJMP@
/* Define to 1 if you have the `signal' function. */
#cmakedefine H5_HAVE_SIGNAL @H5_HAVE_SIGNAL@
/* Define to 1 if you have the `snprintf' function. */
#cmakedefine H5_HAVE_SNPRINTF @H5_HAVE_SNPRINTF@
/* Define to 1 if you have the `srandom' function. */
#cmakedefine H5_HAVE_SRANDOM @H5_HAVE_SRANDOM@
/* Define to 1 if you have the `stat64' function. */
#cmakedefine H5_HAVE_STAT64 @H5_HAVE_STAT64@
/* Define if `struct stat' has the `st_blocks' field */
#cmakedefine H5_HAVE_STAT_ST_BLOCKS @H5_HAVE_STAT_ST_BLOCKS@
/* Define to 1 if you have the <stddef.h> header file. */
#cmakedefine H5_HAVE_STDDEF_H @H5_HAVE_STDDEF_H@
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine H5_HAVE_STDINT_H @H5_HAVE_STDINT_H@
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine H5_HAVE_STDLIB_H @H5_HAVE_STDLIB_H@
/* Define to 1 if you have the `strdup' function. */
#cmakedefine H5_HAVE_STRDUP @H5_HAVE_STRDUP@
/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine H5_HAVE_STRINGS_H @H5_HAVE_STRINGS_H@
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine H5_HAVE_STRING_H @H5_HAVE_STRING_H@
/* Define if `struct text_info' is defined */
#cmakedefine H5_HAVE_STRUCT_TEXT_INFO @H5_HAVE_STRUCT_TEXT_INFO@
/* Define if `struct timezone' is defined */
#cmakedefine H5_HAVE_STRUCT_TIMEZONE @H5_HAVE_STRUCT_TIMEZONE@
/* Define to 1 if `struct tm' is a member of `tm_zone'. */
#cmakedefine H5_HAVE_STRUCT_TM_TM_ZONE @H5_HAVE_STRUCT_TM_TM_ZONE@
/* Define if `struct videoconfig' is defined */
#cmakedefine H5_HAVE_STRUCT_VIDEOCONFIG @H5_HAVE_STRUCT_VIDEOCONFIG@
/* Define to 1 if you have the `symlink' function. */
#cmakedefine H5_HAVE_SYMLINK @H5_HAVE_SYMLINK@
/* Define to 1 if you have the `system' function. */
#cmakedefine H5_HAVE_SYSTEM @H5_HAVE_SYSTEM@
/* Define to 1 if you have the <sys/fpu.h> header file. */
#cmakedefine H5_HAVE_SYS_FPU_H @H5_HAVE_SYS_FPU_H@
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#cmakedefine H5_HAVE_SYS_IOCTL_H @H5_HAVE_SYS_IOCTL_H@
/* Define to 1 if you have the <sys/proc.h> header file. */
#cmakedefine H5_HAVE_SYS_PROC_H @H5_HAVE_SYS_PROC_H@
/* Define to 1 if you have the <sys/resource.h> header file. */
#cmakedefine H5_HAVE_SYS_RESOURCE_H @H5_HAVE_SYS_RESOURCE_H@
/* Define to 1 if you have the <sys/socket.h> header file. */
#cmakedefine H5_HAVE_SYS_SOCKET_H @H5_HAVE_SYS_SOCKET_H@
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine H5_HAVE_SYS_STAT_H @H5_HAVE_SYS_STAT_H@
/* Define to 1 if you have the <sys/sysinfo.h> header file. */
#cmakedefine H5_HAVE_SYS_SYSINFO_H @H5_HAVE_SYS_SYSINFO_H@
/* Define to 1 if you have the <sys/timeb.h> header file. */
#cmakedefine H5_HAVE_SYS_TIMEB_H @H5_HAVE_SYS_TIMEB_H@
/* Define to 1 if you have the <time.h> header file. */
#cmakedefine H5_HAVE_TIME_H @H5_HAVE_TIME_H@
/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine H5_HAVE_SYS_TIME_H @H5_HAVE_SYS_TIME_H@
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine H5_HAVE_SYS_TYPES_H @H5_HAVE_SYS_TYPES_H@
/* Define to 1 if you have the <szlib.h> header file. */
#cmakedefine H5_HAVE_SZLIB_H @H5_HAVE_SZLIB_H@
/* Define if we have thread safe support */
#cmakedefine H5_HAVE_THREADSAFE @H5_HAVE_THREADSAFE@
/* Define if `timezone' is a global variable */
#cmakedefine H5_HAVE_TIMEZONE @H5_HAVE_TIMEZONE@
/* Define if the ioctl TIOCGETD is defined */
#cmakedefine H5_HAVE_TIOCGETD @H5_HAVE_TIOCGETD@
/* Define if the ioctl TIOGWINSZ is defined */
#cmakedefine H5_HAVE_TIOCGWINSZ @H5_HAVE_TIOCGWINSZ@
/* Define to 1 if you have the `tmpfile' function. */
#cmakedefine H5_HAVE_TMPFILE @H5_HAVE_TMPFILE@
/* Define if `tm_gmtoff' is a member of `struct tm' */
#cmakedefine H5_HAVE_TM_GMTOFF @H5_HAVE_TM_GMTOFF@
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
`HAVE_STRUCT_TM_TM_ZONE' instead. */
#cmakedefine H5_HAVE_TM_ZONE @H5_HAVE_TM_ZONE@
/* Define to 1 if you don't have `tm_zone' but do have the external array
`tzname'. */
#cmakedefine H5_HAVE_TZNAME @H5_HAVE_TZNAME@
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine H5_HAVE_UNISTD_H @H5_HAVE_UNISTD_H@
/* Define to 1 if you have the `vasprintf' function. */
#cmakedefine H5_HAVE_VASPRINTF @H5_HAVE_VASPRINTF@
/* Define to 1 if you have the `vsnprintf' function. */
#cmakedefine H5_HAVE_VSNPRINTF @H5_HAVE_VSNPRINTF@
/* Define to 1 if you have the `waitpid' function. */
#cmakedefine H5_HAVE_WAITPID @H5_HAVE_WAITPID@
/* Define if your system has window style path name. */
#cmakedefine H5_HAVE_WINDOW_PATH @H5_HAVE_WINDOW_PATH@
/* Define to 1 if you have the <winsock.h> header file. */
#cmakedefine H5_HAVE_WINSOCK_H @H5_HAVE_WINSOCK_H@
/* Define to 1 if you have the <zlib.h> header file. */
#cmakedefine H5_HAVE_ZLIB_H @H5_HAVE_ZLIB_H@
/* Define to 1 if you have the `_getvideoconfig' function. */
#cmakedefine H5_HAVE__GETVIDEOCONFIG @H5_HAVE__GETVIDEOCONFIG@
/* Define to 1 if you have the `_scrsize' function. */
#cmakedefine H5_HAVE__SCRSIZE @H5_HAVE__SCRSIZE@
/* Define if `__tm_gmtoff' is a member of `struct tm' */
#cmakedefine H5_HAVE___TM_GMTOFF @H5_HAVE___TM_GMTOFF@
/* Define if your system can't handle converting floating-point values to long
long. */
#cmakedefine H5_HW_FP_TO_LLONG_NOT_WORKS @H5_HW_FP_TO_LLONG_NOT_WORKS@
/* Define if HDF5's high-level library headers should be included in hdf5.h */
#cmakedefine H5_INCLUDE_HL @H5_INCLUDE_HL@
/* Define if your system can accurately convert from integers to long double
values. */
#cmakedefine H5_INTEGER_TO_LDOUBLE_ACCURATE @H5_INTEGER_TO_LDOUBLE_ACCURATE@
/* Define if your system can convert long double to integers accurately. */
#cmakedefine H5_LDOUBLE_TO_INTEGER_ACCURATE @H5_LDOUBLE_TO_INTEGER_ACCURATE@
/* Define if your system can convert from long double to integer values. */
#cmakedefine H5_LDOUBLE_TO_INTEGER_WORKS @H5_LDOUBLE_TO_INTEGER_WORKS@
/* Define if your system can convert long double to (unsigned) long long
values correctly. */
#cmakedefine H5_LDOUBLE_TO_LLONG_ACCURATE @H5_LDOUBLE_TO_LLONG_ACCURATE@
/* Define if your system can convert long double to unsigned int values
correctly. */
#cmakedefine H5_LDOUBLE_TO_UINT_ACCURATE @H5_LDOUBLE_TO_UINT_ACCURATE@
/* Define if your system can compile long long to floating-point casts. */
#cmakedefine H5_LLONG_TO_FP_CAST_WORKS @H5_LLONG_TO_FP_CAST_WORKS@
/* Define if your system can convert (unsigned) long long to long double
values correctly. */
#cmakedefine H5_LLONG_TO_LDOUBLE_CORRECT @H5_LLONG_TO_LDOUBLE_CORRECT@
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#cmakedefine H5_LT_OBJDIR @H5_LT_OBJDIR@
/* Define if the metadata trace file code is to be compiled in */
#cmakedefine H5_METADATA_TRACE_FILE @H5_METADATA_TRACE_FILE@
/* Define if your system can handle complicated MPI derived datatype
correctly. */
#cmakedefine H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS @H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS@
/* Define if your system's `MPI_File_set_size' function works for files over
2GB. */
#cmakedefine H5_MPI_FILE_SET_SIZE_BIG @H5_MPI_FILE_SET_SIZE_BIG@
/* Define if your system can handle special collective IO properly. */
#cmakedefine H5_MPI_SPECIAL_COLLECTIVE_IO_WORKS @H5_MPI_SPECIAL_COLLECTIVE_IO_WORKS@
/* Define if we can violate pointer alignment restrictions */
#cmakedefine H5_NO_ALIGNMENT_RESTRICTIONS @H5_NO_ALIGNMENT_RESTRICTIONS@
/* Define if deprecated public API symbols are disabled */
#cmakedefine H5_NO_DEPRECATED_SYMBOLS @H5_NO_DEPRECATED_SYMBOLS@
/* Define if shared writing must be disabled (CodeWarrior only) */
#cmakedefine H5_NO_SHARED_WRITING @H5_NO_SHARED_WRITING@
/* Name of package */
#define H5_PACKAGE "@HDF5_PACKAGE@"
/* Define to the address where bug reports for this package should be sent. */
#define H5_PACKAGE_BUGREPORT "@HDF5_PACKAGE_BUGREPORT@"
/* Define to the full name of this package. */
#define H5_PACKAGE_NAME "@HDF5_PACKAGE_NAME@"
/* Define to the full name and version of this package. */
#define H5_PACKAGE_STRING "@HDF5_PACKAGE_STRING@"
/* Define to the one symbol short name of this package. */
#define H5_PACKAGE_TARNAME "@HDF5_PACKAGE_TARNAME@"
/* Define to the home page for this package. */
#define H5_PACKAGE_URL "@HDF5_PACKAGE_URL@"
/* Define to the version of this package. */
#define H5_PACKAGE_VERSION "@HDF5_PACKAGE_VERSION@"
/* Width for printf() for type `long long' or `__int64', use `ll' */
#cmakedefine H5_PRINTF_LL_WIDTH @H5_PRINTF_LL_WIDTH@
/* The size of `char', as computed by sizeof. */
#define H5_SIZEOF_CHAR @H5_SIZEOF_CHAR@
/* The size of `double', as computed by sizeof. */
#define H5_SIZEOF_DOUBLE @H5_SIZEOF_DOUBLE@
/* The size of `float', as computed by sizeof. */
#define H5_SIZEOF_FLOAT @H5_SIZEOF_FLOAT@
/* The size of `int', as computed by sizeof. */
#define H5_SIZEOF_INT @H5_SIZEOF_INT@
/* The size of `int16_t', as computed by sizeof. */
#define H5_SIZEOF_INT16_T @H5_SIZEOF_INT16_T@
/* The size of `int32_t', as computed by sizeof. */
#define H5_SIZEOF_INT32_T @H5_SIZEOF_INT32_T@
/* The size of `int64_t', as computed by sizeof. */
#define H5_SIZEOF_INT64_T @H5_SIZEOF_INT64_T@
/* The size of `int8_t', as computed by sizeof. */
#define H5_SIZEOF_INT8_T @H5_SIZEOF_INT8_T@
/* The size of `int_fast16_t', as computed by sizeof. */
#define H5_SIZEOF_INT_FAST16_T @H5_SIZEOF_INT_FAST16_T@
/* The size of `int_fast32_t', as computed by sizeof. */
#define H5_SIZEOF_INT_FAST32_T @H5_SIZEOF_INT_FAST32_T@
/* The size of `int_fast64_t', as computed by sizeof. */
#define H5_SIZEOF_INT_FAST64_T @H5_SIZEOF_INT_FAST64_T@
/* The size of `int_fast8_t', as computed by sizeof. */
#define H5_SIZEOF_INT_FAST8_T @H5_SIZEOF_INT_FAST8_T@
/* The size of `int_least16_t', as computed by sizeof. */
#define H5_SIZEOF_INT_LEAST16_T @H5_SIZEOF_INT_LEAST16_T@
/* The size of `int_least32_t', as computed by sizeof. */
#define H5_SIZEOF_INT_LEAST32_T @H5_SIZEOF_INT_LEAST32_T@
/* The size of `int_least64_t', as computed by sizeof. */
#define H5_SIZEOF_INT_LEAST64_T @H5_SIZEOF_INT_LEAST64_T@
/* The size of `int_least8_t', as computed by sizeof. */
#define H5_SIZEOF_INT_LEAST8_T @H5_SIZEOF_INT_LEAST8_T@
#if !defined(__APPLE__)
/* The size of `size_t', as computed by sizeof. */
#define H5_SIZEOF_SIZE_T @H5_SIZEOF_SIZE_T@
/* The size of `ssize_t', as computed by sizeof. */
#define H5_SIZEOF_SSIZE_T @H5_SIZEOF_SSIZE_T@
/* The size of `long', as computed by sizeof. */
#define H5_SIZEOF_LONG @H5_SIZEOF_LONG@
#else
# if defined(__LP64__) && __LP64__
#define H5_SIZEOF_LONG 8
#define H5_SIZEOF_SIZE_T 8
#define H5_SIZEOF_SSIZE_T 8
# else
#define H5_SIZEOF_LONG 4
#define H5_SIZEOF_SIZE_T 4
#define H5_SIZEOF_SSIZE_T 4
# endif
#endif
/* The size of `long double', as computed by sizeof. */
#define H5_SIZEOF_LONG_DOUBLE @H5_SIZEOF_LONG_DOUBLE@
/* Define size of long long and/or __int64 bit integer type only if the type
exists. */
#if !defined(__APPLE__)
#define H5_SIZEOF_LONG_LONG @H5_SIZEOF_LONG_LONG@
#else
#define H5_SIZEOF_LONG_LONG 8
#endif
/* The size of `off64_t', as computed by sizeof. */
#define H5_SIZEOF_OFF64_T @H5_SIZEOF_OFF64_T@
/* The size of `off_t', as computed by sizeof. */
#define H5_SIZEOF_OFF_T @H5_SIZEOF_OFF_T@
/* The size of `short', as computed by sizeof. */
#define H5_SIZEOF_SHORT @H5_SIZEOF_SHORT@
/* The size of `uint16_t', as computed by sizeof. */
#define H5_SIZEOF_UINT16_T @H5_SIZEOF_UINT16_T@
/* The size of `uint32_t', as computed by sizeof. */
#define H5_SIZEOF_UINT32_T @H5_SIZEOF_UINT32_T@
/* The size of `uint64_t', as computed by sizeof. */
#define H5_SIZEOF_UINT64_T @H5_SIZEOF_UINT64_T@
/* The size of `uint8_t', as computed by sizeof. */
#define H5_SIZEOF_UINT8_T @H5_SIZEOF_UINT8_T@
/* The size of `uint_fast16_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_FAST16_T @H5_SIZEOF_UINT_FAST16_T@
/* The size of `uint_fast32_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_FAST32_T @H5_SIZEOF_UINT_FAST32_T@
/* The size of `uint_fast64_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_FAST64_T @H5_SIZEOF_UINT_FAST64_T@
/* The size of `uint_fast8_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_FAST8_T @H5_SIZEOF_UINT_FAST8_T@
/* The size of `uint_least16_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_LEAST16_T @H5_SIZEOF_UINT_LEAST16_T@
/* The size of `uint_least32_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_LEAST32_T @H5_SIZEOF_UINT_LEAST32_T@
/* The size of `uint_least64_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_LEAST64_T @H5_SIZEOF_UINT_LEAST64_T@
/* The size of `uint_least8_t', as computed by sizeof. */
#define H5_SIZEOF_UINT_LEAST8_T @H5_SIZEOF_UINT_LEAST8_T@
/* The size of `unsigned', as computed by sizeof. */
#define H5_SIZEOF_UNSIGNED @H5_SIZEOF_UNSIGNED@
/* The size of `__int64', as computed by sizeof. */
#define H5_SIZEOF___INT64 @H5_SIZEOF___INT64@
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine H5_STDC_HEADERS @H5_STDC_HEADERS@
/* Define if strict file format checks are enabled */
#cmakedefine H5_STRICT_FORMAT_CHECKS @H5_STRICT_FORMAT_CHECKS@
/* Define if your system supports pthread_attr_setscope(&attribute,
PTHREAD_SCOPE_SYSTEM) call. */
#cmakedefine H5_SYSTEM_SCOPE_THREADS @H5_SYSTEM_SCOPE_THREADS@
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#cmakedefine H5_TIME_WITH_SYS_TIME @H5_TIME_WITH_SYS_TIME@
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#cmakedefine H5_TM_IN_SYS_TIME @H5_TM_IN_SYS_TIME@
/* Define if your system can compile unsigned long long to floating-point
casts. */
#cmakedefine H5_ULLONG_TO_FP_CAST_WORKS @H5_ULLONG_TO_FP_CAST_WORKS@
/* Define if your system can convert unsigned long long to long double with
correct precision. */
#cmakedefine H5_ULLONG_TO_LDOUBLE_PRECISION @H5_ULLONG_TO_LDOUBLE_PRECISION@
/* Define if your system accurately converting unsigned long to float values.
*/
#cmakedefine H5_ULONG_TO_FLOAT_ACCURATE @H5_ULONG_TO_FLOAT_ACCURATE@
/* Define if your system can accurately convert unsigned (long) long values to
floating-point values. */
#cmakedefine H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE @H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE@
/* Define using v1.6 public API symbols by default */
#cmakedefine H5_USE_16_API_DEFAULT @H5_USE_16_API_DEFAULT@
/* Define if a memory checking tool will be used on the library, to cause
library to be very picky about memory operations and also disable the
internal free list manager code. */
#cmakedefine H5_USING_MEMCHECKER @H5_USING_MEMCHECKER@
/* Version number of package */
#define VERSION "@HDF5_PACKAGE_VERSION@"
/* Define if vsnprintf() returns the correct value for formatted strings that
don't fit into size allowed */
#cmakedefine H5_VSNPRINTF_WORKS @H5_VSNPRINTF_WORKS@
/* Data accuracy is prefered to speed during data conversions */
#cmakedefine H5_WANT_DATA_ACCURACY @H5_WANT_DATA_ACCURACY@
/* Check exception handling functions during data conversions */
#cmakedefine H5_WANT_DCONV_EXCEPTION @H5_WANT_DCONV_EXCEPTION@
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if !defined(__APPLE__)
# ifndef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
# endif
#else
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#endif
/* Define to empty if `const' does not conform to ANSI C. */
#cmakedefine H5_const
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#cmakedefine H5_inline @H5_inline@
#endif
/* Define to `long int' if <sys/types.h> does not define. */
#cmakedefine H5_off_t
/* Define to `unsigned long' if <sys/types.h> does not define. */
#cmakedefine H5_size_t
/* Define to `long' if <sys/types.h> does not define. */
#cmakedefine H5_ssize_t
#if defined(__cplusplus) && defined(inline)
#undef inline
#endif
#endif

View File

@@ -0,0 +1,32 @@
#
# HDF5 Config file for CMake
#
SET(HDF5_INCLUDE_DIRS "@HDF5_INCLUDE_DIRECTORIES@i" )
SET(HDF5_LIBRARIES "@HDF5_LIBRARIES@" )
SET(HDF5_LINK_DIRECTORIES "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@" )
# Names for hdf5 library
SET(HDF5_LIB_NAME "@HDF5_LIB_NAME@")
SET(HDF5_LIB_NAME_RELEASE "@HDF5_LIB_NAME_RELEASE@")
SET(HDF5_LIB_NAME_DEBUG "@HDF5_LIB_NAME_DEBUG@")
# Names for hdf5_hl library
SET(HDF5_HL_LIB_NAME "@HDF5_HL_LIB_NAME@")
SET(HDF5_HL_LIB_NAME_RELEASE "@HDF5_HL_LIB_NAME_RELEASE@")
SET(HDF5_HL_LIB_NAME_DEBUG "@HDF5_HL_LIB_NAME_DEBUG@")
# Names for hdf5_cpp library
SET(HDF5_CPP_LIB_NAME "@HDF5_CPP_LIB_NAME@")
SET(HDF5_CPP_LIB_NAME_RELEASE "@HDF5_CPP_LIB_NAME_RELEASE@")
SET(HDF5_CPP_LIB_NAME_DEBUG "@HDF5_CPP_LIB_NAME_DEBUG@")
# Names for hdf5_test library
SET(HDF5_TEST_LIB_NAME "@HDF5_TEST_LIB_NAME@")
SET(HDF5_TEST_LIB_NAME_RELEASE "@HDF5_TEST_LIB_NAME_RELEASE@")
SET(HDF5_TEST_LIB_NAME_DEBUG "@HDF5_TEST_LIB_NAME_DEBUG@")
# Names for hdf5_test library
SET(HDF5_TOOLS_LIB_NAME "@HDF5_TOOLS_LIB_NAME@")
SET(HDF5_TOOLS_LIB_NAME_RELEASE "@HDF5_TOOLS_LIB_NAME_RELEASE@")
SET(HDF5_TOOLS_LIB_NAME_DEBUG "@HDF5_TOOLS_LIB_NAME_DEBUG@")

122
Resources/HDF5Macros.cmake Normal file
View File

@@ -0,0 +1,122 @@
#-------------------------------------------------------------------------------
MACRO (SET_GLOBAL_VARIABLE name value)
SET (${name} ${value} CACHE INTERNAL "Used to pass variables between directories" FORCE)
ENDMACRO (SET_GLOBAL_VARIABLE)
#-------------------------------------------------------------------------------
MACRO (IDE_GENERATED_PROPERTIES SOURCE_PATH HEADERS SOURCES)
#set(source_group_path "Source/AIM/${NAME}")
STRING (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH})
source_group(${source_group_path} FILES ${HEADERS} ${SOURCES})
#-- The following is needed if we ever start to use OS X Frameworks but only
#-- works on CMake 2.6 and greater
#SET_PROPERTY (SOURCE ${HEADERS}
# PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
#)
ENDMACRO (IDE_GENERATED_PROPERTIES)
#-------------------------------------------------------------------------------
MACRO (IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES)
# INSTALL (FILES ${HEADERS}
# DESTINATION include/R3D/${NAME}
# COMPONENT Headers
# )
STRING (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH} )
source_group (${source_group_path} FILES ${HEADERS} ${SOURCES})
#-- The following is needed if we ever start to use OS X Frameworks but only
#-- works on CMake 2.6 and greater
#SET_PROPERTY (SOURCE ${HEADERS}
# PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
#)
ENDMACRO (IDE_SOURCE_PROPERTIES)
#-------------------------------------------------------------------------------
MACRO (H5_NAMING target)
IF (WIN32 AND NOT MINGW)
IF (BUILD_SHARED_LIBS)
IF (H5_LEGACY_NAMING)
SET_TARGET_PROPERTIES (${target} PROPERTIES OUTPUT_NAME "dll")
SET_TARGET_PROPERTIES (${target} PROPERTIES PREFIX "${target}")
ELSE (H5_LEGACY_NAMING)
SET_TARGET_PROPERTIES (${target} PROPERTIES OUTPUT_NAME "${target}dll")
ENDIF (H5_LEGACY_NAMING)
ENDIF (BUILD_SHARED_LIBS)
ENDIF (WIN32 AND NOT MINGW)
ENDMACRO (H5_NAMING)
#-------------------------------------------------------------------------------
MACRO (H5_SET_LIB_OPTIONS libtarget libname libtype)
# message (STATUS "${libname} libtype: ${libtype}")
IF (${libtype} MATCHES "SHARED")
IF (WIN32 AND NOT MINGW)
IF (H5_LEGACY_NAMING)
SET (LIB_RELEASE_NAME "${libname}dll")
SET (LIB_DEBUG_NAME "${libname}ddll")
ELSE (H5_LEGACY_NAMING)
SET (LIB_RELEASE_NAME "${libname}")
SET (LIB_DEBUG_NAME "${libname}_D")
ENDIF (H5_LEGACY_NAMING)
ELSE (WIN32 AND NOT MINGW)
SET (LIB_RELEASE_NAME "${libname}")
SET (LIB_DEBUG_NAME "${libname}_debug")
ENDIF (WIN32 AND NOT MINGW)
ELSE (${libtype} MATCHES "SHARED")
IF (WIN32 AND NOT MINGW)
IF (H5_LEGACY_NAMING)
SET (LIB_RELEASE_NAME "${libname}")
SET (LIB_DEBUG_NAME "${libname}d")
ELSE (H5_LEGACY_NAMING)
SET (LIB_RELEASE_NAME "lib${libname}")
SET (LIB_DEBUG_NAME "lib${libname}_D")
ENDIF (H5_LEGACY_NAMING)
ELSE (WIN32 AND NOT MINGW)
SET (LIB_RELEASE_NAME "lib${libname}")
SET (LIB_DEBUG_NAME "lib${libname}_debug")
ENDIF (WIN32 AND NOT MINGW)
ENDIF (${libtype} MATCHES "SHARED")
SET_TARGET_PROPERTIES (${libtarget}
PROPERTIES
DEBUG_OUTPUT_NAME ${LIB_DEBUG_NAME}
RELEASE_OUTPUT_NAME ${LIB_RELEASE_NAME}
MINSIZEREL_OUTPUT_NAME ${LIB_RELEASE_NAME}
RELWITHDEBINFO_OUTPUT_NAME ${LIB_RELEASE_NAME}
)
#----- Use MSVC Naming conventions for Shared Libraries
IF (MINGW AND BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES (${libtarget}
PROPERTIES
IMPORT_SUFFIX ".lib"
IMPORT_PREFIX ""
PREFIX ""
)
ENDIF (MINGW AND BUILD_SHARED_LIBS)
IF (BUILD_SHARED_LIBS)
IF (WIN32)
SET (LIBHDF_VERSION HDF5_PACKAGE_VERSION_MAJOR)
ELSE (WIN32)
SET (LIBHDF_VERSION ${HDF5_PACKAGE_VERSION})
ENDIF (WIN32)
SET_TARGET_PROPERTIES (${libtarget} PROPERTIES VERSION ${LIBHDF_VERSION})
SET_TARGET_PROPERTIES (${libtarget} PROPERTIES SOVERSION ${LIBHDF_VERSION})
ENDIF (BUILD_SHARED_LIBS)
#-- Apple Specific install_name for libraries
IF (APPLE)
OPTION (HDF5_BUILD_WITH_INSTALL_NAME "Build with library install_name set to the installation path" OFF)
IF (HDF5_BUILD_WITH_INSTALL_NAME)
SET_TARGET_PROPERTIES(${libtarget} PROPERTIES
LINK_FLAGS "-current_version ${HDF5_PACKAGE_VERSION} -compatibility_version ${HDF5_PACKAGE_VERSION}"
INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib"
BUILD_WITH_INSTALL_RPATH ${HDF5_BUILD_WITH_INSTALL_NAME}
)
ENDIF (HDF5_BUILD_WITH_INSTALL_NAME)
ENDIF (APPLE)
ENDMACRO (H5_SET_LIB_OPTIONS)

366
Resources/HDF5Tests.c Normal file
View File

@@ -0,0 +1,366 @@
#define SIMPLE_TEST(x) int main(){ x; return 0; }
#ifdef CXX_HAVE_OFFSETOF
#include <stdio.h>
#include <stddef.h>
#ifdef FC_DUMMY_MAIN
#ifndef FC_DUMMY_MAIN_EQ_F77
# ifdef __cplusplus
extern "C"
# endif
int FC_DUMMY_MAIN()
{ return 1;}
#endif
#endif
int
main ()
{
struct index_st
{
unsigned char type;
unsigned char num;
unsigned int len;
};
typedef struct index_st index_t;
int x,y;
x = offsetof(struct index_st, len);
y = offsetof(index_t, num)
;
return 0;
}
#endif
#ifdef HAVE_C99_DESIGNATED_INITIALIZER
#ifdef FC_DUMMY_MAIN
#ifndef FC_DUMMY_MAIN_EQ_F77
# ifdef __cplusplus
extern "C"
# endif
int FC_DUMMY_MAIN()
{ return 1;}
#endif
#endif
int
main ()
{
typedef struct
{
int x;
union
{
int i;
double d;
}u;
}di_struct_t;
di_struct_t x =
{ 0,
{ .d = 0.0}};
;
return 0;
}
#endif
#ifdef HAVE_C99_FUNC
#ifdef FC_DUMMY_MAIN
#ifndef FC_DUMMY_MAIN_EQ_F77
# ifdef __cplusplus
extern "C"
# endif
int FC_DUMMY_MAIN() { return 1; }
#endif
#endif
int
main ()
{
const char *fname = __func__;
;
return 0;
}
#endif
#ifdef VSNPRINTF_WORKS
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
int test_vsnprintf(const char *fmt,...)
{
va_list ap;
char *s = malloc(16);
int ret;
va_start(ap, fmt);
ret=vsnprintf(s,16,"%s",ap);
va_end(ap);
return(ret!=42 ? 1 : 0);
}
int main(void)
{
exit(test_vsnprintf("%s","A string that is longer than 16 characters"));
}
#endif
#ifdef TIME_WITH_SYS_TIME
/* Time with sys/time test */
#include <sys/types.h>
#include <sys/time.h>
#include <time.h>
int
main ()
{
if ((struct tm *) 0)
return 0;
;
return 0;
}
#endif
#ifdef STDC_HEADERS
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <float.h>
int main() { return 0; }
#endif /* STDC_HEADERS */
#ifdef HAVE_TM_ZONE
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <time.h>
SIMPLE_TEST(struct tm tm; tm.tm_zone);
#endif /* HAVE_TM_ZONE */
#ifdef HAVE_STRUCT_TM_TM_ZONE
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <time.h>
SIMPLE_TEST(struct tm tm; tm.tm_zone);
#endif /* HAVE_STRUCT_TM_TM_ZONE */
#ifdef HAVE_ATTRIBUTE
#if 0
static void test int __attribute((unused)) var)
{
int __attribute__((unused)) x = var;
}
int main(void)
{
test(19);
}
#else
int
main ()
{
int __attribute__((unused)) x
;
return 0;
}
#endif
#endif /* HAVE_ATTRIBUTE */
#ifdef HAVE_FUNCTION
#ifdef FC_DUMMY_MAIN
#ifndef FC_DUMMY_MAIN_EQ_F77
# ifdef __cplusplus
extern "C"
# endif
int FC_DUMMY_MAIN() { return 1; }
#endif
#endif
int
main ()
{
(void)__FUNCTION__
;
return 0;
}
#endif /* HAVE_FUNCTION */
#ifdef HAVE_TM_GMTOFF
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <time.h>
SIMPLE_TEST(struct tm tm; tm.tm_gmtoff=0);
#endif /* HAVE_TM_GMTOFF */
#ifdef HAVE_TIMEZONE
#include <sys/time.h>
#include <time.h>
SIMPLE_TEST(timezone=0);
#endif /* HAVE_TIMEZONE */
#ifdef HAVE_STRUCT_TIMEZONE
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <time.h>
SIMPLE_TEST(struct timezone tz; tz.tz_minuteswest=0);
#endif /* HAVE_STRUCT_TIMEZONE */
#ifdef HAVE_STAT_ST_BLOCKS
#include <sys/stat.h>
SIMPLE_TEST(struct stat sb; sb.st_blocks=0);
#endif /* HAVE_STAT_ST_BLOCKS */
#ifdef PRINTF_LL_WIDTH
#ifdef HAVE_LONG_LONG
# define LL_TYPE long long
#else /* HAVE_LONG_LONG */
# define LL_TYPE __int64
#endif /* HAVE_LONG_LONG */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *llwidthArgs[] = { "l64", "l", "L", "q", "ll", NULL };
char *s = malloc(128);
char **currentArg = NULL;
LL_TYPE x = (LL_TYPE)1048576 * (LL_TYPE)1048576;
for (currentArg = llwidthArgs; *currentArg != NULL; currentArg++)
{
char formatString[64];
sprintf(formatString, "%%%sd", *currentArg);
sprintf(s, formatString, x);
if (strcmp(s, "1099511627776") == 0)
{
printf("PRINTF_LL_WIDTH=[%s]\n", *currentArg);
exit(0);
}
}
exit(1);
}
#endif /* PRINTF_LL_WIDTH */
#ifdef SYSTEM_SCOPE_THREADS
#include <stdlib.h>
#include <pthread.h>
int main(void)
{
pthread_attr_t attribute;
int ret;
pthread_attr_init(&attribute);
ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM);
exit(ret==0 ? 0 : 1);
}
#endif /* SYSTEM_SCOPE_THREADS */
#ifdef HAVE_SOCKLEN_T
#include <stdio.h>
#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
SIMPLE_TEST(socklen_t foo);
#endif /* HAVE_SOCKLEN_T */
#ifdef DEV_T_IS_SCALAR
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
int main ()
{
dev_t d1, d2;
if(d1==d2)
return 0;
return 1;
}
#endif /* DEV_T_IS_SCALAR */
#if defined( INLINE_TEST_inline ) || defined( INLINE_TEST___inline__ ) || defined( INLINE_TEST___inline )
#ifndef __cplusplus
typedef int foo_t;
static INLINE_TEST_INLINE foo_t static_foo () { return 0; }
INLINE_TEST_INLINE foo_t foo () {return 0; }
int main() { return 0; }
#endif
#endif /* INLINE_TEST */
#ifdef HAVE_OFF64_T
#include <sys/types.h>
int main()
{
off64_t n = 0;
return (int)n;
}
#endif
#ifdef GETTIMEOFDAY_GIVES_TZ
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <time.h>
int main(void)
{
struct timeval tv;
struct timezone tz;
tz.tz_minuteswest = 7777; /* Initialize to an unreasonable number */
tz.tz_dsttime = 7;
gettimeofday(&tv, &tz);
/* Check whether the function returned any value at all */
if(tz.tz_minuteswest == 7777 && tz.tz_dsttime == 7)
exit(1);
else exit (0);
}
#endif

1
Resources/hdf5_zlib.h.in Normal file
View File

@@ -0,0 +1 @@
#include <@H5_ZLIB_HEADER@>

View File

@@ -0,0 +1,68 @@
SUMMARY OF THE HDF5 CONFIGURATION
=================================
General Information:
-------------------
HDF5 Version: @H5_VERSION@
Configured on: @CONFIG_DATE@
Configured by: @CONFIG_USER@
Configure mode: @CONFIG_MODE@
Host system: @host_cpu@-@host_vendor@-@host_os@
Uname information: @UNAME_INFO@
Byte sex: @BYTESEX@
Libraries: @STATIC_SHARED@
Installation point: @prefix@
Compiling Options:
------------------
Compilation Mode: @CONFIG_MODE@
C Compiler: @CC_VERSION@
CFLAGS: @CFLAGS@
H5_CFLAGS: @H5_CFLAGS@
AM_CFLAGS: @AM_CFLAGS@
CPPFLAGS: @CPPFLAGS@
H5_CPPFLAGS: @H5_CPPFLAGS@
AM_CPPFLAGS: @AM_CPPFLAGS@
Shared Libraries: @enable_shared@
Static Libraries: @enable_static@
Statically Linked Executables: @STATIC_EXEC@
LDFLAGS: @LDFLAGS@
AM_LDFLAGS: @AM_LDFLAGS@
Extra libraries: @LIBS@
Archiver: @AR@
Ranlib: @RANLIB@
Debugged Packages: @DEBUG_PKG@
API Tracing: @TRACE_API@
Languages:
----------
Fortran: @HDF_FORTRAN@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ Fortran Compiler: @FC@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ Fortran Flags: @FCFLAGS@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ H5 Fortran Flags: @H5_FCFLAGS@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ AM Fortran Flags: @AM_FCFLAGS@
C++: @HDF_CXX@
@BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler: @CXX@
@BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags: @CXXFLAGS@
@BUILD_CXX_CONDITIONAL_TRUE@ H5 C++ Flags: @H5_CXXFLAGS@
@BUILD_CXX_CONDITIONAL_TRUE@ AM C++ Flags: @AM_CXXFLAGS@
Features:
---------
Parallel HDF5: @PARALLEL@
High Level library: @HDF5_HL@
Threadsafety: @THREADSAFE@
Default API Mapping: @DEFAULT_API_VERSION@
With Deprecated Public Symbols: @DEPRECATED_SYMBOLS@
I/O filters (external): @EXTERNAL_FILTERS@
I/O filters (internal): @FILTERS@
MPE: @MPE@
Direct VFD: @DIRECT_VFD@
dmalloc: @HAVE_DMALLOC@
Clear file buffers before write: @CLEARFILEBUF@
Using memory checker: @USINGMEMCHECKER@
Function Stack Tracing: @CODESTACK@
GPFS: @GPFS@
Strict File Format Checks: @STRICT_FORMAT_CHECKS@
Optimization Instrumentation: @INSTRUMENT@
Linux Large File Support (LFS): @LINUX_LFS@

82
Resources/runTest.cmake Normal file
View File

@@ -0,0 +1,82 @@
# runTest.cmake executes a command and captures the output in a file. File is then compared
# against a reference file. Exit status of command can also be compared.
# arguments checking
IF (NOT TEST_PROGRAM)
MESSAGE (FATAL_ERROR "Require TEST_PROGRAM to be defined")
ENDIF (NOT TEST_PROGRAM)
#IF (NOT TEST_ARGS)
# MESSAGE (STATUS "Require TEST_ARGS to be defined")
#ENDIF (NOT TEST_ARGS)
IF (NOT TEST_FOLDER)
MESSAGE ( FATAL_ERROR "Require TEST_FOLDER to be defined")
ENDIF (NOT TEST_FOLDER)
IF (NOT TEST_OUTPUT)
MESSAGE (FATAL_ERROR "Require TEST_OUTPUT to be defined")
ENDIF (NOT TEST_OUTPUT)
#IF (NOT TEST_EXPECT)
# MESSAGE (STATUS "Require TEST_EXPECT to be defined")
#ENDIF (NOT TEST_EXPECT)
IF (NOT TEST_REFERENCE)
MESSAGE (FATAL_ERROR "Require TEST_REFERENCE to be defined")
ENDIF (NOT TEST_REFERENCE)
SET (ERROR_APPEND 1)
MESSAGE (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
# run the test program, capture the stdout/stderr and the result var
EXECUTE_PROCESS (
COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
WORKING_DIRECTORY ${TEST_FOLDER}
RESULT_VARIABLE TEST_RESULT
OUTPUT_FILE ${TEST_OUTPUT}
ERROR_FILE ${TEST_OUTPUT}.err
OUTPUT_VARIABLE TEST_ERROR
ERROR_VARIABLE TEST_ERROR
)
MESSAGE (STATUS "COMMAND Result: ${TEST_RESULT}")
IF (ERROR_APPEND)
FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
FILE (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
ENDIF (ERROR_APPEND)
IF (TEST_APPEND)
FILE (APPEND ${TEST_OUTPUT} "${TEST_APPEND} ${TEST_RESULT}\n")
ENDIF (TEST_APPEND)
# if the return value is !=0 bail out
IF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
MESSAGE ( FATAL_ERROR "Failed: Test program ${TEST_PROGRAM} exited != 0.\n${TEST_ERROR}")
ENDIF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
MESSAGE (STATUS "COMMAND Error: ${TEST_ERROR}")
IF (TEST_MASK)
FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
#STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified: XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage: <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}")
FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
ENDIF (TEST_MASK)
IF (WIN32 AND NOT MINGW)
FILE (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
FILE (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
ENDIF (WIN32 AND NOT MINGW)
# now compare the output with the reference
EXECUTE_PROCESS (
COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_OUTPUT} ${TEST_REFERENCE}
RESULT_VARIABLE TEST_RESULT
)
# again, if return value is !=0 scream and shout
IF (TEST_RESULT)
MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not match ${TEST_REFERENCE}")
ENDIF (TEST_RESULT)
# everything went fine...
MESSAGE ("Passed: The output of ${TEST_PROGRAM} matches ${TEST_REFERENCE}")

56
Resources/xlatefile.c Normal file
View File

@@ -0,0 +1,56 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define BUFFERSIZE 1024
int main(int argc, char *argv[]) {
FILE *infile = NULL;
FILE *outfile = NULL;
char *buffer = NULL;
char argbuf[8];
unsigned int bytes = 0;
unsigned int idx = 0;
unsigned int lineidx = 0;
unsigned int stripXlines = 3;
if(argc < 3)
exit(1);
if(NULL == (infile = fopen(argv[1], "rb")))
exit(2);
if(NULL == (outfile = fopen(argv[2], "wb+")))
exit(3);
if(argc > 3)
if(argv[3][0] == '-')
if(argv[3][1] == 'l') {
strcpy(argbuf, &argv[3][2]);
stripXlines = atoi(argbuf);
}
buffer = (char*)malloc(BUFFERSIZE);
if(buffer) {
while(!feof(infile)) {
/* read the file into the buffer. */
bytes = fread(buffer, 1, BUFFERSIZE, infile);
if(lineidx < stripXlines) {
for(idx = 0; idx < bytes; idx++) {
if(buffer[idx] == '\n') {
lineidx++;
if(buffer[idx+1] == '\r')
idx++;
}
if(lineidx >= stripXlines) {
fwrite(&buffer[idx+1], 1, bytes-idx-1, outfile);
idx = bytes;
}
}
}
else
fwrite(buffer, 1, bytes, outfile);
}
free(buffer);
}
fclose(outfile);
fclose(infile);
return 0;
}

9409
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

View File

@@ -18,6 +18,41 @@ dnl
dnl -------------------------------------------------------------------------
dnl -------------------------------------------------------------------------
dnl -------------------------------------------------------------------------
dnl _AC_SYS_LARGEFILE_MACRO_VALUE
dnl
dnl The following macro overrides the autoconf macro of the same name
dnl with this custom definition. This macro performs the same checks as
dnl autoconf's native _AC_SYS_LARGEFILE_MACRO_VALUE, but will also set
dnl AM_CPPFLAGS with the appropriate -D defines so additional configure
dnl sizeof checks do not fail.
dnl
# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
# CACHE-VAR,
# DESCRIPTION,
# PROLOGUE, [FUNCTION-BODY])
# ----------------------------------------------------------
m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
[while :; do
m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
[AC_LANG_PROGRAM([$5], [$6])],
[$3=no; break])
m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
[AC_LANG_PROGRAM([@%:@define $1 $2
$5], [$6])],
[$3=$2; break])
$3=unknown
break
done])
case $$3 in #(
no | unknown) ;;
*) AC_DEFINE_UNQUOTED([$1], [$$3], [$4])
AM_CPPFLAGS="-D$1=$$3 $AM_CPPFLAGS";;
esac
rm -rf conftest*[]dnl
])# _AC_SYS_LARGEFILE_MACRO_VALUE
dnl -------------------------------------------------------------------------
dnl AC_F9X_MODS()
dnl

View File

@@ -1,5 +1,5 @@
Copyright by The HDF Group (THG) and
Copyright by The HDF Group and
The Board of Trustees of the University of Illinois.
All rights reserved.

View File

@@ -305,7 +305,7 @@ if [ ! -f config.status ]; then
CONFIGURE="$CONFIGURE $CONFIG_OP $*"
STEP "Configure HDF5..." "$CONFIGURE" "#config"
else
STEP "Confiugre Skipped" "echo Confiugre Skipped" "#config"
STEP "Configure Skipped" "echo Configure Skipped" "#config"
fi
if [ x-$CONFIG_ONLY = x-yes ]; then

View File

@@ -23,7 +23,7 @@
# variable initialization
nerrors=0
AUTOCONFVERSION=2.61
AUTOCONFVERSION=2.65
AUTOCONFVERSIONLEAD='Generated by GNU Autoconf'
CONFIGUREFILES="configure"

View File

@@ -107,6 +107,21 @@ else
fi
fi
# Check for duplicate entries. This can be done at any time, but it may as
# well be sooner so that if something else fails the presence of duplicates
# will already be known.
errcode=0
DUPLICATES=`perl -ne 's/#.*//; next if /^\s*$/; if ($uniq{$_}++) { print $_; }' MANIFEST`
if [ "$DUPLICATES" ]; then
cat 1>&2 <<EOF
These entries appear more than once in the MANIFEST:
$DUPLICATES
Please remove the duplicate lines and try again.
EOF
errcode=1
fi
# Copy the manifest file to get a list of file names.
grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST
@@ -117,6 +132,7 @@ for file in `cat $MANIFEST`; do
fi
done
# Inspect the .svn/entries to figure out what version of svn file entry is
# used.
# The following algorithm is formed via reverse engineering.
@@ -130,7 +146,7 @@ if head -1 $svn_entry_file | grep 'xml version="1.0"' > /dev/null 2>&1;then
elif grep '^file$' $svn_entry_file > /dev/null 2>&1; then
getsvnentries=GETSVNENTRIES_14
else
echo "Unknow svn entries format. Aborted"
echo "Unknown svn entries format. Aborted"
exit 1
fi
@@ -155,5 +171,9 @@ EOF
exit 1
fi
if [ $errcode -ne 0 ]; then
exit 1
fi
test "$verbose" && echo " The MANIFEST is up to date." 1>&2
exit 0

View File

@@ -17,36 +17,37 @@
# Configures, builds, and runs tests in-place; the output files will be placed
# in a directory called gcov_logs.
# Must be invoked from the root hdf5 directory.
# This script has only been tested on heping.
# This script has been tested on kagiso.
CFLAGS="$CFLAGS -ftest-coverage -fprofile-arcs"
export CFLAGS
./configure --enable-debug=all
LDFLAGS="$LDFLAGS -lgcov"
export LDFLAGS
CC=gcc
export CC
./configure
make
make check
mkdir gcov_logs
cd src
for j in *.c
for j in *.h *.c
do
ln -s ../$j .libs/$j
done
cd .libs
for j in *.gcda
do
gcov -b $j >> gcov.log 2>&1
done
for j in *.gcov
do
mv $j ../../gcov_logs
done
mv gcov.log ../../gcov_logs
for j in *.c *.h
do
mv $j ../gcov_logs
rm $j
done
mv gcov.log ../gcov_logs
cd ..
cd ../..

View File

@@ -73,6 +73,8 @@ use strict;
# something like: This is hdf5-1.2.3-pre1 currently under development.
# The AC_INIT macro in configure.in will also change in this case to be
# something like: AC_INIT([HDF5], [hdf5-1.2.3-pre1], [help@hdfgroup.org])
# Version changes are also reflected in the Windows-maintained H5pubconf.h
# file.
#
# Whenever the version changes, this script will increment the revision
# field in HDF5's libtool shared library version in config/lt_vers.am,
@@ -157,9 +159,11 @@ while ($_ = shift) {
die "mutually exclusive options given\n" if $set && $inc;
# Determine file to use as H5public.h, README.txt,
# release_docs/RELEASE.txt, configure.in, and config/lt_vers.am. The
# README.txt, release_docs/RELEASE.txt, configure.in, and
# config/lt_vers.am files are always in the directory above H5public.h
# release_docs/RELEASE.txt, configure.in, windows/src/H5pubconf.h,
# vms/src/h5pubconf.h and config/lt_vers.am.
# The README.txt, release_docs/RELEASE.txt, configure.in,
# vms/src/h5pubconf.h, windows/src/H5pubconf.h, and config/lt_vers.am
# files are always in the directory above H5public.h
unless ($file) {
for (@files) {
($file=$_,last) if -f $_;
@@ -183,6 +187,14 @@ die "unable to read file: $RELEASE\n" unless -r $file;
my $CONFIGURE = $file;
$CONFIGURE =~ s/[^\/]*$/..\/configure.in/;
die "unable to read file: $CONFIGURE\n" unless -r $file;
# windows/src/H5pubconf.h
my $H5PUBCONF = $file;
$H5PUBCONF =~ s/[^\/]*$/..\/windows\/src\/H5pubconf.h/;
die "unable to read file: $H5PUBCONF\n" unless -r $file;
# vms/src/h5pubconf.h
my $H5VMSPUBCONF = $file;
$H5VMSPUBCONF =~ s/[^\/]*$/..\/vms\/src\/h5pubconf.h/;
die "unable to read file: $H5VMSPUBCONF\n" unless -r $file;
# Get the current version number.
open FILE, $file or die "unable to open $file: $!\n";
@@ -230,6 +242,8 @@ if ($set) {
$README = "";
$RELEASE = "";
$CONFIGURE = "";
$H5PUBCONF = "";
$H5VMSPUBCONF = "";
$LT_VERS = "";
@newver = @curver;
}
@@ -341,6 +355,49 @@ sub gen_configure {
# Update the configure.in files and regenerate them
gen_configure("HDF5", $CONFIGURE) if $CONFIGURE;
sub gen_h5pubconf {
my ($name, $pubconf, @vers) = @_;
my $namelc = lc($name);
my $nameuc = uc($name);
open FILE, $pubconf or die "$pubconf: $!\n";
my @contents = <FILE>;
close FILE;
for (my $i = 0; $i < $#contents; ++$i) {
if ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE\s+/) {
$contents[$i] = "\#define H5_PACKAGE \"$namelc\"\n";
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_NAME\s+/) {
$contents[$i] = "\#define H5_PACKAGE_NAME \"$nameuc\"\n";
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_STRING\s+/) {
$contents[$i] = sprintf("\#define H5_PACKAGE_STRING \"$nameuc %d.%d.%d%s\"\n",
@vers[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3]);
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_TARNAME\s+/) {
$contents[$i] = "\#define H5_PACKAGE_TARNAME \"$namelc\"\n";
} elsif ($contents[$i] =~ /\#\s*define\s+H5_PACKAGE_VERSION\s+/) {
$contents[$i] = sprintf("\#define H5_PACKAGE_VERSION \"%d.%d.%d%s\"\n",
@vers[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3]);
} elsif ($contents[$i] =~ /\#\s*define\s+H5_VERSION\s+/) {
$contents[$i] = sprintf("\#define H5_VERSION \"%d.%d.%d%s\"\n",
@vers[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3]);
}
}
open FILE, ">$pubconf" or die "$pubconf: $!\n";
print FILE @contents;
close FILE;
}
# Update the Windows-maintained H5pubconf.h file
gen_h5pubconf("HDF5", $H5PUBCONF, @newver) if $H5PUBCONF;
# Update the VMS-maintained h5pubconf.h file
gen_h5pubconf("HDF5", $H5VMSPUBCONF, @newver) if $H5VMSPUBCONF;
# Print the new version number
if ($verbose) {
printf("version %d.%d release %d%s\n", @newver[0,1,2],

View File

@@ -1,251 +1,520 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright 1991 by the Massachusetts Institute of Technology
# Copyright (C) 1994 X Consortium
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
# put in absolute paths if you don't have them in your path; or use env. vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
stripcmd=
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
src=
dst=
dir_arg=
dst_arg=
-d) dir_arg=true
shift
continue;;
copy_on_change=false
no_target_directory=
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
Options:
--help display this help and exit.
--version display version info and exit.
-s) stripcmd="$stripprog"
shift
continue;;
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
while test $# -ne 0; do
case $1 in
-c) ;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
trap '(exit $?); exit' 1 2 13 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
else
true
fi
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
else
test -d "$dstdir"
dstdir_status=$?
fi
fi
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
obsolete_mkdir_used=false
if [ -f $src -o -d $src ]
then
true
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
mkdir_mode=
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if [ -d $dst ]
then
dst="$dst"/`basename $src`
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writeable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
-*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test -z "$d" && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
true
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
fi
prefix=$prefix/
done
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
pathcomp=''
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
pathcomp="${pathcomp}/"
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

File diff suppressed because it is too large Load Diff

View File

@@ -239,7 +239,7 @@ sub create_init ($) {
print HEADER " "x(0*$indent),"assert(${name}_g==(-1));\n";
print HEADER " "x(0*$indent),"if((msg = H5E_create_msg(cls, H5E_MAJOR, \"${major{$name}}\"))==NULL)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTINIT, FAIL, \"error message initialization failed\")\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg))<0)\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg, FALSE))<0)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, \"can't register error message\")\n";
}
@@ -255,7 +255,7 @@ sub create_init ($) {
print HEADER " "x(0*$indent),"assert(${name}_g==(-1));\n";
print HEADER " "x(0*$indent),"if((msg = H5E_create_msg(cls, H5E_MINOR, \"${minor{$name}}\"))==NULL)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTINIT, FAIL, \"error message initialization failed\")\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg))<0)\n";
print HEADER " "x(0*$indent),"if((${name}_g = H5I_register(H5I_ERROR_MSG, msg, FALSE))<0)\n";
print HEADER " "x(1*$indent),"HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, \"can't register error message\")\n";
}
}

219
bin/make_overflow Executable file
View File

@@ -0,0 +1,219 @@
#!/usr/bin/perl -w
require 5.003;
use strict;
# Global settings
# List of supported C types to generate overflow assignment code for
my @ctypes = ( () );
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the files COPYING and Copyright.html. COPYING can be found at the root
# of the source code distribution tree; Copyright.html can be found at the
# root level of an installed copy of the electronic HDF5 document set and
# is linked from the top-level documents page. It can also be found at
# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
# access to either file, you may request a copy from help@hdfgroup.org.
#
# Create assignment overflow #ifdefs
#
# Programmer: Quincey Koziol
# Creation Date: 2009/04/09
##############################################################################
# Parse a meaningful line (not a comment or blank line) into the appropriate
# data structure
#
sub parse_line ($) {
my $line = shift; # Get the line to parse
# Parse get the type name and whether it's signed or unsigned
#print "line=$line\n";
if($line =~ /.*SIGNED\s*;\s*$/ || $line =~ /.*UNSIGNED\s*;\s*$/) {
my $name; # The name of the type
my $signed; # Whether the type is signed or not
# Get the type's name & signed status
($name, $signed) = ($line =~ /^\s*(\w*)\s*,\s*(\w*)\s*;\s*$/);
#print "name = '$name', signed = '$signed'\n";
# Append the type to the list of C types already parsed
push @ctypes, [$name, $signed];
}
# Unknown keyword
else {
die "unknown keyword: $line";
}
}
##############################################################################
# Print the copyright into an open file
#
sub print_copyright ($) {
my $fh = shift;
print $fh "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n";
print $fh " * Copyright by The HDF Group. *\n";
print $fh " * Copyright by the Board of Trustees of the University of Illinois. *\n";
print $fh " * All rights reserved. *\n";
print $fh " * *\n";
print $fh " * This file is part of HDF5. The full HDF5 copyright notice, including *\n";
print $fh " * terms governing use, modification, and redistribution, is contained in *\n";
print $fh " * the files COPYING and Copyright.html. COPYING can be found at the root *\n";
print $fh " * of the source code distribution tree; Copyright.html can be found at the *\n";
print $fh " * root level of an installed copy of the electronic HDF5 document set and *\n";
print $fh " * is linked from the top-level documents page. It can also be found at *\n";
print $fh " * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *\n";
print $fh " * access to either file, you may request a copy from help\@hdfgroup.org. *\n";
print $fh " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n";
}
##############################################################################
# Print the "do not change this file" warning
#
sub print_warning ($) {
my $fh = shift;
print $fh "\n/* Generated automatically by bin/make_overflow -- do not edit */\n";
print $fh "/* Add new types to H5overflow.txt file */\n\n";
}
##############################################################################
# Print start of ifdef's to prevent a file from being re-included
#
sub print_startprotect ($$) {
my ($fh, $file) = @_;
# Clip off the ".h" part of the name
$file =~ s/(\w*)\.h/$1/;
# Print the ifdef info
print $fh "\n#ifndef _${file}_H\n";
print $fh "#define _${file}_H\n";
}
##############################################################################
# Print assignment overflow macros for each type
#
sub print_typemacros ($) {
my $fh = shift; # File handle for output file
my ($src_aref, $dst_aref); # References for each type's information
# Print the descriptive comment
print $fh "\n\n/* Each type in this file is tested for assignment to the other types,\n";
print $fh " * and range checks are defined for bad assignments at run-time.\n";
print $fh " */\n";
for $src_aref (@ctypes) {
# Print a descriptive comment
print $fh "\n/* Assignment checks for @$src_aref[0] */\n\n";
for $dst_aref (@ctypes) {
if (@$src_aref[0] ne @$dst_aref[0]) {
# Print a descriptive comment
print $fh "/* src: @$src_aref[0], dst: @$dst_aref[0] */\n";
# Print actual type size checks & macro definitions
print $fh "#if H5_SIZEOF_", uc @$src_aref[0], " < H5_SIZEOF_", uc @$dst_aref[0], "\n";
print $fh " #define ASSIGN_", @$src_aref[0], "_TO_", @$dst_aref[0], "(dst, dsttype, src, srctype) \\\n";
if ( @$src_aref[1] eq @$dst_aref[1]) {
print $fh " ASSIGN_TO_LARGER_SIZE_SAME_SIGNED(dst, dsttype, src, srctype)\n";
} elsif ( @$src_aref[1] eq "SIGNED") {
print $fh " ASSIGN_TO_LARGER_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype)\n";
} else {
print $fh " ASSIGN_TO_LARGER_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype)\n";
}
print $fh "#elif H5_SIZEOF_", uc @$src_aref[0], " > H5_SIZEOF_", uc @$dst_aref[0], "\n";
print $fh " #define ASSIGN_", @$src_aref[0], "_TO_", @$dst_aref[0], "(dst, dsttype, src, srctype) \\\n";
print $fh " ASSIGN_TO_SMALLER_SIZE(dst, dsttype, src, srctype)\n";
print $fh "#else /* H5_SIZEOF_", uc @$src_aref[0], " == H5_SIZEOF_", uc @$dst_aref[0], " */\n";
print $fh " #define ASSIGN_", @$src_aref[0], "_TO_", @$dst_aref[0], "(dst, dsttype, src, srctype) \\\n";
if ( @$src_aref[1] eq @$dst_aref[1]) {
print $fh " ASSIGN_TO_SAME_SIZE_SAME_SIGNED(dst, dsttype, src, srctype)\n";
} elsif ( @$src_aref[1] eq "SIGNED") {
print $fh " ASSIGN_TO_SAME_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype)\n";
} else {
print $fh " ASSIGN_TO_SAME_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype)\n";
}
print $fh "#endif /* src: @$src_aref[0] dst: @$dst_aref[0] */\n\n";
}
}
}
}
##############################################################################
# Print end of ifdef's to prevent a file from being re-included
#
sub print_endprotect ($$) {
my ($fh, $file) = @_;
# Clip off the ".h" part of the name
$file =~ s/(\w*)\.h/$1/;
# Print the endif info
print $fh "#endif /* ${file}_H */\n\n";
}
##############################################################################
# Create the generated portion of the public header file
#
sub create_public ($) {
my $prefix = shift; # Get the prefix for the generated file
my $file = "H5overflow.h"; # Name of file to generate
my $name; # Name of function
# Rename previous file
# rename "${prefix}${file}", "${prefix}${file}~" or die "unable to make backup";
# Open new header file
open HEADER, ">${prefix}${file}" or die "unable to modify source";
# Create file contents
print_copyright(*HEADER);
print_warning(*HEADER);
print_startprotect(*HEADER, $file);
print_typemacros(*HEADER);
print_endprotect(*HEADER, $file);
# Close header file
close HEADER;
}
##############################################################################
# Read symbol version file (given as command-line argument) in and process it
# into internal data structures, then create header files.
#
my $file; # Filename of input file
for $file (@ARGV) {
my $prefix; # Local prefix for generated files
my $line; # Line from input file
#print "file = '$file'\n";
($prefix) = ($file =~ /(^.*\/)/);
#print "prefix = '$prefix'\n";
# Read in the entire file
open SOURCE, $file or die "$file: $!\n";
while ( defined ($line=<SOURCE>) ) {
# Skip blank lines and those lines whose first character is a '#'
if(!($line =~ /(^\s*#.*$)|(^\s*$)/)) {
# Construct data structures for later printing
parse_line($line);
}
}
close SOURCE;
# Create header files
print "Generating 'H5overflow.h'\n";
create_public($prefix);
}

View File

@@ -106,6 +106,15 @@ sub print_globalapivers ($) {
print $fh " * API symbol, the individual API version macro takes priority.\n";
print $fh " */\n";
for $curr_idx ($min_sup_idx .. ($max_idx - 1)) {
# Print API version ifdef
print $fh "#if defined(H5_USE_1", ($curr_idx * 2), "_API_DEFAULT) && !defined(H5_USE_1", ($curr_idx * 2), "_API)\n";
# Print API version definition
print $fh "#define H5_USE_1", ($curr_idx * 2), "_API 1\n";
# Print API version endif
print $fh "#endif /* H5_USE_1", ($curr_idx * 2), "_API_DEFAULT && !H5_USE_1", ($curr_idx * 2), "_API */\n\n";
}
# Loop over supported older library APIs and define the appropriate macros
for $curr_idx ($min_sup_idx .. ($max_idx - 1)) {
# Print API version ifdef

View File

@@ -28,32 +28,32 @@
# of versions that can get confused (not even counting the m4 utility)!
# HDF5 currently uses the following versions of the autotools:
AUTOCONF_VERSION="autoconf (GNU Autoconf) 2.61"
AUTOMAKE_VERSION="automake (GNU automake) 1.10"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.61"
ACLOCAL_VERSION="aclocal (GNU automake) 1.10"
LIBTOOL_VERSION="(GNU libtool) 1.5.22"
AUTOCONF_VERSION="autoconf (GNU Autoconf) 2.65"
AUTOMAKE_VERSION="automake (GNU automake) 1.11.1"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.65"
ACLOCAL_VERSION="aclocal (GNU automake) 1.11.1"
LIBTOOL_VERSION="(GNU libtool) 2.2.6b-mcg"
#
# When upgrading automake's version, don't forget to also update its
# helper utilities, especially depcomp.
# If paths to autotools are not specified by the user, assume tools are
# running on kagiso and set paths accordingly.
# running on jam in /mnt/hdf/packages and set paths accordingly.
if test -z ${AUTOCONF}; then
AUTOCONF=/home1/packages/autoconf/autoconf-2.61/bin/autoconf
AUTOCONF=/mnt/hdf/packages/autoconf/autoconf-2.65/bin/autoconf
fi
if test -z ${AUTOMAKE}; then
AUTOMAKE=/home1/packages/automake/automake-1.10.0/bin/automake-1.10
AUTOMAKE=/mnt/hdf/packages/automake/automake-1.11.1/bin/automake-1.11
fi
if test -z ${AUTOHEADER}; then
AUTOHEADER=/home1/packages/autoconf/autoconf-2.61/bin/autoheader
AUTOHEADER=/mnt/hdf/packages/autoconf/autoconf-2.65/bin/autoheader
fi
if test -z ${ACLOCAL}; then
ACLOCAL=/home1/packages/automake/automake-1.10.0/bin/aclocal-1.10
ACLOCAL=/mnt/hdf/packages/automake/automake-1.11.1/bin/aclocal-1.11
fi
if test -z ${LIBTOOL}; then
LIBTOOL=/home1/packages/libtool/libtool-1.5.22/bin/libtool
LIBTOOL=/mnt/hdf/packages/libtool/libtool-2.2.6b-mcg/bin/libtool
fi
# Check version numbers of all autotools against the "correct" versions
@@ -84,7 +84,7 @@ if test -z "${LT_VERS}"; then
fi
# Use the latest version of M4
PATH=/home1/packages/m4/m4-1.4.7/bin:/home1/packages/m4/m4-1.4.7/share:$PATH
PATH=/mnt/hdf/packages/m4/m4-1.4.7/bin:/mnt/hdf/packages/m4/m4-1.4.7/share:$PATH
# Make sure that the tools are in the path.
AUTOCONF_DIR=`dirname ${AUTOCONF}`

View File

@@ -14,42 +14,10 @@
# access to either file, you may request a copy from help@hdfgroup.org.
#
# Make a release of hdf5. The command-line switches are:
# Make a release of hdf5.
#
# -d DIR The name of the directory where the releas(es) should be
# placed. By default, the directory is ./releases
#
# --nocheck Ignore errors in MANIFEST file.
#
# --private Make a private release with today's date in version information.
#
# The other command-line options are the names of the programs to use
# for compressing the resulting tar archive (if none are given then
# `tar md5' is assumed):
#
# tar -- use tar and don't do any compressing.
# compress -- use compress and append `.Z' to the output name.
# gzip -- use gzip with `-9' and append `.gz' to the output name.
# bzip2 -- use bzip2 with `-9' and append `.bz2' to the output name.
# md5 -- produce a md5 checksum in addition to the archive.
# doc -- produce the latest doc tree in addition to the archive.
#
# Examples:
#
# $ release
# releases/hdf5-1.0.38.tar
# releases/hdf5-1.0.38.tar.md5
#
# $ release gzip
# releases/hdf5-1.0.38.tar.gz
#
# $ release -d /tmp tar compress gzip bzip2 md5 doc
# /tmp/hdf5-1.0.38.tar
# /tmp/hdf5-1.0.38.tar.Z
# /tmp/hdf5-1.0.38.tar.gz
# /tmp/hdf5-1.0.38.tar.bz2
# /tmp/hdf5-1.0.38.tar.md5
# /tmp/hdf5-1.0.38_doc.tar
# Programmer: Robb Matzke
# Creation date: on or before 1998-01-29.
#
# Modifications
# Robb Matzke, 1999-07-16
@@ -59,6 +27,12 @@
# Albert Cheng, 1999-10-26
# Moved the MANIFEST checking to a separate command file so that
# it can be invoked individually.
#
# Albert Cheng, 2004-08-14
# Added the --private option.
#
# James Laird, 2005-09-07
# Added the md5 method.
# Function definitions
#
@@ -70,6 +44,10 @@ Usage: $0 [--nocheck] [-d <dir>] [-h] <methods> ...
-d DIR The name of the directory where the releas(es) should be
placed. By default, the directory is ./releases
--docver BRANCHNAME This is added for 1.8 and beyond to get the correct
version of documentation files from the hdf5docs
repository. BRANCHNAME for v1.8 should be hdf5_1_8.
--nocheck Ignore errors in MANIFEST file.
--private Make a private release with today's date in version information.
@@ -157,6 +135,10 @@ while [ -n "$1" ]; do
--private)
pmode=yes
;;
--docver)
DOCVERSION=$1
shift
;;
-*)
echo "Unknown switch: $arg" 1>&2
USAGE
@@ -222,18 +204,25 @@ grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_ >$MANIFEST
# Prepare the source tree for a release.
ln -s `pwd` $tmpdir/$HDF5_VERS || exit 1
mv Makefile $tmpdir/Makefile.x 2>/dev/null #might fail
# Save a backup copy of Makefile if exists.
test -f Makefile && mv Makefile $tmpdir/Makefile.x
cp -p Makefile.dist Makefile
# Update README.txt and release_docs/RELEASE.txt with release information.
# Update README.txt and release_docs/RELEASE.txt with release information in
# line 1.
for f in README.txt release_docs/RELEASE.txt; do
echo "HDF5 version $VERS released on `date`" >$f.x
tail +2l $f >>$f.x
sed -e 1d $f >>$f.x
mv $f.x $f
# Make sure new files are of the right access mode
chmod 644 $f
done
# trunk is different than branches.
if [ "${DOCVERSION}" ]; then
DOC_URL=http://svn.hdfgroup.uiuc.edu/hdf5doc/branches/${DOCVERSION}
fi
# Create the tar file
test "$verbose" && echo " Running tar..." 1>&2
( \
@@ -265,16 +254,19 @@ for comp in $methods; do
(cd $tmpdir; md5sum $HDF5_VERS.tar ) > $DEST/$HDF5_VERS.tar.md5
;;
doc)
if [ "${DOCVERSION}" = "" ]; then
DOCVERSION=trunk
fi
test "$verbose" && echo " Creating docs..." 1>&2
# Check out docs from svn repo
(cd $tmpdir; svn co $DOC_URL > /dev/null) || exit 1
# Create doxygen C++ RM
(cd c++/src && doxygen cpp_doc_config > /dev/null ) || exit 1
# Replace version of C++ RM with just-created version
rm -rf $tmpdir/trunk/html/$CPPLUS_RM_NAME
mv c++/src/$CPPLUS_RM_NAME $tmpdir/trunk/html/$CPPLUS_RM_NAME
# Compress the docs and move them to the release area
mv $tmpdir/trunk $tmpdir/${HDF5_VERS}_docs
rm -rf $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME
mv c++/src/$CPPLUS_RM_NAME $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME
# Compress the docs and move them to the release area
mv $tmpdir/$DOCVERSION $tmpdir/${HDF5_VERS}_docs
(cd $tmpdir && tar cf ${HDF5_VERS}_docs.tar ${HDF5_VERS}_docs)
mv $tmpdir/${HDF5_VERS}_docs.tar $DEST
;;
@@ -284,7 +276,8 @@ done
# Copy the RELEASE.txt to the release area.
cp release_docs/RELEASE.txt $DEST/$HDF5_VERS-RELEASE.txt
# Restore previous Makefile if existed.
# Remove distributed Makefile and restore previous Makefile if existed.
rm -f Makefile
test -f $tmpdir/Makefile.x && mv $tmpdir/Makefile.x Makefile
# Restore OLD version information, then no need for trap.

View File

@@ -199,6 +199,9 @@ while [ $# -gt 0 ] ; do
check-vfd)
CHECKVAL=check-vfd
;;
yodconfigure)
YODCONFIGURE=yes
;;
--*)
OP_CONFIGURE="$OP_CONFIGURE $1"
;;
@@ -284,7 +287,14 @@ fi
# Setup the proper configure option (--with-zlib) to use zlib library
# provide ZLIB is non-empty.
ZLIB=${ZLIB:+"--with-zlib="$ZLIB}
CONFIGURE="./configure $ZLIB $OP_CONFIGURE"
if [ -n "$YODCONFIGURE" ]; then
cp configure configure.yod
bin/yodconfigure configure.yod
CONFIGURE="./configure.yod"
else
CONFIGURE="./configure"
fi
CONFIGURE="$CONFIGURE $ZLIB $OP_CONFIGURE"
# Execute the requests
snapshot=yes
@@ -412,7 +422,7 @@ if [ "$cmd" = "all" -o -n "$cmdtest" -o -n "$cmddiff" ]; then
TIMESTAMP "check-install" && \
${MAKE} check-install && DISKUSAGE \
TIMESTAMP "uninstall" && \
${MAKE} uninstall-all) && DISKUSAGE ; then
${MAKE} uninstall-all && DISKUSAGE); then
:
else
errcode=$?

View File

@@ -18,4 +18,6 @@
# latest revision of that branch. If set to "hdf5", it uses the main
# version.
# H5VER tells runtest which version to run
H5VERSION=hdf5
H5VERSION=hdf5_1_8
H5VER="-r1.8"

View File

@@ -104,7 +104,9 @@ $Source = "";
"H5FD_stream_fapl_t" => "x",
"H5G_iterate_t" => "x",
"H5G_info_t" => "x",
"H5I_free_t" => "x",
"H5L_class_t" => "x",
"H5L_elink_traverse_t" => "x",
"H5L_iterate_t" => "x",
"H5MM_allocate_t" => "x",
"H5MM_free_t" => "x",

46
c++/CMakeLists.txt Normal file
View File

@@ -0,0 +1,46 @@
cmake_minimum_required (VERSION 2.8)
PROJECT (HDF5_CPP)
#-----------------------------------------------------------------------------
# Shared/Static Libs
#-----------------------------------------------------------------------------
IF (BUILD_SHARED_LIBS)
SET (CPP_BUILT_AS_DYNAMIC_LIB 1)
ENDIF (BUILD_SHARED_LIBS)
#-----------------------------------------------------------------------------
# Generate configure file
#-----------------------------------------------------------------------------
CONFIGURE_FILE (${HDF5_SOURCE_DIR}/Resources/H5cxx_config.h.in
${HDF5_BINARY_DIR}/H5cxx_pubconf.h
)
#-----------------------------------------------------------------------------
# Setup Include directories
#-----------------------------------------------------------------------------
INCLUDE_DIRECTORIES (${HDF5_CPP_SOURCE_DIR}/src)
INCLUDE_DIRECTORIES (${HDF5_BINARY_DIR})
#-----------------------------------------------------------------------------
# Parallel/MPI, prevent spurious cpp/cxx warnings
#-----------------------------------------------------------------------------
IF (H5_HAVE_PARALLEL)
ADD_DEFINITIONS ("-DMPICH_SKIP_MPICXX")
ADD_DEFINITIONS ("-DMPICH_IGNORE_CXX_SEEK")
ENDIF (H5_HAVE_PARALLEL)
ADD_SUBDIRECTORY (${HDF5_CPP_SOURCE_DIR}/src ${HDF5_CPP_BINARY_DIR}/src)
#-----------------------------------------------------------------------------
# Build the CPP Examples
#-----------------------------------------------------------------------------
IF (HDF5_BUILD_EXAMPLES)
ADD_SUBDIRECTORY (${HDF5_CPP_SOURCE_DIR}/examples ${HDF5_CPP_BINARY_DIR}/examples)
ENDIF (HDF5_BUILD_EXAMPLES)
#-----------------------------------------------------------------------------
# Build the CPP unit tests
#-----------------------------------------------------------------------------
IF (BUILD_TESTING)
ADD_SUBDIRECTORY (${HDF5_CPP_SOURCE_DIR}/test ${HDF5_CPP_BINARY_DIR}/test)
ENDIF (BUILD_TESTING)

View File

@@ -1,5 +1,5 @@
Copyright by The HDF Group (THG) and
Copyright by The HDF Group and
The Board of Trustees of the University of Illinois.
All rights reserved.

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -32,8 +33,9 @@
#
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -60,6 +62,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -71,12 +74,52 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -90,46 +133,49 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CXX_VERSION = @CXX_VERSION@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FC_VERSION = @FC_VERSION@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -138,11 +184,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -150,11 +199,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LARGEFILE = @LARGEFILE@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -163,14 +217,21 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PACKED_BITS = @PACKED_BITS@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
@@ -182,22 +243,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -206,13 +266,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -228,8 +289,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -237,15 +302,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -258,6 +322,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -267,12 +332,12 @@ CP = cp
# Some machines need a command to run executables; this is that command
# so that our tests will run.
# We use RUNTESTS instead of RUNSERIAL directly because it may be that
# We use RUNEXEC instead of RUNSERIAL directly because it may be that
# some tests need to be run with a different command. Older versions
# of the makefiles used the command
# $(LIBTOOL) --mode=execute
# in some directories, for instance.
RUNTESTS = $(RUNSERIAL)
RUNEXEC = $(RUNSERIAL)
# Libraries to link to while building
LIBHDF5 = $(top_builddir)/src/libhdf5.la
@@ -288,11 +353,11 @@ LIBH5CPP_HL = $(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la
# Scripts used to build examples
# If only shared libraries have been installed, have h5cc build examples with
# shared libraries instead of static libraries
H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
H5CPP = $(bindir)/h5c++
H5CC = ${DESTDIR}$(bindir)/h5cc
H5CC_PP = ${DESTDIR}$(bindir)/h5pcc
H5FC = ${DESTDIR}$(bindir)/h5fc
H5FC_PP = ${DESTDIR}$(bindir)/h5pfc
H5CPP = ${DESTDIR}$(bindir)/h5c++
# The trace script; this is used on source files from the C library to
# insert tracing macros.
@@ -301,7 +366,7 @@ TRACE = perl $(top_srcdir)/bin/trace
# .chkexe files are used to mark tests that have run successfully.
# .chklog files are output from those tests.
# *.clog are from the MPE option.
CHECK_CLEANFILES = *.chkexe *.chklog *.clog
CHECK_CLEANFILES = *.chkexe *.chklog *.clog $(TEST_PROG) *.o *.exe
@BUILD_CXX_CONDITIONAL_TRUE@SUBDIRS = src test
DIST_SUBDIRS = src test examples
@@ -327,14 +392,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -352,6 +417,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
@@ -366,7 +432,7 @@ clean-libtool:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -383,7 +449,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -391,7 +457,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@failcom='exit 1'; \
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -417,16 +483,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -434,14 +500,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -453,39 +519,43 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -506,29 +576,44 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -559,6 +644,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -577,6 +663,8 @@ dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
@@ -585,18 +673,28 @@ install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am: installcheck-local
maintainer-clean: maintainer-clean-recursive
@@ -618,8 +716,8 @@ ps-am:
uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
install-strip
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
ctags-recursive install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am all-local check check-TESTS check-am clean \
@@ -752,10 +850,10 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log};\
else \
@@ -764,7 +862,7 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
fi; \
echo "============================" >> $${log}; \
srcdir="$(srcdir)" \
$(TIME) $(RUNTESTS) ./$${tname} $(TEST_FLAGS) >> $${log} 2>&1 \
$(TIME) $(RUNEXEC) ./$${tname} $(TEST_FLAGS) >> $${log} 2>&1 \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
(cat $${log} && false) || exit 1; \
@@ -791,10 +889,10 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
else \
@@ -835,7 +933,7 @@ build-check-p: $(LIB) $(PROGS) $(TESTS)
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)" || exit 1; \
RUNEXEC="$(RUNPARALLEL)" || exit 1; \
fi; \
done
@for test in $(TEST_SCRIPT_PARA) dummy; do \
@@ -858,6 +956,7 @@ check-vfd: $(LIB) $(PROGS) $(TESTS)
HDF5_DRIVER=$$vfd $(MAKE) $(AM_MAKEFLAGS) check || exit 1; \
fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -0,0 +1,27 @@
cmake_minimum_required (VERSION 2.8)
# --------------------------------------------------------------------
# Notes: When creating examples they should be prefixed
# with "cpp_ex_". This allows for easier filtering of the examples.
# --------------------------------------------------------------------
PROJECT (HDF5_CPP_EXAMPLES)
#-----------------------------------------------------------------------------
# Define examples
#-----------------------------------------------------------------------------
SET (examples
create
readdata
writedata
compound
extend_ds
chunks
h5group
)
FOREACH (example ${examples})
ADD_EXECUTABLE (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
H5_NAMING (cpp_ex_${example})
TARGET_LINK_LIBRARIES (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
ENDFOREACH (example ${examples})

View File

@@ -27,18 +27,19 @@ TEST_PROG=create readdata writedata compound extend_ds chunks h5group
TEST_SCRIPT=testh5c++.sh
# These are the example files to be installed
INSTALL_FILES=create.cpp readdata.cpp writedata.cpp compound.cpp \
INSTALL_FILES=create.cpp readdata.cpp writedata.cpp compound.cpp \
extend_ds.cpp chunks.cpp h5group.cpp
INSTALL_SCRIPT_FILES = run-c++-ex.sh
# Some of the examples depend on files created by running other examples
readdata.chkexe_: create.chkexe_
chunks.chkexe_: extend_ds.chkexe_
# Tell conclude.am that these are C++ tests.
HDF_CXX=yes
CXX_API=yes
# Where to install examples
EXAMPLEDIR=$(docdir)/hdf5/examples/c++
EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++
# How to build programs using h5c++
$(EXTRA_PROG): $(H5CPP)

View File

@@ -1,8 +1,9 @@
# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -36,8 +37,9 @@
# This creates some extra work for us.
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -53,7 +55,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/testh5c++.sh.in $(top_srcdir)/config/commence.am \
$(srcdir)/run-c++-ex.sh.in $(srcdir)/testh5c++.sh.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am \
$(top_srcdir)/config/examples.am
TESTS =
@@ -64,13 +67,26 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES = testh5c++.sh
CONFIG_CLEAN_FILES = run-c++-ex.sh testh5c++.sh
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
AMTAR = @AMTAR@
# H5_CFLAGS holds flags that should be used when building hdf5,
# but which should not be exported to h5cc for building other programs.
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@
AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@
AM_MAKEFLAGS = @AM_MAKEFLAGS@
AR = @AR@
@@ -84,46 +100,49 @@ BYTESEX = @BYTESEX@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
# H5_CFLAGS holds flags that should be used as CFLAGS when building hdf5,
# but which shouldn't be exported to h5cc for building other programs.
CFLAGS = @CFLAGS@ @H5_CFLAGS@
CFLAGS = @CFLAGS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
CONFIG_MODE = @CONFIG_MODE@
CONFIG_USER = @CONFIG_USER@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ @H5_CPPFLAGS@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@ @H5_CXXFLAGS@
CXXFLAGS = @CXXFLAGS@
CXX_VERSION = @CXX_VERSION@
CYGPATH_W = @CYGPATH_W@
DEBUG_PKG = @DEBUG_PKG@
DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
DIRECT_VFD = @DIRECT_VFD@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DYNAMIC_DIRS = @DYNAMIC_DIRS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
EXTERNAL_FILTERS = @EXTERNAL_FILTERS@
# Make sure that these variables are exported to the Makefiles
F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
FCFLAGS = @FCFLAGS@ @H5_FCFLAGS@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
FFLAGS = @FFLAGS@
FC_VERSION = @FC_VERSION@
FGREP = @FGREP@
FILTERS = @FILTERS@
FSEARCH_DIRS = @FSEARCH_DIRS@
GPFS = @GPFS@
GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
@@ -132,11 +151,14 @@ H5_FCFLAGS = @H5_FCFLAGS@
H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
HSIZET = @HSIZET@
HSIZE_T = @HSIZE_T@
HSSIZE_T = @HSSIZE_T@
INSTALL = @INSTALL@
@@ -144,11 +166,16 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
LARGEFILE = @LARGEFILE@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LL_PATH = @LL_PATH@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_STATIC_EXEC = @LT_STATIC_EXEC@
@@ -157,14 +184,21 @@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPE = @MPE@
MPI_GET_SIZE = @MPI_GET_SIZE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PACKED_BITS = @PACKED_BITS@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
@@ -176,22 +210,21 @@ RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
R_LARGE = @R_LARGE@
SEARCH = @SEARCH@
SED = @SED@
SETX = @SETX@
SET_MAKE = @SET_MAKE@
# Hardcode SHELL to be /bin/sh. Most machines have this shell, and
# on at least one machine configure fails to detect its existence (janus).
# Also, when HDF5 is configured on one machine but run on another,
# configure's automatic SHELL detection may not work on the build machine.
SHELL = /bin/sh
SHELL = @SHELL@
SIZE_T = @SIZE_T@
STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
TR = @TR@
TRACE_API = @TRACE_API@
UNAME_INFO = @UNAME_INFO@
USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
USE_FILTER_NBIT = @USE_FILTER_NBIT@
@@ -200,13 +233,14 @@ USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
USE_FILTER_SZIP = @USE_FILTER_SZIP@
USINGMEMCHECKER = @USINGMEMCHECKER@
VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_FC = @ac_ct_FC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
@@ -222,8 +256,12 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
@@ -231,15 +269,14 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
# Install directories that automake doesn't know about
includedir = $(exec_prefix)/include
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -252,6 +289,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -261,12 +299,12 @@ CP = cp
# Some machines need a command to run executables; this is that command
# so that our tests will run.
# We use RUNTESTS instead of RUNSERIAL directly because it may be that
# We use RUNEXEC instead of RUNSERIAL directly because it may be that
# some tests need to be run with a different command. Older versions
# of the makefiles used the command
# $(LIBTOOL) --mode=execute
# in some directories, for instance.
RUNTESTS = $(RUNSERIAL)
RUNEXEC = $(RUNSERIAL)
# Libraries to link to while building
LIBHDF5 = $(top_builddir)/src/libhdf5.la
@@ -282,11 +320,11 @@ LIBH5CPP_HL = $(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la
# Scripts used to build examples
# If only shared libraries have been installed, have h5cc build examples with
# shared libraries instead of static libraries
H5CC = $(bindir)/h5cc
H5CC_PP = $(bindir)/h5pcc
H5FC = $(bindir)/h5fc
H5FC_PP = $(bindir)/h5pfc
H5CPP = $(bindir)/h5c++
H5CC = ${DESTDIR}$(bindir)/h5cc
H5CC_PP = ${DESTDIR}$(bindir)/h5pcc
H5FC = ${DESTDIR}$(bindir)/h5fc
H5FC_PP = ${DESTDIR}$(bindir)/h5pfc
H5CPP = ${DESTDIR}$(bindir)/h5c++
# The trace script; this is used on source files from the C library to
# insert tracing macros.
@@ -295,7 +333,8 @@ TRACE = perl $(top_srcdir)/bin/trace
# .chkexe files are used to mark tests that have run successfully.
# .chklog files are output from those tests.
# *.clog are from the MPE option.
CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
CHECK_CLEANFILES = *.chkexe *.chklog *.clog $(TEST_PROG) *.o *.exe \
*.h5
# These are the programs that 'make all' or 'make prog' will build and
# which 'make check' will run. List them in the order they should be run.
@@ -303,15 +342,16 @@ TEST_PROG = create readdata writedata compound extend_ds chunks h5group
TEST_SCRIPT = testh5c++.sh
# These are the example files to be installed
INSTALL_FILES = create.cpp readdata.cpp writedata.cpp compound.cpp \
INSTALL_FILES = create.cpp readdata.cpp writedata.cpp compound.cpp \
extend_ds.cpp chunks.cpp h5group.cpp
INSTALL_SCRIPT_FILES = run-c++-ex.sh
# Tell conclude.am that these are C++ tests.
HDF_CXX = yes
CXX_API = yes
# Where to install examples
EXAMPLEDIR = $(docdir)/hdf5/examples/c++
EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++
# Assume that all tests in this directory are examples, and tell
# conclude.am when to build them.
@@ -344,14 +384,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/examples/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/examples/Makefile
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign c++/examples/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign c++/examples/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -369,6 +409,9 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
run-c++-ex.sh: $(top_builddir)/config.status $(srcdir)/run-c++-ex.sh.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
testh5c++.sh: $(top_builddir)/config.status $(srcdir)/testh5c++.sh.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
@@ -400,13 +443,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -437,6 +484,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -455,6 +503,8 @@ dvi-am:
html: html-am
html-am:
info: info-am
info-am:
@@ -463,18 +513,28 @@ install-data-am: install-data-local
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am: installcheck-local
maintainer-clean: maintainer-clean-am
@@ -496,7 +556,7 @@ ps-am:
uninstall-am: uninstall-local
.MAKE: install-am install-strip
.MAKE: check-am install-am install-strip
.PHONY: all all-am all-local check check-TESTS check-am clean \
clean-generic clean-libtool distclean distclean-generic \
@@ -546,6 +606,8 @@ h5group: $(srcdir)/h5group.cpp
# How to create EXAMPLEDIR if it doesn't already exist
$(EXAMPLEDIR):
-$(top_srcdir)/bin/mkdirs $@
$(EXAMPLETOPDIR):
-$(top_srcdir)/bin/mkdirs $@
# Install and uninstall rules. We install the source files, not the
# example programs themselves.
@@ -554,16 +616,32 @@ install-data-local:
uninstall-local:
@$(MAKE) $(AM_MAKEFLAGS) uninstall-examples
install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
@for f in X $(INSTALL_FILES); do \
if test $$f != X; then \
(set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);\
fi; \
done
@for f in X $(INSTALL_SCRIPT_FILES); do \
if test $$f != X; then \
(set -x; $(INSTALL) $$f $(EXAMPLEDIR)/. || exit 1);\
fi; \
done
@for f in X $(INSTALL_TOP_SCRIPT_FILES); do \
if test $$f != X; then \
(set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLETOPDIR)/. || exit 1); \
fi; \
done
uninstall-examples:
@if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
@if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
fi
@if test -n "$(INSTALL_SCRIPT_FILES)" -a -d $(EXAMPLEDIR); then \
set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_SCRIPT_FILES); \
fi
@if test -n "$(INSTALL_TOP_SCRIPT_FILES)" -a -d $(EXAMPLETOPDIR); then \
set -x; cd $(EXAMPLETOPDIR) && $(RM) $(INSTALL_TOP_SCRIPT_FILES); \
fi
installcheck-local:
@@ -665,10 +743,10 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $(HDF5_DRIVER) $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $(HDF5_DRIVER) $${tname} $(TEST_FLAGS) Test Log" >> $${log};\
else \
@@ -677,7 +755,7 @@ $(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) dummy.chkexe_:
fi; \
echo "============================" >> $${log}; \
srcdir="$(srcdir)" \
$(TIME) $(RUNTESTS) ./$${tname} $(TEST_FLAGS) >> $${log} 2>&1 \
$(TIME) $(RUNEXEC) ./$${tname} $(TEST_FLAGS) >> $${log} 2>&1 \
&& touch $(@:.chkexe_=.chkexe) || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
(cat $${log} && false) || exit 1; \
@@ -704,10 +782,10 @@ $(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) dummysh.chkexe_:
echo "No need to test $${tname} again."; \
else \
echo "============================" > $${log}; \
if test "X$(HDF_FORTRAN)" = "Xyes"; then \
if test "X$(FORTRAN_API)" = "Xyes"; then \
echo "Fortran API: Testing $${tname} $(TEST_FLAGS)"; \
echo "Fortran API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
elif test "X$(HDF_CXX)" = "Xyes"; then \
elif test "X$(CXX_API)" = "Xyes"; then \
echo "C++ API: Testing $${tname} $(TEST_FLAGS)"; \
echo "C++ API: $${tname} $(TEST_FLAGS) Test Log" >> $${log}; \
else \
@@ -748,7 +826,7 @@ build-check-p: $(LIB) $(PROGS) $(TESTS)
@for test in $(TEST_PROG_PARA) dummy; do \
if test $$test != dummy; then \
$(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \
RUNTESTS="$(RUNPARALLEL)" || exit 1; \
RUNEXEC="$(RUNPARALLEL)" || exit 1; \
fi; \
done
@for test in $(TEST_SCRIPT_PARA) dummy; do \
@@ -771,6 +849,7 @@ check-vfd: $(LIB) $(PROGS) $(TESTS)
HDF5_DRIVER=$$vfd $(MAKE) $(AM_MAKEFLAGS) check || exit 1; \
fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -80,7 +80,7 @@ int main (void)
hsize_t dims[2]; // dataset dimensions
rank = filespace.getSimpleExtentDims( dims );
cout << "dataset rank = " << rank << ", dimensions "
<< (unsigned long)(dims[0]) << " x "
<< (unsigned long)(dims[0]) << " x "
<< (unsigned long)(dims[1]) << endl;
/*

View File

@@ -94,7 +94,7 @@ int main(void)
* Create the first dataset.
*/
DataSet* dataset = new DataSet(file->createDataSet(
"/Data/Compressed_Data", PredType::NATIVE_INT,
"/Data/Compressed_Data", PredType::NATIVE_INT,
*dataspace, ds_creatplist ));
/*
@@ -109,7 +109,7 @@ int main(void)
dims[0] = 500;
dims[1] = 20;
dataspace = new DataSpace(RANK, dims); // create second dspace
dataset = new DataSet(file->createDataSet("/Data/Float_Data",
dataset = new DataSet(file->createDataSet("/Data/Float_Data",
PredType::NATIVE_FLOAT, *dataspace));
delete dataset;

85
c++/examples/run-c++-ex.sh.in Executable file
View File

@@ -0,0 +1,85 @@
#! /bin/sh
#
# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the files COPYING and Copyright.html. COPYING can be found at the root
# of the source code distribution tree; Copyright.html can be found at the
# root level of an installed copy of the electronic HDF5 document set and
# is linked from the top-level documents page. It can also be found at
# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
# access to either file, you may request a copy from help@hdfgroup.org.
#
# This file: run-c++-ex.sh
# Written by: Larry Knox
# Date: May 11, 2010
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# This script will compile and run the c++ examples from source files #
# installed in .../share/hdf5_examples/c++ using h5c++. The #
# order for running programs with RunTest in the MAIN section below is taken #
# from the Makefile. The order is important since some of the test programs #
# use data files created by earlier test programs. Any future additions should #
# be placed accordingly. #
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Initializations
EXIT_SUCCESS=0
EXIT_FAILURE=1
# Where the tool is installed.
prefix="${prefix:-${DESTDIR}@prefix@}"
AR="@AR@"
RANLIB="@RANLIB@"
H5TOOL="h5c++" # The tool name
H5TOOL_BIN="${prefix}/bin/${H5TOOL}" # The path of the tool binary
#### Run test ####
RunTest()
{
Test=$1".cpp"
echo
echo "################# $1 #################"
${H5TOOL_BIN} $Test -o $1
if [ $? -ne 0 ]
then
echo "messed up compiling $Test"
exit 1
fi
./$1
rm -f $1 $1.exe
}
################## MAIN ##################
# Run tests
if [ $? -eq 0 ]
then
if (RunTest create &&\
RunTest readdata &&\
RunTest writedata &&\
RunTest compound &&\
RunTest extend_ds &&\
RunTest chunks &&\
RunTest h5group); then
EXIT_VALUE=${EXIT_SUCCESS}
else
EXIT_VALUE=${EXIT_FAILURE}
fi
fi
# Cleanup
rm *.o
rm *.h5
echo
exit $EXIT_VALUE

View File

@@ -1,68 +0,0 @@
#!/bin/sh
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the files COPYING and Copyright.html. COPYING can be found at the root
# of the source code distribution tree; Copyright.html can be found at the
# root level of an installed copy of the electronic HDF5 document set and
# is linked from the top-level documents page. It can also be found at
# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
# access to either file, you may request a copy from help@hdfgroup.org.
CMP='cmp -s'
DIFF='diff -c'
nerrors=0
verbose=yes
# The build (current) directory might be different than the source directory.
if test -z "$srcdir"; then
srcdir=.
fi
actual=sample.out
expect=$srcdir/expected.out
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
TESTING()
{
SPACES=" "
echo "Testing $* $SPACES" |cut -c1-70 |tr -d '\012'
}
TESTING C++ Examples
(
./create
./readdata
./writedata
./compound
./extend_ds
./chunks
./h5group
) > $actual
if $CMP $expect $actual; then
echo " PASSED"
else
echo "*FAILED*"
echo " Expected result differs from actual result"
nerrors="`expr $nerrors + 1`"
test yes = "$verbose" && $DIFF $expect $actual | sed 's/^/ /'
fi
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual
fi
if test $nerrors -eq 0 ; then
echo "All tests passed."
fi
exit $nerrors

View File

@@ -20,17 +20,21 @@
#
# Initializations
TESTNAME=h5c++
EXIT_SUCCESS=0
EXIT_FAILURE=1
# Where the tool is installed.
prefix="${prefix:-@prefix@}"
AR=@AR@
RANLIB=@RANLIB@
prefix="${prefix:-${DESTDIR}@prefix@}"
AR="@AR@"
RANLIB="@RANLIB@"
H5TOOL="h5c++" # The tool name
H5TOOL_BIN="${prefix}/bin/${H5TOOL}" # The path of the tool binary
CMP='cmp -s'
DIFF='diff -c'
nerrors=0
nerrors=$EXIT_SUCCESS
verbose=yes
# setup my machine information.
@@ -271,7 +275,9 @@ if test -z "$HDF5_NOCLEANUP"; then
fi
if test $nerrors -eq 0 ; then
echo "All $H5TOOL tests passed."
echo "All $TESTNAME tests passed."
exit $EXIT_SUCCESS
else
echo "$TESTNAME tests failed with $nerrors errors."
exit $EXIT_FAILURE
fi
exit $nerrors

113
c++/src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,113 @@
cmake_minimum_required (VERSION 2.8)
PROJECT (HDF5_CPP_SRC)
#-----------------------------------------------------------------------------
# Shared/Static Libs
#-----------------------------------------------------------------------------
IF (BUILD_SHARED_LIBS)
SET (CPP_BUILT_AS_DYNAMIC_LIB 1)
ENDIF (BUILD_SHARED_LIBS)
#-----------------------------------------------------------------------------
# Generate configure file
#-----------------------------------------------------------------------------
CONFIGURE_FILE (${HDF5_SOURCE_DIR}/Resources/H5cxx_config.h.in
${HDF5_BINARY_DIR}/H5cxx_pubconf.h
)
#-----------------------------------------------------------------------------
# Define cpp Library
#-----------------------------------------------------------------------------
SET (CPP_SRCS
${HDF5_CPP_SOURCE_DIR}/src/H5AbstractDs.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5ArrayType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5AtomType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5Attribute.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5CommonFG.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5CompType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5DataSet.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5DataSpace.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5DataType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5DcreatProp.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5DxferProp.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5EnumType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5Exception.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5FaccProp.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5FcreatProp.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5File.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5FloatType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5Group.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5IdComponent.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5IntType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5Library.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5Object.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5PredType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5PropList.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5StrType.cpp
${HDF5_CPP_SOURCE_DIR}/src/H5VarLenType.cpp
)
SET (CPP_HDRS
${HDF5_CPP_SOURCE_DIR}/src/H5AbstractDs.h
${HDF5_CPP_SOURCE_DIR}/src/H5Alltypes.h
${HDF5_CPP_SOURCE_DIR}/src/H5ArrayType.h
${HDF5_CPP_SOURCE_DIR}/src/H5AtomType.h
${HDF5_CPP_SOURCE_DIR}/src/H5Attribute.h
${HDF5_CPP_SOURCE_DIR}/src/H5Classes.h
${HDF5_CPP_SOURCE_DIR}/src/H5CommonFG.h
${HDF5_CPP_SOURCE_DIR}/src/H5CompType.h
${HDF5_CPP_SOURCE_DIR}/src/H5Cpp.h
${HDF5_CPP_SOURCE_DIR}/src/H5CppDoc.h
${HDF5_CPP_SOURCE_DIR}/src/H5DataSet.h
${HDF5_CPP_SOURCE_DIR}/src/H5DataSpace.h
${HDF5_CPP_SOURCE_DIR}/src/H5DataType.h
${HDF5_CPP_SOURCE_DIR}/src/H5DcreatProp.h
${HDF5_CPP_SOURCE_DIR}/src/H5DxferProp.h
${HDF5_CPP_SOURCE_DIR}/src/H5EnumType.h
${HDF5_CPP_SOURCE_DIR}/src/H5Exception.h
${HDF5_CPP_SOURCE_DIR}/src/H5FaccProp.h
${HDF5_CPP_SOURCE_DIR}/src/H5FcreatProp.h
${HDF5_CPP_SOURCE_DIR}/src/H5File.h
${HDF5_CPP_SOURCE_DIR}/src/H5FloatType.h
${HDF5_CPP_SOURCE_DIR}/src/H5Group.h
${HDF5_CPP_SOURCE_DIR}/src/H5IdComponent.h
${HDF5_CPP_SOURCE_DIR}/src/H5Include.h
${HDF5_CPP_SOURCE_DIR}/src/H5IntType.h
${HDF5_CPP_SOURCE_DIR}/src/H5Library.h
${HDF5_CPP_SOURCE_DIR}/src/H5Object.h
${HDF5_CPP_SOURCE_DIR}/src/H5PredType.h
${HDF5_CPP_SOURCE_DIR}/src/H5PropList.h
${HDF5_CPP_SOURCE_DIR}/src/H5StrType.h
${HDF5_CPP_SOURCE_DIR}/src/H5VarLenType.h
)
ADD_LIBRARY (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} ${CPP_SRCS} ${CPP_HDRS})
TARGET_LINK_LIBRARIES (${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} ${LIB_TYPE})
#-----------------------------------------------------------------------------
# Add file(s) to CMake Install
#-----------------------------------------------------------------------------
INSTALL (
FILES
${CPP_HDRS}
DESTINATION
include/cpp
)
#-----------------------------------------------------------------------------
# Add Target(s) to CMake Install for import into other projects
#-----------------------------------------------------------------------------
IF (HDF5_EXPORTED_TARGETS)
INSTALL (
TARGETS
${HDF5_CPP_LIB_TARGET}
EXPORT
${HDF5_EXPORTED_TARGETS}
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
)
ENDIF (HDF5_EXPORTED_TARGETS)

View File

@@ -25,6 +25,11 @@
#include "H5CommonFG.h"
#include "H5Alltypes.h"
#include <iostream> // remove when done
using std::cerr;
using std::endl;
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
@@ -34,21 +39,21 @@ namespace H5 {
///\brief Default constructor
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AbstractDs::AbstractDs() : H5Object() {}
AbstractDs::AbstractDs(){}
//--------------------------------------------------------------------------
// Function: AbstractDs default constructor
///\brief Creates an AbstractDs instance using an existing id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AbstractDs::AbstractDs( const hid_t ds_id ) : H5Object( ds_id ) {}
AbstractDs::AbstractDs(const hid_t ds_id){}
//--------------------------------------------------------------------------
// Function: AbstractDs copy constructor
///\brief Copy constructor: makes a copy of the original AbstractDs object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
AbstractDs::AbstractDs( const AbstractDs& original ) : H5Object( original ) {}
AbstractDs::AbstractDs(const AbstractDs& original){}
//--------------------------------------------------------------------------
// Function: AbstractDs::getTypeClass
@@ -76,13 +81,26 @@ H5T_class_t AbstractDs::getTypeClass() const
// Gets the class of the datatype and validate it before returning
H5T_class_t type_class = H5Tget_class(datatype_id);
if( type_class != H5T_NO_CLASS )
return( type_class );
else
// Close temporary datatype_id
herr_t ret_value = H5Tclose(datatype_id);
if (ret_value < 0)
{
throw DataTypeIException(inMemFunc("getTypeClass"),
"H5Tget_class returns H5T_NO_CLASS");
if (fromClass() == "DataSet")
throw DataTypeIException("DataSet::getTypeClass", "H5Tclose failed");
else if (fromClass() == "Attribute")
throw DataTypeIException("Attribute::getTypeClass", "H5Tclose failed");
}
// Check on the returned type_class
if (type_class == H5T_NO_CLASS)
{
if (fromClass() == "DataSet")
throw DataTypeIException("DataSet::getTypeClass", "H5Tget_class returns H5T_NO_CLASS");
else if (fromClass() == "Attribute")
throw DataTypeIException("Attribute::getTypeClass", "H5Tget_class returns H5T_NO_CLASS");
}
return(type_class);
}
//--------------------------------------------------------------------------

View File

@@ -33,7 +33,7 @@ class FloatType;
class IntType;
class StrType;
class VarLenType;
class H5_DLLCPP AbstractDs : public H5Object {
class H5_DLLCPP AbstractDs {
public:
// Gets a copy the datatype of that this abstract dataset uses.
// Note that this datatype is a generic one and can only be accessed
@@ -51,6 +51,9 @@ class H5_DLLCPP AbstractDs : public H5Object {
StrType getStrType() const;
VarLenType getVarLenType() const;
// Gets the size in memory of this abstract dataset.
virtual size_t getInMemDataSize() const = 0;
// Gets the dataspace of this abstract dataset - pure virtual.
virtual DataSpace getSpace() const = 0;
@@ -62,6 +65,9 @@ class H5_DLLCPP AbstractDs : public H5Object {
// dataset - pure virtual.
virtual hsize_t getStorageSize() const = 0;
// Returns this class name
virtual H5std_string fromClass() const = 0;
// Copy constructor
AbstractDs( const AbstractDs& original );

View File

@@ -36,7 +36,7 @@ class H5_DLLCPP ArrayType : public DataType {
// Returns the sizes of dimensions of this array datatype.
int getArrayDims(hsize_t* dims);
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("ArrayType"); }
// Copy constructor: makes copy of the original object.

View File

@@ -98,7 +98,7 @@ H5T_order_t AtomType::getOrder() const
//--------------------------------------------------------------------------
// Function: AtomType::getOrder
///\brief This is an overloaded member function, provided for convenience.
/// It takes a reference to a \c std::string for the buffer that
/// It takes a reference to a \c H5std_string for the buffer that
/// provide the text description of the returned byte order.
/// The text description can be either of the following:
/// "Little endian byte ordering (0)";
@@ -178,7 +178,7 @@ size_t AtomType::getPrecision() const
///\exception H5::DataTypeIException
///\par Description
/// For information, please see C layer Reference Manuat at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-SetPrecision
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-SetPrecision
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void AtomType::setPrecision( size_t precision ) const
@@ -198,7 +198,7 @@ void AtomType::setPrecision( size_t precision ) const
///\exception H5::DataTypeIException
///\par Description
/// For information, please see C layer Reference Manuat at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-GetOffset
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-GetOffset
// Programmer Binh-Minh Ribler - 2000
// Modification
// 12/05/00: due to C API change
@@ -225,7 +225,7 @@ int AtomType::getOffset() const
///\exception H5::DataTypeIException
///\par Description
/// For information, please see C layer Reference Manuat at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-SetOffset
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-SetOffset
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void AtomType::setOffset( size_t offset ) const

View File

@@ -57,7 +57,7 @@ class H5_DLLCPP AtomType : public DataType {
// Sets the total size for an atomic datatype.
void setSize( size_t size ) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("AtomType"); }
// Copy constructor - makes copy of the original object

View File

@@ -26,12 +26,15 @@
#include "H5PropList.h"
#include "H5Object.h"
#include "H5AbstractDs.h"
#include "H5Attribute.h"
#include "H5FaccProp.h"
#include "H5FcreatProp.h"
#include "H5DcreatProp.h"
#include "H5CommonFG.h"
#include "H5DataType.h"
#include "H5DataSpace.h"
#include "H5private.h"
#include "H5File.h"
#include "H5Attribute.h"
#include "H5private.h" // for HDfree
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -46,7 +49,7 @@ namespace H5 {
///\brief Default constructor: Creates a stub attribute
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
Attribute::Attribute() : AbstractDs() {}
Attribute::Attribute() : AbstractDs(), IdComponent(), id(0) {}
//--------------------------------------------------------------------------
// Function: Attribute copy constructor
@@ -54,7 +57,11 @@ Attribute::Attribute() : AbstractDs() {}
///\param original - IN: Original Attribute object to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute::Attribute( const Attribute& original ) : AbstractDs( original ) {}
Attribute::Attribute(const Attribute& original) : AbstractDs(), IdComponent()
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: Attribute overloaded constructor
@@ -64,7 +71,10 @@ Attribute::Attribute( const Attribute& original ) : AbstractDs( original ) {}
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute::Attribute(const hid_t existing_id) : AbstractDs(existing_id) {}
Attribute::Attribute(const hid_t existing_id) : AbstractDs(), IdComponent()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: Attribute::write
@@ -86,23 +96,40 @@ void Attribute::write( const DataType& mem_type, const void *buf ) const
//--------------------------------------------------------------------------
// Function: Attribute::write
///\brief This is an overloaded member function, provided for convenience.
/// It writes a \a std::string to this attribute.
/// It writes a \a H5std_string to this attribute.
///\param mem_type - IN: Attribute datatype (in memory)
///\param strg - IN: Data to be written
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Apr, 2003
//--------------------------------------------------------------------------
void Attribute::write( const DataType& mem_type, const H5std_string& strg ) const
void Attribute::write(const DataType& mem_type, const H5std_string& strg) const
{
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
// Check if this attribute has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw AttributeIException("Attribute::write", "H5Tis_variable_str failed");
}
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
herr_t ret_value = 0;
herr_t ret_value = H5Awrite( id, mem_type.getId(), &strg_C );
if( ret_value < 0 )
{
throw AttributeIException("Attribute::write", "H5Awrite failed");
}
// Pass string in differently depends on variable or fixed length
if (!is_variable_len)
{
ret_value = H5Awrite(id, mem_type.getId(), strg_C);
}
else
{
// passing third argument by address
ret_value = H5Awrite(id, mem_type.getId(), &strg_C);
}
if (ret_value < 0)
{
throw AttributeIException("Attribute::write", "H5Awrite failed");
}
}
//--------------------------------------------------------------------------
@@ -118,35 +145,95 @@ void Attribute::read( const DataType& mem_type, void *buf ) const
herr_t ret_value = H5Aread( id, mem_type.getId(), buf );
if( ret_value < 0 )
{
throw AttributeIException("Attribute::read", "H5Aread failed");
throw AttributeIException("Attribute::read", "H5Aread failed");
}
}
//--------------------------------------------------------------------------
// Function: Attribute::read
///\brief This is an overloaded member function, provided for convenience.
/// It reads a \a std::string from this attribute.
/// It reads a \a H5std_string from this attribute.
///\param mem_type - IN: Attribute datatype (in memory)
///\param strg - IN: Buffer for read string
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Apr, 2003
// Modification
// 2006/12/9 - H5Aread allocates memory for character string
// buffer with malloc, therefore, no allocation here,
// but HDfree is needed. - BMR
// Mar 2008
// Corrected a misunderstanding that H5Aread would allocate
// space for the buffer. Obtained the attribute size and
// allocated memory properly. - BMR
// Apr 2009
// Used getInMemDataSize to get attribute data size. - BMR
// Jul 2009
// Divided into specific private functions for fixed- and
// variable-len string data: p_read_fixed_len and
// p_read_variable_len. This should improve readability.
//--------------------------------------------------------------------------
void Attribute::read( const DataType& mem_type, H5std_string& strg ) const
void Attribute::read(const DataType& mem_type, H5std_string& strg) const
{
char* strg_C; // temporary C-string for C API
// Check if this attribute has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw AttributeIException("Attribute::read", "H5Tis_variable_str failed");
}
// call C API to get the attribute string of chars
herr_t ret_value = H5Aread( id, mem_type.getId(), &strg_C);
if( ret_value < 0 )
{
throw AttributeIException("Attribute::read", "H5Aread failed");
}
strg = strg_C; // get 'string' from the C char*
HDfree(strg_C);
if (!is_variable_len) // string is fixed length
{
p_read_fixed_len(mem_type, strg);
}
else
{
p_read_variable_len(mem_type, strg);
}
}
//--------------------------------------------------------------------------
// Function: Attribute::getInMemDataSize
///\brief Gets the size in memory of the attribute's data.
///\return Size of data (in memory)
///\exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Apr 2009
//--------------------------------------------------------------------------
size_t Attribute::getInMemDataSize() const
{
char *func = "Attribute::getInMemDataSize";
// Get the data type of this attribute
hid_t mem_type_id = H5Aget_type(id);
if( mem_type_id < 0 )
{
throw AttributeIException(func, "H5Aget_type failed");
}
// Get the data type's size
hid_t native_type = H5Tget_native_type(mem_type_id, H5T_DIR_DEFAULT);
if (native_type < 0)
{
throw AttributeIException(func, "H5Tget_native_type failed");
}
size_t type_size = H5Tget_size(native_type);
if (type_size == 0)
{
throw AttributeIException(func, "H5Tget_size failed");
}
// Get number of elements of the attribute
hid_t space_id = H5Aget_space(id);
if (space_id < 0)
{
throw AttributeIException(func, "H5Aget_space failed");
}
hssize_t num_elements = H5Sget_simple_extent_npoints(space_id);
if (num_elements < 0)
{
throw AttributeIException(func, "H5Sget_simple_extent_npoints failed");
}
// Calculate and return the size of the data
size_t data_size = type_size * num_elements;
return(data_size);
}
//--------------------------------------------------------------------------
@@ -174,22 +261,19 @@ DataSpace Attribute::getSpace() const
}
//--------------------------------------------------------------------------
// Function: Attribute::p_get_type (private)
// Purpose Gets the datatype of this attribute.
// Return Id of the datatype
// Exception H5::AttributeIException
// Description
// This private function is used in AbstractDs.
// Programmer Binh-Minh Ribler - 2000
// Function: Attribute::getFileName
///\brief Gets the name of the file, in which this attribute belongs.
///\return File name
///\exception H5::IdComponentException
// Programmer Binh-Minh Ribler - Jul, 2004
//--------------------------------------------------------------------------
hid_t Attribute::p_get_type() const
H5std_string Attribute::getFileName() const
{
hid_t type_id = H5Aget_type( id );
if( type_id > 0 )
return( type_id );
else
{
throw AttributeIException("", "H5Aget_type failed");
try {
return(p_get_file_name());
}
catch (IdComponentException E) {
throw FileIException("Attribute::getFileName", E.getDetailMsg());
}
}
@@ -282,6 +366,132 @@ hsize_t Attribute::getStorageSize() const
return (storage_size);
}
//--------------------------------------------------------------------------
// Function: Attribute::getId
// Purpose: Get the id of this attribute
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t Attribute::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: Attribute::p_get_type (private)
// Purpose Gets the datatype of this attribute.
// Return Id of the datatype
// Exception H5::AttributeIException
// Description
// This private function is used in AbstractDs.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
hid_t Attribute::p_get_type() const
{
hid_t type_id = H5Aget_type( id );
if( type_id > 0 )
return( type_id );
else
{
throw AttributeIException("", "H5Aget_type failed");
}
}
//--------------------------------------------------------------------------
// Function: Attribute::p_read_fixed_len (private)
// brief Reads a fixed length \a H5std_string from an attribute.
// param mem_type - IN: Attribute datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Separated the fixed length case from the original
// Attribute::read
//--------------------------------------------------------------------------
void Attribute::p_read_fixed_len(const DataType& mem_type, H5std_string& strg) const
{
// Only allocate for fixed-len string.
// Get the size of the attribute's data
size_t attr_size = getInMemDataSize();
// If there is data, allocate buffer and read it.
if (attr_size > 0)
{
char *strg_C = new char[(size_t)attr_size+1];
herr_t ret_value = H5Aread(id, mem_type.getId(), strg_C);
if( ret_value < 0 )
{
delete []strg_C; // de-allocate for fixed-len string
throw AttributeIException("Attribute::read", "H5Aread failed");
}
// Get string from the C char* and release resource allocated locally
strg_C[attr_size] = '\0';
strg = strg_C;
delete []strg_C;
}
}
//--------------------------------------------------------------------------
// Function: Attribute::p_read_variable_len (private)
// brief Reads a variable length \a H5std_string from an attribute.
// param mem_type - IN: Attribute datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::AttributeIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Separated the variable length case from the original
// Attribute::read
//--------------------------------------------------------------------------
void Attribute::p_read_variable_len(const DataType& mem_type, H5std_string& strg) const
{
// Prepare and call C API to read attribute.
char *strg_C;
// Read attribute, no allocation for variable-len string; C library will
herr_t ret_value = H5Aread(id, mem_type.getId(), &strg_C);
if( ret_value < 0 )
{
throw AttributeIException("Attribute::read", "H5Aread failed");
}
// Get string from the C char* and release resource allocated by C API
strg = strg_C;
HDfree(strg_C);
}
//--------------------------------------------------------------------------
// Function: Attribute::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void Attribute::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw AttributeIException("Attribute::p_setId", close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: Attribute::close
///\brief Closes this attribute.
@@ -298,8 +508,10 @@ void Attribute::close()
{
throw AttributeIException("Attribute::close", "H5Aclose failed");
}
// reset the id because the attribute that it represents is now closed
id = 0;
// reset the id when the attribute that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}

View File

@@ -21,11 +21,14 @@
namespace H5 {
#endif
class H5_DLLCPP Attribute : public AbstractDs {
class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
public:
// Closes this attribute.
virtual void close();
// Gets the name of the file, in which this attribute belongs.
H5std_string getFileName() const;
// Gets the name of this attribute.
ssize_t getName( size_t buf_size, H5std_string& attr_name ) const;
H5std_string getName( size_t buf_size ) const; // returns name, not its length
@@ -35,7 +38,10 @@ class H5_DLLCPP Attribute : public AbstractDs {
virtual DataSpace getSpace() const;
// Returns the amount of storage size required for this attribute.
hsize_t getStorageSize() const;
virtual hsize_t getStorageSize() const;
// Returns the in memory size of this attribute's data.
virtual size_t getInMemDataSize() const;
// Reads data from this attribute.
void read( const DataType& mem_type, void *buf ) const;
@@ -45,11 +51,11 @@ class H5_DLLCPP Attribute : public AbstractDs {
void write(const DataType& mem_type, const void *buf ) const;
void write(const DataType& mem_type, const H5std_string& strg ) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("Attribute"); }
// Creates a copy of an existing attribute using the attribute id
Attribute( const hid_t attr_id );
// Creates a copy of an existing attribute using the attribute id
Attribute( const hid_t attr_id );
// Copy constructor: makes a copy of an existing Attribute object.
Attribute( const Attribute& original );
@@ -57,16 +63,29 @@ class H5_DLLCPP Attribute : public AbstractDs {
// Default constructor
Attribute();
// Gets the attribute id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this attribute.
virtual ~Attribute();
protected:
// Sets the attribute id.
virtual void p_setId(const hid_t new_id);
private:
hid_t id; // HDF5 attribute id
// This function contains the common code that is used by
// getTypeClass and various API functions getXxxType
// defined in AbstractDs for generic datatype and specific
// sub-types
virtual hid_t p_get_type() const;
// Reads variable or fixed len strings from this attribute.
void p_read_variable_len(const DataType& mem_type, H5std_string& strg) const;
void p_read_fixed_len(const DataType& mem_type, H5std_string& strg) const;
// do not inherit H5Object::iterateAttrs
int iterateAttrs() { return 0; }

View File

@@ -21,7 +21,6 @@
namespace H5 {
#endif
class Exception;
class ReferenceCounter;
class IdComponent;
class H5Object;
class PropList;

View File

@@ -31,6 +31,7 @@
#include "H5DataSet.h"
#include "H5File.h"
#include "H5Alltypes.h"
#include "H5private.h" // for HDstrcpy
// There are a few comments that are common to most of the functions
// defined in this file so they are listed here.
@@ -100,7 +101,7 @@ Group CommonFG::createGroup( const char* name, size_t size_hint ) const
// Function: CommonFG::createGroup
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group CommonFG::createGroup( const H5std_string& name, size_t size_hint ) const
@@ -138,7 +139,7 @@ Group CommonFG::openGroup( const char* name ) const
// Function: CommonFG::openGroup
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group CommonFG::openGroup( const H5std_string& name ) const
@@ -182,7 +183,7 @@ DataSet CommonFG::createDataSet( const char* name, const DataType& data_type, co
// Function: CommonFG::createDataSet
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet CommonFG::createDataSet( const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist ) const
@@ -217,7 +218,7 @@ DataSet CommonFG::openDataSet( const char* name ) const
// Function: CommonFG::openDataSet
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet CommonFG::openDataSet( const H5std_string& name ) const
@@ -239,11 +240,17 @@ DataSet CommonFG::openDataSet( const H5std_string& name ) const
///\par Description
/// Note that both names are interpreted relative to the
/// specified location.
/// For information on creating hard link and soft link, please
/// refer to the C layer Reference Manual at:
/// http://hdfgroup.org/HDF5/doc/RM/RM_H5L.html#Link-CreateHard and
/// http://hdfgroup.org/HDF5/doc/RM/RM_H5L.html#Link-CreateSoft
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5L APIs - BMR
//--------------------------------------------------------------------------
void CommonFG::link( H5L_type_t link_type, const char* curr_name, const char* new_name ) const
{
herr_t ret_value;
herr_t ret_value = -1;
switch(link_type) {
case H5L_TYPE_HARD:
@@ -259,8 +266,7 @@ void CommonFG::link( H5L_type_t link_type, const char* curr_name, const char* ne
break;
} /* end switch */
if( ret_value < 0 )
{
if( ret_value < 0 ) {
throwException("link", "creating link failed");
}
}
@@ -269,7 +275,7 @@ void CommonFG::link( H5L_type_t link_type, const char* curr_name, const char* ne
// Function: CommonFG::link
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a curr_name and \a new_name.
/// \c H5std_string for \a curr_name and \a new_name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::link( H5L_type_t link_type, const H5std_string& curr_name, const H5std_string& new_name ) const
@@ -283,6 +289,8 @@ void CommonFG::link( H5L_type_t link_type, const H5std_string& curr_name, const
///\param name - IN: Name of the object to be removed
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5L APIs - BMR
//--------------------------------------------------------------------------
void CommonFG::unlink( const char* name ) const
{
@@ -297,7 +305,7 @@ void CommonFG::unlink( const char* name ) const
// Function: CommonFG::unlink
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::unlink( const H5std_string& name ) const
@@ -315,8 +323,10 @@ void CommonFG::unlink( const H5std_string& name ) const
/// Exercise care in moving groups as it is possible to render
/// data in a file inaccessible with Group::move. Please refer
/// to the Group Interface in the HDF5 User's Guide at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/Groups.html
/// http://www.hdfgroup.org/HDF5/doc/UG/UG_frame09Groups.html
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5L APIs - BMR
//--------------------------------------------------------------------------
void CommonFG::move( const char* src, const char* dst ) const
{
@@ -331,7 +341,7 @@ void CommonFG::move( const char* src, const char* dst ) const
// Function: CommonFG::move
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a src and \a dst.
/// \c H5std_string for \a src and \a dst.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::move( const H5std_string& src, const H5std_string& dst ) const
@@ -350,7 +360,7 @@ void CommonFG::move( const H5std_string& src, const H5std_string& dst ) const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5G.html#Group-GetObjinfo
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5G.html#Group-GetObjinfo
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const char* name, hbool_t follow_link, H5G_stat_t& statbuf ) const
@@ -366,7 +376,7 @@ void CommonFG::getObjinfo( const char* name, hbool_t follow_link, H5G_stat_t& st
// Function: CommonFG::getObjinfo
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const H5std_string& name, hbool_t follow_link, H5G_stat_t& statbuf ) const
@@ -380,6 +390,7 @@ void CommonFG::getObjinfo( const H5std_string& name, hbool_t follow_link, H5G_st
/// It differs from the above functions in that it doesn't have
/// the paramemter \a follow_link.
// Programmer Binh-Minh Ribler - Nov, 2005
// Note: need to modify to use H5Oget_info and H5Lget_info - BMR
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const char* name, H5G_stat_t& statbuf ) const
{
@@ -394,7 +405,7 @@ void CommonFG::getObjinfo( const char* name, H5G_stat_t& statbuf ) const
// Function: CommonFG::getObjinfo
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - Nov, 2005
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const H5std_string& name, H5G_stat_t& statbuf ) const
@@ -414,23 +425,44 @@ void CommonFG::getObjinfo( const H5std_string& name, H5G_stat_t& statbuf ) const
//--------------------------------------------------------------------------
H5std_string CommonFG::getLinkval( const char* name, size_t size ) const
{
char* value_C = new char[size+1]; // temporary C-string for C API
H5L_info_t linkinfo;
char *value_C; // value in C string
size_t val_size = size;
H5std_string value = "";
herr_t ret_value;
herr_t ret_value = H5Lget_val( getLocId(), name, value_C, size, H5P_DEFAULT );
if( ret_value < 0 )
{
throwException("getLinkval", "H5Lget_val failed");
}
H5std_string value = H5std_string( value_C );
delete []value_C;
return( value );
// if user doesn't provide buffer size, determine it
if (size == 0)
{
ret_value = H5Lget_info(getLocId(), name, &linkinfo, H5P_DEFAULT);
if( ret_value < 0 )
{
throwException("getLinkval", "H5Lget_info to find buffer size failed");
}
val_size = linkinfo.u.val_size;
}
// if link has value, retrieve the value, otherwise, return null string
if (val_size > 0)
{
value_C = new char[val_size+1]; // temporary C-string for C API
ret_value = H5Lget_val(getLocId(), name, value_C, val_size, H5P_DEFAULT);
if( ret_value < 0 )
{
throwException("getLinkval", "H5Lget_val failed");
}
value = H5std_string(value_C);
delete []value_C;
}
return(value);
}
//--------------------------------------------------------------------------
// Function: CommonFG::getLinkval
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string CommonFG::getLinkval( const H5std_string& name, size_t size ) const
@@ -452,6 +484,11 @@ H5std_string CommonFG::getLinkval( const H5std_string& name, size_t size ) const
/// object header, e.g., data sets, groups, named data types,
/// and data spaces, but not symbolic links.
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2007: QAK modified to use H5O APIs; however the first parameter is
// no longer just file or group, this function should be moved
// to another class to accommodate attribute, dataset, and named
// datatype. - BMR
//--------------------------------------------------------------------------
void CommonFG::setComment( const char* name, const char* comment ) const
{
@@ -466,7 +503,7 @@ void CommonFG::setComment( const char* name, const char* comment ) const
// Function: CommonFG::setComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name and \a comment.
/// \c H5std_string for \a name and \a comment.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::setComment( const H5std_string& name, const H5std_string& comment ) const
@@ -480,6 +517,10 @@ void CommonFG::setComment( const H5std_string& name, const H5std_string& comment
///\param name - IN: Name of the object
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - May 2005
// 2007: QAK modified to use H5O APIs; however the first parameter is
// no longer just file or group, this function should be moved
// to another class to accommodate attribute, dataset, and named
// datatype. - BMR
//--------------------------------------------------------------------------
void CommonFG::removeComment(const char* name) const
{
@@ -494,7 +535,7 @@ void CommonFG::removeComment(const char* name) const
// Function: CommonFG::removeComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - May 2005
//--------------------------------------------------------------------------
void CommonFG::removeComment(const H5std_string& name) const
@@ -504,29 +545,40 @@ void CommonFG::removeComment(const H5std_string& name) const
//--------------------------------------------------------------------------
// Function: CommonFG::getComment
///\brief Retrieves comment for the specified object.
///\brief Retrieves comment for the specified object and its comment's
/// length.
///\param name - IN: Name of the object
///\param bufsize - IN: Length of the comment to retrieve
///\return Comment string
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - May 2005
// Programmer Binh-Minh Ribler - 2000
// 2007: QAK modified to use H5O APIs; however the first parameter is
// no longer just file or group, this function should be moved
// to another class to accommodate attribute, dataset, and named
// datatype. - BMR
//--------------------------------------------------------------------------
H5std_string CommonFG::getComment (const H5std_string& name) const
H5std_string CommonFG::getComment( const char* name, size_t bufsize ) const
{
size_t bufsize = 256; // anticipating the comment's length
// bufsize is default to 256
// temporary variable
hid_t loc_id = getLocId(); // temporary variable
// temporary C-string for the object's comment
char* comment_C = new char[bufsize+1];
herr_t ret_value = H5Oget_comment_by_name(loc_id, name.c_str(), comment_C, bufsize, H5P_DEFAULT);
// temporary C-string for the object's comment; bufsize already including
// null character
char* comment_C = new char[bufsize];
ssize_t ret_value = H5Oget_comment_by_name(loc_id, name, comment_C, bufsize, H5P_DEFAULT);
// if the actual length of the comment is longer than the anticipated
// value, then call H5Oget_comment_by_name again with the correct value
if (ret_value > bufsize)
// if the actual length of the comment is longer than bufsize and bufsize
// was the default value, i.e., not given by the user, then call
// H5Oget_comment_by_name again with the correct value.
// If the call to H5Oget_comment_by_name returned an error, skip this block
// and throw an exception below.
if (ret_value >= 0 && (size_t)ret_value > bufsize && bufsize == 256)
{
bufsize = ret_value;
size_t new_size = ret_value;
delete []comment_C;
comment_C = new char[bufsize+1];
ret_value = H5Oget_comment_by_name(loc_id, name.c_str(), comment_C, bufsize, H5P_DEFAULT);
comment_C = new char[new_size]; // new_size including null terminator
ret_value = H5Oget_comment_by_name(loc_id, name, comment_C, new_size, H5P_DEFAULT);
}
// if H5Oget_comment_by_name returns SUCCEED, return the string comment,
@@ -540,38 +592,11 @@ H5std_string CommonFG::getComment (const H5std_string& name) const
return (comment);
}
//--------------------------------------------------------------------------
// Function: CommonFG::getComment
///\brief Retrieves comment for the specified object and its comment's
/// length.
///\param name - IN: Name of the object
///\param bufsize - IN: Length of the comment to retrieve
///\return Comment string
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string CommonFG::getComment( const char* name, size_t bufsize ) const
{
// temporary C-string for the object's comment
char* comment_C = new char[bufsize+1];
herr_t ret_value = H5Oget_comment_by_name( getLocId(), name, comment_C, bufsize, H5P_DEFAULT );
// if H5Oget_comment_by_name returns SUCCEED, return the string comment
if( ret_value < 0 )
{
throwException("getComment", "H5Oget_comment_by_name failed");
}
H5std_string comment = H5std_string(comment_C);
delete []comment_C;
return( comment );
}
//--------------------------------------------------------------------------
// Function: CommonFG::getComment
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string CommonFG::getComment( const H5std_string& name, size_t bufsize ) const
@@ -608,7 +633,7 @@ void CommonFG::mount( const char* name, H5File& child, PropList& plist ) const
// Function: CommonFG::mount
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::mount( const H5std_string& name, H5File& child, PropList& plist ) const
@@ -639,7 +664,7 @@ void CommonFG::unmount( const char* name ) const
// Function: CommonFG::unmount
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::unmount( const H5std_string& name ) const
@@ -674,7 +699,7 @@ DataType CommonFG::openDataType( const char* name ) const
// Function: CommonFG::openDataType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType CommonFG::openDataType( const H5std_string& name ) const
@@ -709,7 +734,7 @@ ArrayType CommonFG::openArrayType( const char* name ) const
// Function: CommonFG::openArrayType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
ArrayType CommonFG::openArrayType( const H5std_string& name ) const
@@ -744,7 +769,7 @@ CompType CommonFG::openCompType( const char* name ) const
// Function: CommonFG::openCompType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
CompType CommonFG::openCompType( const H5std_string& name ) const
@@ -779,7 +804,7 @@ EnumType CommonFG::openEnumType( const char* name ) const
// Function: CommonFG::openEnumType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
EnumType CommonFG::openEnumType( const H5std_string& name ) const
@@ -814,7 +839,7 @@ IntType CommonFG::openIntType( const char* name ) const
// Function: CommonFG::openIntType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IntType CommonFG::openIntType( const H5std_string& name ) const
@@ -849,7 +874,7 @@ FloatType CommonFG::openFloatType( const char* name ) const
// Function: CommonFG::openFloatType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
FloatType CommonFG::openFloatType( const H5std_string& name ) const
@@ -884,7 +909,7 @@ StrType CommonFG::openStrType( const char* name ) const
// Function: CommonFG::openStrType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
StrType CommonFG::openStrType( const H5std_string& name ) const
@@ -919,7 +944,7 @@ VarLenType CommonFG::openVarLenType( const char* name ) const
// Function: CommonFG::openVarLenType
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
VarLenType CommonFG::openVarLenType( const H5std_string& name ) const
@@ -955,7 +980,7 @@ int CommonFG::iterateElems( const char* name, int *idx, H5G_iterate_t op , void*
// Function: CommonFG::iterateElems
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
/// \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int CommonFG::iterateElems( const H5std_string& name, int *idx, H5G_iterate_t op , void* op_data )
@@ -1034,10 +1059,27 @@ H5std_string CommonFG::getObjnameByIdx(hsize_t idx) const
/// each time the group is opened.
// Programmer Binh-Minh Ribler - January, 2003
//--------------------------------------------------------------------------
ssize_t CommonFG::getObjnameByIdx(hsize_t idx, char* name, size_t size) const
{
ssize_t name_len = H5Lget_name_by_idx(getLocId(), ".", H5_INDEX_NAME, H5_ITER_INC, idx, name, size, H5P_DEFAULT);
if(name_len < 0)
{
throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
}
return (name_len);
}
//--------------------------------------------------------------------------
// Function: CommonFG::getObjnameByIdx
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes an
/// \c std::string for \a name.
// Programmer Binh-Minh Ribler - January, 2003
//--------------------------------------------------------------------------
ssize_t CommonFG::getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size) const
{
char* name_C = new char[size];
ssize_t name_len = H5Lget_name_by_idx(getLocId(), ".", H5_INDEX_NAME, H5_ITER_INC, idx, name_C, size, H5P_DEFAULT);
ssize_t name_len = getObjnameByIdx(idx, name_C, size);
if(name_len < 0)
{
throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
@@ -1071,7 +1113,35 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx) const
// Function: CommonFG::getObjTypeByIdx
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function because it also provides
/// the returned object type in text.
/// the returned object type in text (char*)
///\param idx - IN: Transient index of the object
///\param type_name - IN: Object type in text
///\return Object type
///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - May, 2010
//--------------------------------------------------------------------------
H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx, char* type_name) const
{
H5G_obj_t obj_type = H5Gget_objtype_by_idx(getLocId(), idx);
switch (obj_type)
{
case H5G_LINK: HDstrcpy(type_name, "symbolic link"); break;
case H5G_GROUP: HDstrcpy(type_name, "group"); break;
case H5G_DATASET: HDstrcpy(type_name, "dataset"); break;
case H5G_TYPE: HDstrcpy(type_name, "datatype"); break;
case H5G_UNKNOWN:
default:
{
throwException("getObjTypeByIdx", "H5Gget_objtype_by_idx failed");
}
}
return (obj_type);
}
//--------------------------------------------------------------------------
// Function: CommonFG::getObjTypeByIdx
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function because it also provides
/// the returned object type in text (H5std_string&)
///\param idx - IN: Transient index of the object
///\param type_name - IN: Object type in text
///\return Object type

View File

@@ -50,9 +50,8 @@ class H5_DLLCPP CommonFG {
DataSet openDataSet(const H5std_string& name) const;
// Retrieves comment for the HDF5 object specified by its name.
H5std_string getComment(const H5std_string& name) const;
H5std_string getComment(const char* name, size_t bufsize) const;
H5std_string getComment(const H5std_string& name, size_t bufsize) const;
H5std_string getComment(const char* name, size_t bufsize=256) const;
H5std_string getComment(const H5std_string& name, size_t bufsize=256) const;
// Removes the comment for the HDF5 object specified by its name.
void removeComment(const char* name) const;
@@ -62,22 +61,24 @@ class H5_DLLCPP CommonFG {
void setComment(const char* name, const char* comment) const;
void setComment(const H5std_string& name, const H5std_string& comment) const;
// Returns the name of the HDF5 object that the symbolic link points to.
H5std_string getLinkval(const char* name, size_t size) const;
H5std_string getLinkval(const H5std_string& name, size_t size) const;
// Returns the value of a symbolic link.
H5std_string getLinkval(const char* link_name, size_t size=0) const;
H5std_string getLinkval(const H5std_string& link_name, size_t size=0) const;
// Returns the number of objects in this group.
hsize_t getNumObjs() const;
// Retrieves the name of an object in this group, given the
// object's index.
ssize_t getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size) const;
H5std_string getObjnameByIdx(hsize_t idx) const;
ssize_t getObjnameByIdx(hsize_t idx, char* name, size_t size) const;
ssize_t getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size) const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Returns the type of an object in this group, given the
// object's index.
H5G_obj_t getObjTypeByIdx(hsize_t idx) const;
H5G_obj_t getObjTypeByIdx(hsize_t idx, char* type_name) const;
H5G_obj_t getObjTypeByIdx(hsize_t idx, H5std_string& type_name) const;
// Returns information about an HDF5 object, given by its name,

View File

@@ -88,7 +88,7 @@ class H5_DLLCPP CompType : public DataType {
// Recursively removes padding from within this compound datatype.
void pack() const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("CompType"); }
// Default constructor

View File

@@ -44,9 +44,9 @@
#include "H5Group.h"
#include "H5File.h"
#include "H5Library.h"
/* Some C++ compilers do not have offsetof macro; define to bypass the problem
- BMR- -EIP- 2007/08/01
- BMR- -EIP- 2007/08/01
*/
#ifndef H5_CXX_HAVE_OFFSETOF
#ifdef HOFFSET

View File

@@ -28,11 +28,16 @@
#include "H5PropList.h"
#include "H5DxferProp.h"
#include "H5DcreatProp.h"
#include "H5FaccProp.h"
#include "H5FcreatProp.h"
#include "H5CommonFG.h"
#include "H5DataType.h"
#include "H5DataSpace.h"
#include "H5AbstractDs.h"
#include "H5File.h"
#include "H5Attribute.h"
#include "H5DataSet.h"
#include "H5private.h" // for HDfree
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -47,7 +52,7 @@ namespace H5 {
///\brief Default constructor: creates a stub DataSet.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet::DataSet() : AbstractDs() {}
DataSet::DataSet() : AbstractDs(), H5Object(), id(0) {}
//--------------------------------------------------------------------------
// Function: DataSet overloaded constructor
@@ -55,7 +60,10 @@ DataSet::DataSet() : AbstractDs() {}
///\param existing_id - IN: Id of an existing dataset
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet::DataSet(const hid_t existing_id) : AbstractDs(existing_id) {}
DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: DataSet copy constructor
@@ -63,23 +71,83 @@ DataSet::DataSet(const hid_t existing_id) : AbstractDs(existing_id) {}
///\param original - IN: DataSet instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet::DataSet( const DataSet& original ) : AbstractDs( original ) {}
DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: DataSet overload constructor - dereference
///\brief Given a reference to some object, returns that dataset
/// obj - IN: Dataset reference object is in or location of
/// object that the dataset is located within.
///\brief Given a reference, ref, to an hdf5 dataset, creates a
/// DataSet object
///\param obj - IN: Dataset reference object is in or location of
/// object that the dataset is located within.
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::DataSetIException
///\parDescription
/// \c obj can be DataSet, Group, H5File, or named DataType, that
///\par Description
/// \c obj can be DataSet, Group, H5File, or named DataType, that
/// is a datatype that has been named by DataType::commit.
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataSet::DataSet(IdComponent& obj, void* ref) : AbstractDs()
DataSet::DataSet(H5Object& obj, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object()
{
IdComponent::dereference(obj, ref);
try {
id = p_dereference(obj.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by object",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 dataset, creates a
/// DataSet object
///\param h5file - IN: Location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataSet::DataSet(H5File& h5file, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object()
{
try {
id = p_dereference(h5file.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by HDF5 file",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 dataset, creates a
/// DataSet object
///\param attr - IN: Specifying location where the referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataSet::DataSet(Attribute& attr, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object()
{
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataSet constructor - located by attribute",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
@@ -152,6 +220,53 @@ hsize_t DataSet::getStorageSize() const
return(storage_size);
}
//--------------------------------------------------------------------------
// Function: DataSet::getInMemDataSize
///\brief Gets the size in memory of the dataset's data.
///\return Size of data (in memory)
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Apr 2009
//--------------------------------------------------------------------------
size_t DataSet::getInMemDataSize() const
{
char *func = "DataSet::getInMemDataSize";
// Get the data type of this dataset
hid_t mem_type_id = H5Dget_type(id);
if( mem_type_id < 0 )
{
throw DataSetIException(func, "H5Dget_type failed");
}
// Get the data type's size
hid_t native_type = H5Tget_native_type(mem_type_id, H5T_DIR_DEFAULT);
if (native_type < 0)
{
throw DataSetIException(func, "H5Tget_native_type failed");
}
size_t type_size = H5Tget_size(native_type);
if (type_size == 0)
{
throw DataSetIException(func, "H5Tget_size failed");
}
// Get number of elements of the dataset
hid_t space_id = H5Dget_space(id); // first get its data space
if (space_id < 0)
{
throw DataSetIException(func, "H5Dget_space failed");
}
hssize_t num_elements = H5Sget_simple_extent_npoints(space_id);
if (num_elements < 0)
{
throw DataSetIException(func, "H5Sget_simple_extent_npoints failed");
}
// Calculate and return the size of the data
size_t data_size = type_size * num_elements;
return(data_size);
}
//--------------------------------------------------------------------------
// Function: DataSet::getOffset
///\brief Returns the address of this dataset in the file.
@@ -296,21 +411,46 @@ void DataSet::read( void* buf, const DataType& mem_type, const DataSpace& mem_sp
//--------------------------------------------------------------------------
// Function: DataSet::read
///\brief This is an overloaded member function, provided for convenience.
/// It takes a reference to a \c std::string for the buffer.
/// It takes a reference to a \c H5std_string for the buffer.
///\param buf - IN: Buffer for read data
///\param mem_type - IN: Memory datatype
///\param mem_space - IN: Memory dataspace
///\param file_space - IN: Dataset's dataspace in the file
///\param xfer_plist - IN: Transfer property list for this I/O operation
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - 2000
// Modification
// Jul 2009
// Follow the change to Attribute::read and use the following
// private functions to read datasets with fixed- and
// variable-length string:
// DataSet::p_read_fixed_len and
// DataSet::p_read_variable_len
//--------------------------------------------------------------------------
void DataSet::read( H5std_string& strg, const DataType& mem_type, const DataSpace& mem_space, const DataSpace& file_space, const DSetMemXferPropList& xfer_plist ) const
void DataSet::read(H5std_string& strg, const DataType& mem_type, const DataSpace& mem_space, const DataSpace& file_space, const DSetMemXferPropList& xfer_plist) const
{
// Allocate C character string for reading
size_t size = mem_type.getSize();
char* strg_C = new char[size+1]; // temporary C-string for C API
// Check if this dataset has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw DataSetIException("DataSet::read", "H5Tis_variable_str failed");
}
// Use the overloaded member to read
read(strg_C, mem_type, mem_space, file_space, xfer_plist);
// Obtain identifiers for C API
hid_t mem_type_id = mem_type.getId();
hid_t mem_space_id = mem_space.getId();
hid_t file_space_id = file_space.getId();
hid_t xfer_plist_id = xfer_plist.getId();
// Get the String and clean up
strg = strg_C;
delete []strg_C;
if (!is_variable_len) // only allocate for fixed-len string
{
p_read_fixed_len(mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg);
}
else
{
p_read_variable_len(mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg);
}
}
//--------------------------------------------------------------------------
@@ -347,17 +487,48 @@ void DataSet::write( const void* buf, const DataType& mem_type, const DataSpace&
//--------------------------------------------------------------------------
// Function: DataSet::write
///\brief This is an overloaded member function, provided for convenience.
/// It takes a reference to a \c std::string for the buffer.
/// It takes a reference to a \c H5std_string for the buffer.
// Programmer Binh-Minh Ribler - 2000
// Modification
// Jul 2009
// Modified to pass the buffer into H5Dwrite properly depending
// whether the dataset has variable- or fixed-length string.
//--------------------------------------------------------------------------
void DataSet::write( const H5std_string& strg, const DataType& mem_type, const DataSpace& mem_space, const DataSpace& file_space, const DSetMemXferPropList& xfer_plist ) const
{
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
// Check if this attribute has variable-len string or fixed-len string and
// proceed appropriately.
htri_t is_variable_len = H5Tis_variable_str(mem_type.getId());
if (is_variable_len < 0)
{
throw DataSetIException("DataSet::write", "H5Tis_variable_str failed");
}
// Use the overloaded member
write(strg_C, mem_type, mem_space, file_space, xfer_plist);
// Obtain identifiers for C API
hid_t mem_type_id = mem_type.getId();
hid_t mem_space_id = mem_space.getId();
hid_t file_space_id = file_space.getId();
hid_t xfer_plist_id = xfer_plist.getId();
// Convert string to C-string
const char* strg_C;
strg_C = strg.c_str(); // strg_C refers to the contents of strg as a C-str
herr_t ret_value = 0;
// Pass string in differently depends on variable or fixed length
if (!is_variable_len)
{
ret_value = H5Dwrite( id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg_C );
}
else
{
// passing string argument by address
ret_value = H5Dwrite( id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, &strg_C );
}
if (ret_value < 0)
{
throw DataSetIException("DataSet::write", "H5Dwrite failed");
}
}
//--------------------------------------------------------------------------
@@ -400,7 +571,7 @@ int DataSet::iterateElems( void* buf, const DataType& type, const DataSpace& spa
/// For more information, please see the Description section in
/// C layer Reference Manual at:
///\par
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5D.html#Dataset-Extend
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5D.html#Dataset-Extend
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSet::extend( const hsize_t* size ) const
@@ -455,65 +626,19 @@ void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space)
}
}
//--------------------------------------------------------------------------
// Function: DataSet::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use
/// DataSet::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataSet::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw DataSetIException("DataSet::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataSet::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataSet::Reference(const char* name) const
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw DataSetIException("DataSet::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataSet::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataSet::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataSet::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: DataSet::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference.
///\param ref - IN: Reference to query
///\return An object type, which can be one of the following:
/// \li \c H5G_LINK (0) \tObject is a symbolic link.
/// \li \c H5G_GROUP (1) \tObject is a group.
/// \li \c H5G_DATASET (2) \tObject is a dataset.
/// \li \c H5G_TYPE Object (3) \tis a named datatype
/// \li \c H5G_LINK (0) - Object is a symbolic link.
/// \li \c H5G_GROUP (1) - Object is a group.
/// \li \c H5G_DATASET (2) - Object is a dataset.
/// \li \c H5G_TYPE (3) - Object is a named datatype
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
@@ -531,9 +656,9 @@ H5G_obj_t DataSet::getObjType(void *ref, H5R_type_t ref_type) const
//--------------------------------------------------------------------------
// Function: DataSet::getRegion
///\brief Retrieves a dataspace with the region pointed to selected.
///\param ref - IN: Reference to get region of
///\param ref_type - IN: Type of reference to get region of - default
/// to H5R_DATASET_REGION
///\param ref - IN: Reference to get region of
///\return DataSpace instance
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - May, 2004
@@ -549,6 +674,116 @@ DataSpace DataSet::getRegion(void *ref, H5R_type_t ref_type) const
}
}
//--------------------------------------------------------------------------
// Function: DataSet::getId
///\brief Get the id of this dataset.
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDs and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t DataSet::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: DataSet::p_read_fixed_len (private)
// brief Reads a fixed length \a H5std_string from an dataset.
// param mem_type - IN: DataSet datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Added in follow to the change in Attribute::read
//--------------------------------------------------------------------------
void DataSet::p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const
{
// Only allocate for fixed-len string.
// Get the size of the dataset's data
size_t attr_size = getInMemDataSize();
// If there is data, allocate buffer and read it.
if (attr_size > 0)
{
char *strg_C = NULL;
strg_C = new char [(size_t)attr_size+1];
herr_t ret_value = H5Dread(id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, strg_C);
if( ret_value < 0 )
{
delete []strg_C; // de-allocate for fixed-len string
throw DataSetIException("DataSet::read", "H5Dread failed for fixed length string");
}
// Get string from the C char* and release resource allocated locally
strg = strg_C;
delete []strg_C;
}
}
//--------------------------------------------------------------------------
// Function: DataSet::p_read_variable_len (private)
// brief Reads a variable length \a H5std_string from an dataset.
// param mem_type - IN: DataSet datatype (in memory)
// param strg - IN: Buffer for read string
// exception H5::DataSetIException
// Programmer Binh-Minh Ribler - Jul, 2009
// Modification
// Jul 2009
// Added in follow to the change in Attribute::read
//--------------------------------------------------------------------------
void DataSet::p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const
{
// Prepare and call C API to read dataset.
char *strg_C;
// Read dataset, no allocation for variable-len string; C library will
herr_t ret_value = H5Dread(id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, &strg_C);
if( ret_value < 0 )
{
throw DataSetIException("DataSet::read", "H5Dread failed for variable length string");
}
// Get string from the C char* and release resource allocated by C API
strg = strg_C;
HDfree(strg_C);
}
//--------------------------------------------------------------------------
// Function: DataSet::p_setId (private)
///\brief Sets the identifier of this dataset to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSet::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw DataSetIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
// increment the reference counter of the new id
//incRefCount();
}
//--------------------------------------------------------------------------
// Function: DataSet::close
///\brief Closes this dataset.
@@ -565,8 +800,10 @@ void DataSet::close()
{
throw DataSetIException("DataSet::close", "H5Dclose failed");
}
// reset the id because the dataset that it represents is now closed
id = 0;
// reset the id when the dataset that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}

View File

@@ -23,7 +23,7 @@
namespace H5 {
#endif
class H5_DLLCPP DataSet : public AbstractDs {
class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
public:
// Close this dataset.
virtual void close();
@@ -49,7 +49,10 @@ class H5_DLLCPP DataSet : public AbstractDs {
void getSpaceStatus(H5D_space_status_t& status) const;
// Returns the amount of storage size required for this dataset.
hsize_t getStorageSize() const;
virtual hsize_t getStorageSize() const;
// Returns the in memory size of this attribute's data.
virtual size_t getInMemDataSize() const;
// Returns the number of bytes required to store VL data.
hsize_t getVlenBufSize( DataType& type, DataSpace& space ) const;
@@ -81,19 +84,13 @@ class H5_DLLCPP DataSet : public AbstractDs {
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Creates a reference to a named Hdf5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Creates a reference to a named Hdf5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("DataSet"); }
// Creates a dataset by way of dereference.
DataSet(IdComponent& obj, void* ref);
DataSet(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataSet(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataSet(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// Default constructor.
DataSet();
@@ -104,15 +101,30 @@ class H5_DLLCPP DataSet : public AbstractDs {
// Creates a copy of an existing DataSet using its id.
DataSet(const hid_t existing_id);
// Gets the dataset id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this dataset.
virtual ~DataSet();
private:
hid_t id; // HDF5 dataset id
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// This function contains the common code that is used by
// getTypeClass and various API functions getXxxType
// defined in AbstractDs for generic datatype and specific
// sub-types
virtual hid_t p_get_type() const;
// Reads variable or fixed len strings from this dataset.
void p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
void p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
protected:
// Sets the dataset id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -47,7 +47,7 @@ const DataSpace DataSpace::ALL( H5S_ALL );
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace( H5S_class_t type ) : IdComponent(0)
DataSpace::DataSpace(H5S_class_t type) : IdComponent()
{
id = H5Screate( type );
if( id < 0 )
@@ -65,7 +65,7 @@ DataSpace::DataSpace( H5S_class_t type ) : IdComponent(0)
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) : IdComponent(0)
DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) : IdComponent()
{
id = H5Screate_simple( rank, dims, maxdims );
if( id < 0 )
@@ -82,7 +82,10 @@ DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) :
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace(const hid_t existing_id) : IdComponent(existing_id) {}
DataSpace::DataSpace(const hid_t existing_id) : IdComponent()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: DataSpace copy constructor
@@ -90,7 +93,11 @@ DataSpace::DataSpace(const hid_t existing_id) : IdComponent(existing_id) {}
///\param original - IN: DataSpace object to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSpace::DataSpace( const DataSpace& original ) : IdComponent( original ) {}
DataSpace::DataSpace(const DataSpace& original) : IdComponent(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: DataSpace::copy
@@ -401,7 +408,7 @@ hssize_t DataSpace::getSelectElemNpoints () const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectElemPointList
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectElemPointList
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::getSelectElemPointlist ( hsize_t startpoint, hsize_t numpoints, hsize_t *buf ) const
@@ -425,7 +432,7 @@ void DataSpace::getSelectElemPointlist ( hsize_t startpoint, hsize_t numpoints,
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectBounds
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectBounds
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::getSelectBounds ( hsize_t* start, hsize_t* end ) const
@@ -451,7 +458,7 @@ void DataSpace::getSelectBounds ( hsize_t* start, hsize_t* end ) const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectElements
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectElements
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::selectElements ( H5S_seloper_t op, const size_t num_elements, const hsize_t *coord) const
@@ -533,7 +540,7 @@ bool DataSpace::selectValid () const
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5S.html#Dataspace-SelectHyperslab
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectHyperslab
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::selectHyperslab( H5S_seloper_t op, const hsize_t *count, const hsize_t *start, const hsize_t *stride, const hsize_t *block ) const
@@ -547,6 +554,47 @@ void DataSpace::selectHyperslab( H5S_seloper_t op, const hsize_t *count, const h
}
}
//--------------------------------------------------------------------------
// Function: DataSpace::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t DataSpace::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: DataSpace::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataSpace::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw DataSpaceIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: DataSpace::close
///\brief Closes this dataspace.
@@ -564,8 +612,10 @@ void DataSpace::close()
{
throw DataSpaceIException("DataSpace::close", "H5Sclose failed");
}
// reset the id because the dataspace that it represents is now closed
id = 0;
// reset the id when the dataspace that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -583,8 +633,7 @@ DataSpace::~DataSpace()
{
try {
close();
}
catch (Exception close_error) {
} catch (Exception close_error) {
cerr << "DataSpace::~DataSpace - " << close_error.getDetailMsg() << endl;
}
}

View File

@@ -103,7 +103,7 @@ class H5_DLLCPP DataSpace : public IdComponent {
// Sets or resets the size of this dataspace.
void setExtentSimple( int rank, const hsize_t *current_size, const hsize_t *maximum_size = NULL ) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("DataSpace"); }
// Creates a DataSpace object using an existing dataspace id.
@@ -112,8 +112,18 @@ class H5_DLLCPP DataSpace : public IdComponent {
// Copy constructor: makes a copy of the original DataSpace object.
DataSpace(const DataSpace& original);
// Gets the dataspace id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this dataspace.
virtual ~DataSpace();
private:
hid_t id; // HDF5 dataspace id
protected:
// Sets the dataspace id.
virtual void p_setId(const hid_t new_id);
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -38,6 +38,7 @@
#include "H5AbstractDs.h"
#include "H5DataSet.h"
#include "H5File.h"
#include "H5Attribute.h"
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -51,8 +52,6 @@ namespace H5 {
// Function: DataType overloaded constructor
///\brief Creates a datatype using an existing datatype's id
///\param existing_id - IN: Id of the existing datatype
///\param predefined - IN: Indicates whether or not this datatype is
/// a predefined datatype; default to \c false
// Description
// Constructor creates a copy of an existing DataType using
// its id. The argument "predefined" is default to false;
@@ -62,7 +61,10 @@ namespace H5 {
// - BMR 5/2004
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType(const hid_t existing_id) : H5Object(existing_id) {}
DataType::DataType(const hid_t existing_id) : H5Object()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: DataType overloaded constructor
@@ -84,17 +86,74 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object()
//--------------------------------------------------------------------------
// Function: DataType overload constructor - dereference
///\brief Given a reference to some object, returns that datatype
///\param obj - IN: Location reference object is in
///\brief Given a reference, ref, to an hdf5 group, creates a
/// DataType object
///\param obj - IN: Specifying location referenced object is in
///\param ref - IN: Reference pointer
///\parDescription
/// \c obj can be DataSet, Group, H5File, or named DataType, that
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
///\par Description
/// \c obj can be DataSet, Group, or named DataType, that
/// is a datatype that has been named by DataType::commit.
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataType::DataType(IdComponent& obj, void* ref) : H5Object()
DataType::DataType(H5Object& obj, const void* ref, H5R_type_t ref_type) : H5Object()
{
IdComponent::dereference(obj, ref);
try {
id = p_dereference(obj.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an H5Object",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a
/// DataType object
///\param h5file - IN: Location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataType::DataType(H5File& h5file, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
id = p_dereference(h5file.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an H5File",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a
/// DataType object
///\param attr - IN: Specifying location where the referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// Jul, 2008
// Added for application convenience.
//--------------------------------------------------------------------------
DataType::DataType(Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("DataType constructor - located by an Attribute",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
@@ -102,14 +161,18 @@ DataType::DataType(IdComponent& obj, void* ref) : H5Object()
///\brief Default constructor: Creates a stub datatype
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType() : H5Object() {}
DataType::DataType() : H5Object(), id(0) {}
//--------------------------------------------------------------------------
// Function: DataType copy constructor
///\brief Copy constructor: makes a copy of the original DataType object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataType::DataType(const DataType& original) : H5Object(original) {}
DataType::DataType(const DataType& original) : H5Object(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: DataType::copy
@@ -142,10 +205,10 @@ void DataType::copy( const DataType& like_type )
//--------------------------------------------------------------------------
// Function: DataType::copy
///\brief Copies the datatype of the given dataset to this datatype object
///\param dset - IN: Dataset
///\param dset - IN: Dataset
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - Jan, 2007
///\parDescription
///\par Description
/// The resulted dataset will be transient and modifiable.
//--------------------------------------------------------------------------
void DataType::copy(const DataSet& dset)
@@ -210,7 +273,7 @@ bool DataType::operator==(const DataType& compared_type ) const
// Function: DataType::p_commit (private)
//\brief Commits a transient datatype to a file, creating a new
// named datatype
//\param loc_id - IN: The id of either a file, group, dataset, named
//\param loc_id - IN: The id of either a file, group, dataset, named
// datatype, or attribute.
//\param name - IN: Name of the datatype
//\exception H5::DataTypeIException
@@ -452,7 +515,7 @@ DataType DataType::getSuper() const
///\exception H5::DataTypeIException
///\par Description
/// For more information, please see:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-Register
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-Register
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataType::registerFunc( H5T_pers_t pers, const char* name, const DataType& dest, H5T_conv_t func ) const
@@ -616,52 +679,6 @@ bool DataType::isVariableStr() const
}
}
//--------------------------------------------------------------------------
// Function: DataType::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataType::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataType::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw DataTypeIException(inMemFunc("Reference"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataType::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataType::Reference(const char* name) const
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw DataTypeIException(inMemFunc("Reference"), E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: DataType::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// DataType::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* DataType::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: DataType::getObjType
@@ -707,6 +724,47 @@ DataSpace DataType::getRegion(void *ref, H5R_type_t ref_type) const
}
}
//--------------------------------------------------------------------------
// Function: DataType::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t DataType::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: DataType::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DataType::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw DataTypeIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: DataType::close
///\brief Closes the datatype if it is not a predefined type.
@@ -723,8 +781,10 @@ void DataType::close()
{
throw DataTypeIException(inMemFunc("close"), "H5Tclose failed");
}
// reset the id because the datatype that it represents is now closed
id = 0;
// reset the id when the datatype that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -740,14 +800,12 @@ void DataType::close()
//--------------------------------------------------------------------------
DataType::~DataType()
{
try {
close();
}
catch (Exception close_error) {
cerr << inMemFunc("~DataType - ") << close_error.getDetailMsg() << endl;
}
try {
close();
} catch (Exception close_error) {
cerr << inMemFunc("~DataType - ") << close_error.getDetailMsg() << endl;
}
}
#ifndef H5_NO_NAMESPACE
} // end namespace
#endif

View File

@@ -30,7 +30,9 @@ class H5_DLLCPP DataType : public H5Object {
DataType( const DataType& original );
// Creates a datatype by way of dereference.
DataType(IdComponent& obj, void* ref);
DataType(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataType(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
DataType(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// Closes this datatype.
virtual void close();
@@ -99,14 +101,6 @@ class H5_DLLCPP DataType : public H5Object {
// Checks whether this datatype is a variable-length string.
bool isVariableStr() const;
// Creates a reference to a named HDF5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const; // will be obsolete
// Creates a reference to a named HDF5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t getObjType(void *ref, H5R_type_t ref_type = H5R_OBJECT) const;
@@ -115,7 +109,7 @@ class H5_DLLCPP DataType : public H5Object {
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("DataType"); }
// Creates a copy of an existing DataType using its id
@@ -124,8 +118,18 @@ class H5_DLLCPP DataType : public H5Object {
// Default constructor
DataType();
// Gets the datatype id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this datatype.
virtual ~DataType();
protected:
hid_t id; // HDF5 datatype id
// Sets the datatype id.
virtual void p_setId(const hid_t new_id);
private:
void p_commit(hid_t loc_id, const char* name);
};

View File

@@ -54,7 +54,7 @@ DSetCreatPropList::DSetCreatPropList( const DSetCreatPropList& orig ) : PropList
/// existing dataset creation property list.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DSetCreatPropList::DSetCreatPropList(const hid_t plist_id) : PropList( plist_id ) {}
DSetCreatPropList::DSetCreatPropList(const hid_t plist_id) : PropList(plist_id) {}
//--------------------------------------------------------------------------
// Function: DSetCreatPropList::setChunk
@@ -106,8 +106,8 @@ int DSetCreatPropList::getChunk( int max_ndims, hsize_t* dim ) const
///\param layout - IN: Type of storage layout for raw data
///\exception H5::PropListIException
///\par Description
/// For information on setting layout type, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetLayout
/// For information on valid layout types, please refer to
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetLayout
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DSetCreatPropList::setLayout(H5D_layout_t layout) const
@@ -172,16 +172,16 @@ void DSetCreatPropList::setDeflate( int level ) const
//--------------------------------------------------------------------------
// Function: DSetCreatPropList::setSzip
///\brief Sets up for the use of the SZIP compression filter.
///\param options_mask - IN: A bit-mask conveying the desired SZIP
/// options. Valid values are H5_SZIP_EC_OPTION_MASK
///\param options_mask - IN: A bit-mask conveying the desired SZIP
/// options. Valid values are H5_SZIP_EC_OPTION_MASK
/// and H5_SZIP_NN_OPTION_MASK.
///\param pixels_per_block - IN: Number of pixels or data elements in
///\param pixels_per_block - IN: Number of pixels or data elements in
/// each data block.
///\exception H5::PropListIException
///\par Description
/// The associate C function sets an SZIP compression filter,
/// The associate C function sets an SZIP compression filter,
/// H5Z_FILTER_SZIP, for a dataset. For more information about
/// SZIP and usage, please refer to the C layer Reference
/// SZIP and usage, please refer to the C layer Reference
/// Manual at:
/// http://hdfgroup.org/HDF5/doc/RM_H5P.html#Property-SetSzip
// Programmer Binh-Minh Ribler - Jan, 2007
@@ -211,7 +211,7 @@ void DSetCreatPropList::setSzip(unsigned int options_mask, unsigned int pixels_p
///\par
/// For information on setting fill value, please refer to the
/// C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFillValue
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFillValue
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DSetCreatPropList::setFillValue( const DataType& fvalue_type, const void* value ) const
@@ -459,7 +459,7 @@ bool DSetCreatPropList::allFiltersAvail()
///\par Description
/// Please refer to the Reference Manual of \c H5Pset_shuffle for
/// details.
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetShuffle
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetShuffle
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void DSetCreatPropList::setShuffle() const

View File

@@ -107,7 +107,7 @@ class H5_DLLCPP DSetCreatPropList : public PropList {
// Sets SZIP compression method.
void setSzip(unsigned int options_mask, unsigned int pixels_per_block) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("DSetCreatPropList"); }
// Copy constructor: creates a copy of a DSetCreatPropList object.

View File

@@ -309,7 +309,7 @@ void DSetMemXferPropList::getMulti(hid_t *memb_dxpl)
///\exception H5::PropListIException
///\par Description
/// For detail, please refer to the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSmallData
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSmallData
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void DSetMemXferPropList::setSmallDataBlockSize(hsize_t size)
@@ -349,7 +349,7 @@ hsize_t DSetMemXferPropList::getSmallDataBlockSize()
///\par Description
/// For information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetHyperVectorSize
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetHyperVectorSize
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void DSetMemXferPropList::setHyperVectorSize(size_t vector_size)

View File

@@ -92,7 +92,7 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
// Determines whether error-detection is enabled for dataset reads.
H5Z_EDC_t getEDCCheck();
// Returns this class name.
///\brief Returns this class name.
virtual H5std_string fromClass () const { return("DSetMemXferPropList"); }
// Copy constructor: makes a copy of a DSetMemXferPropList object.
@@ -104,7 +104,6 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
// Noop destructor
virtual ~DSetMemXferPropList();
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -57,7 +57,7 @@ class H5_DLLCPP EnumType : public DataType {
void valueOf( const char* name, void *value ) const;
void valueOf( const H5std_string& name, void *value ) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("EnumType"); }
// Default constructor

View File

@@ -252,7 +252,7 @@ void Exception::walkErrorStack( H5E_direction_t direction, H5E_walk2_t func, voi
// Function: Exception::getDetailMsg
///\brief Returns the detailed message set at the time the exception
/// is thrown.
///\return Text message - \c std::string
///\return Text message - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string Exception::getDetailMsg() const
@@ -275,7 +275,7 @@ const char* Exception::getCDetailMsg() const
//--------------------------------------------------------------------------
// Function: Exception::getFuncName
///\brief Returns the name of the function, where the exception is thrown.
///\return Text message - \c std::string
///\return Text message - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5std_string Exception::getFuncName() const

View File

@@ -79,12 +79,6 @@ class H5_DLLCPP Exception {
virtual ~Exception();
private:
// Because 'string' is not instantiated at compilation time, this
// warning is displayed when building DLL; but the class is exported
// so the warning is harmless
#if defined(_WIN32)
#pragma warning(disable: 4251)
#endif
H5std_string detail_message;
H5std_string func_name;

View File

@@ -76,7 +76,7 @@ void FileAccPropList::setStdio() const
/// driver was set for the property list. The driver ID is
/// only valid as long as the file driver remains registered.
/// Valid driver identifiers can be found at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-GetDriver
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetDriver
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -99,7 +99,7 @@ hid_t FileAccPropList::getDriver() const
///\par Description
/// For a list of valid driver identifiers, please see the C
/// layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-GetDriver
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetDriver
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setDriver(hid_t new_driver_id, const void *new_driver_info) const
@@ -157,7 +157,7 @@ hsize_t FileAccPropList::getFamilyOffset() const
///\par Description
/// For more details on the use of \c H5FD_CORE driver, please
/// refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplCore
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFaplCore
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setCore (size_t increment, hbool_t backing_store) const
@@ -225,7 +225,7 @@ void FileAccPropList::getFamily(hsize_t& memb_size, FileAccPropList& memb_plist)
{
throw PropListIException("FileAccPropList::getFamily", "H5Pget_fapl_family failed");
}
memb_plist.setId(memb_plist_id);
memb_plist.p_setId(memb_plist_id);
}
//--------------------------------------------------------------------------
@@ -261,7 +261,7 @@ FileAccPropList FileAccPropList::getFamily(hsize_t& memb_size) const
///\exception H5::PropListIException
///\par Description
/// Temporary - For information, please refer to:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplSplit
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFaplSplit
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setSplit( FileAccPropList& meta_plist, FileAccPropList& raw_plist, const char* meta_ext, const char* raw_ext ) const
@@ -295,11 +295,13 @@ void FileAccPropList::setSplit( FileAccPropList& meta_plist, FileAccPropList& ra
#ifdef H5_HAVE_STREAM // for Stream Virtual File Driver
//--------------------------------------------------------------------------
// Function: FileAccPropList::getStream
///\brief Retrieves the streaming I/O driver settings
///\return The streaming I/O file access property list structure
/// For detail on this structure, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
///\exception H5::PropListIException
// Purpose: Retrieves the streaming I/O driver settings
// Return: The streaming I/O file access property list structure
// Exception: H5::PropListIException
// Description:
// This C API seems to be removed from the library; will remove
// this wrapper next time, only removed it from the RM in this
// release - Oct, 2008
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
H5FD_stream_fapl_t FileAccPropList::getStream() const
@@ -315,13 +317,14 @@ H5FD_stream_fapl_t FileAccPropList::getStream() const
//--------------------------------------------------------------------------
// Function: FileAccPropList::setStream
///\brief Modifies this file access property list to use the Stream
/// driver.
///\param fapl - IN: The streaming I/O file access property list
///\exception H5::PropListIException
///\par Description
/// For detail on \a fapl, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
// Purpose: Modifies this file access property list to use the Stream
// driver.
// Param: fapl - IN: The streaming I/O file access property list
// Exception: H5::PropListIException
// Description:
// This C API seems to be removed from the library; will remove
// this wrapper next time, only removed it from the RM in this
// release - Oct, 2008
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setStream(H5FD_stream_fapl_t &fapl) const
@@ -360,7 +363,7 @@ size_t FileAccPropList::getSieveBufSize() const
///\exception H5::PropListIException
///\par Description
/// For detail on data sieving, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSieveBufSize
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSieveBufSize
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setSieveBufSize(size_t bufsize) const
@@ -380,7 +383,7 @@ void FileAccPropList::setSieveBufSize(size_t bufsize) const
///\exception H5::PropListIException
///\par Description
/// For more detail, please see the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetMetaBlockSize
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetMetaBlockSize
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setMetaBlockSize(hsize_t &block_size) const
@@ -420,7 +423,7 @@ hsize_t FileAccPropList::getMetaBlockSize() const
///\exception H5::PropListIException
///\par Description
/// For detail on \a flags, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFaplLog
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setLog(const char *logfile, unsigned flags, size_t buf_size) const
@@ -477,7 +480,7 @@ void FileAccPropList::setSec2() const
/// The parameter \a alignment must have a positive value.
///
/// For detail on \a setting alignment, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetAlignment
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetAlignment
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileAccPropList::setAlignment( hsize_t threshold, hsize_t alignment ) const
@@ -514,7 +517,7 @@ void FileAccPropList::getAlignment( hsize_t &threshold, hsize_t &alignment ) con
///\exception H5::PropListIException
///\par Description
/// More details and valid values for \a dtype can be found at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetMultiType
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetMultiType
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void FileAccPropList::setMultiType(H5FD_mem_t dtype) const
@@ -533,7 +536,7 @@ void FileAccPropList::setMultiType(H5FD_mem_t dtype) const
///\exception H5::PropListIException
///\par Description
/// More details and possible returned values can be found at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-GetMultiType
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetMultiType
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
H5FD_mem_t FileAccPropList::getMultiType() const
@@ -634,7 +637,7 @@ H5F_close_degree_t FileAccPropList::getFcloseDegree()
///\exception H5::PropListIException
///\par Description
/// For detail on \a fapl, please refer to
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetFaplStream
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetGCReferences
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileAccPropList::setGcReferences( unsigned gc_ref ) const

View File

@@ -123,7 +123,7 @@ class H5_DLLCPP FileAccPropList : public PropList {
// Returns garbage collecting references setting.
unsigned getGcReferences() const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("FileAccPropList"); }
// Copy constructor: creates a copy of a FileAccPropList object.

View File

@@ -126,7 +126,7 @@ hsize_t FileCreatPropList::getUserblock() const
///\par Description
/// For information on setting sizes, please refer to the
/// C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSizes
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSizes
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::setSizes( size_t sizeof_addr, size_t sizeof_size ) const
@@ -166,7 +166,7 @@ void FileCreatPropList::getSizes( size_t& sizeof_addr, size_t& sizeof_size ) con
///\exception H5::PropListIException
///\par Description
/// For information, please see the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSymK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSymK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::setSymk( unsigned ik, unsigned lk ) const
@@ -187,7 +187,7 @@ void FileCreatPropList::setSymk( unsigned ik, unsigned lk ) const
///\exception H5::PropListIException
///\par Description
/// For information, please see
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetSymK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetSymK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::getSymk( unsigned& ik, unsigned& lk ) const
@@ -208,7 +208,7 @@ void FileCreatPropList::getSymk( unsigned& ik, unsigned& lk ) const
///\exception H5::PropListIException
///\par Description
/// For information, please see the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetIstoreK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetIstoreK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void FileCreatPropList::setIstorek( unsigned ik ) const
@@ -228,7 +228,7 @@ void FileCreatPropList::setIstorek( unsigned ik ) const
///\exception H5::PropListIException
///\par Description
/// For information, please see
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5P.html#Property-SetIstoreK
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetIstoreK
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
unsigned FileCreatPropList::getIstorek() const

View File

@@ -60,7 +60,7 @@ class H5_DLLCPP FileCreatPropList : public PropList {
// indexing chunked datasets.
void setIstorek( unsigned ik ) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("FileCreatPropList"); }
// Copy constructor: creates a copy of a FileCreatPropList object.

View File

@@ -50,7 +50,7 @@ namespace H5 {
///\brief Default constructor: creates a stub H5File object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File() : IdComponent(0) {}
H5File::H5File() : IdComponent(), id(0) {}
//--------------------------------------------------------------------------
// Function: H5File overloaded constructor
@@ -76,7 +76,7 @@ H5File::H5File() : IdComponent(0) {}
/// For info on file creation in the case of an already-open file,
/// please refer to the \b Special \b case section in the C layer
/// Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5F.html#File-Create
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5F.html#File-Create
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : IdComponent(0)
@@ -88,7 +88,7 @@ H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& c
// Function: H5File overloaded constructor
///\brief This is another overloaded constructor. It differs from the
/// above constructor only in the type of the \a name argument.
///\param name - IN: Name of the file - \c std::string
///\param name - IN: Name of the file - \c H5std_string
///\param flags - IN: File access flags
///\param create_plist - IN: File creation property list, used when
/// modifying default file meta-data. Default to
@@ -140,7 +140,11 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro
///\param original - IN: H5File instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
H5File::H5File( const H5File& original ) : IdComponent( original ) {}
H5File::H5File(const H5File& original) : IdComponent(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: H5File::flush
@@ -187,8 +191,8 @@ bool H5File::isHdf5(const char* name)
//--------------------------------------------------------------------------
// Function: H5File::isHdf5
///\brief This is an overloaded member function, provided for convenience.
/// It takes an \c std::string for \a name.
///\param name - IN: Name of the file - \c std::string
/// It takes an \c H5std_string for \a name.
///\param name - IN: Name of the file - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
bool H5File::isHdf5(const H5std_string& name )
@@ -227,8 +231,8 @@ void H5File::openFile(const char* name, unsigned int flags, const FileAccPropLis
//--------------------------------------------------------------------------
// Function: H5File::openFile
///\brief This is an overloaded member function, provided for convenience.
/// It takes an \c std::string for \a name.
///\param name - IN: Name of the file - \c std::string
/// It takes an \c H5std_string for \a name.
///\param name - IN: Name of the file - \c H5std_string
///\param flags - IN: File access flags
///\param access_plist - IN: File access property list. Default to
/// FileAccPropList::DEFAULT
@@ -374,9 +378,9 @@ hssize_t H5File::getFreeSpace() const
/// Multiple object types can be combined with the logical OR operator (|).
// Programmer Binh-Minh Ribler - May 2004
//--------------------------------------------------------------------------
int H5File::getObjCount(unsigned types) const
ssize_t H5File::getObjCount(unsigned types) const
{
int num_objs = H5Fget_obj_count(id, types);
ssize_t num_objs = H5Fget_obj_count(id, types);
if( num_objs < 0 )
{
throw FileIException("H5File::getObjCount", "H5Fget_obj_count failed");
@@ -393,9 +397,9 @@ int H5File::getObjCount(unsigned types) const
///\exception H5::FileIException
// Programmer Binh-Minh Ribler - May 2004
//--------------------------------------------------------------------------
int H5File::getObjCount() const
ssize_t H5File::getObjCount() const
{
int num_objs = H5Fget_obj_count(id, H5F_OBJ_ALL);
ssize_t num_objs = H5Fget_obj_count(id, H5F_OBJ_ALL);
if( num_objs < 0 )
{
throw FileIException("H5File::getObjCount", "H5Fget_obj_count failed");
@@ -428,9 +432,9 @@ int H5File::getObjCount() const
// Notes: will do the overload for this one after hearing from Quincey???
// Programmer Binh-Minh Ribler - May 2004
//--------------------------------------------------------------------------
void H5File::getObjIDs(unsigned types, int max_objs, hid_t *oid_list) const
void H5File::getObjIDs(unsigned types, size_t max_objs, hid_t *oid_list) const
{
herr_t ret_value = H5Fget_obj_ids(id, types, max_objs, oid_list);
ssize_t ret_value = H5Fget_obj_ids(id, types, max_objs, oid_list);
if( ret_value < 0 )
{
throw FileIException("H5File::getObjIDs", "H5Fget_obj_ids failed");
@@ -502,60 +506,14 @@ H5std_string H5File::getFileName() const
}
}
//--------------------------------------------------------------------------
// Function: H5File::Reference
///\brief Important!!! - This functions does not work correctly, it
/// will be removed in the near future. Please use
/// H5File::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* H5File::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw FileIException("H5File::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5File::Reference
///\brief Important!!! - This functions does not work correctly, it
/// will be removed in the near future. Please use similar
/// H5File::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* H5File::Reference(const char* name) const
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw FileIException("H5File::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5File::Reference
///\brief Important!!! - This functions does not work correctly, it
/// will be removed in the near future. Please use similar
/// H5File::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* H5File::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: H5File::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref - IN: Reference to query
///\param ref_type - IN: Type of reference, valid values are:
/// \li \c H5R_OBJECT \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference.
///\return Object type, which can be one of the following:
/// \li \c H5G_LINK - Object is a symbolic link.
/// \li \c H5G_GROUP - Object is a group.
@@ -616,6 +574,134 @@ hsize_t H5File::getFileSize() const
return (file_size);
}
//--------------------------------------------------------------------------
// Function: H5File::p_reference (protected)
// Purpose Creates a reference to an HDF5 object or a dataset region.
// Parameters
// name - IN: Name of the object to be referenced
// dataspace - IN: Dataspace with selection
// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5File::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const
{
herr_t ret_value = H5Rcreate(ref, getId(), name, ref_type, space_id);
if (ret_value < 0)
{
throw IdComponentException("", "H5Rcreate failed");
}
}
//--------------------------------------------------------------------------
// Function: H5File::reference
///\brief Creates a reference to an HDF5 object or a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced
///\param dataspace - IN: Dataspace with selection
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
/// reference. - this is the default
///\exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5File::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
p_reference(ref, name, dataspace.getId(), ref_type);
}
catch (IdComponentException E) {
throw IdComponentException("H5File::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5File::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it only creates
/// a reference to an HDF5 object, not to a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c char pointer
///\exception H5::IdComponentException
///\par Description
// This function passes H5R_OBJECT and -1 to the protected
// function for it to pass to the C API H5Rcreate
// to create a reference to the named object.
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5File::reference(void* ref, const char* name) const
{
try {
p_reference(ref, name, -1, H5R_OBJECT);
}
catch (IdComponentException E) {
throw IdComponentException("H5File::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5File::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for the object's name.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c H5std_string
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5File::reference(void* ref, const H5std_string& name) const
{
reference(ref, name.c_str());
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: H5File::p_get_obj_type (protected)
// Purpose Retrieves the type of object that an object reference points to.
// Parameters
// ref - IN: Reference to query
// ref_type - IN: Type of reference to query
// Return An object type, which can be one of the following:
// H5G_LINK Object is a symbolic link.
// H5G_GROUP Object is a group.
// H5G_DATASET Object is a dataset.
// H5G_TYPE Object is a named datatype
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t H5File::p_get_obj_type(void *ref, H5R_type_t ref_type) const
{
H5G_obj_t obj_type = H5Rget_obj_type1(getId(), ref_type, ref);
if (obj_type == H5G_UNKNOWN)
{
throw IdComponentException("", "H5Rget_obj_type failed");
}
return(obj_type);
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: H5File::p_get_region (protected)
// Purpose Retrieves a dataspace with the region pointed to selected.
// Parameters
// ref_type - IN: Type of reference to get region of - default
// to H5R_DATASET_REGION
// ref - IN: Reference to get region of
// Return Dataspace id
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
hid_t H5File::p_get_region(void *ref, H5R_type_t ref_type) const
{
hid_t space_id = H5Rget_region(getId(), ref_type, ref);
if (space_id < 0)
{
throw IdComponentException("", "H5Rget_region failed");
}
return(space_id);
}
//--------------------------------------------------------------------------
// Function: H5File::getLocId
// Purpose: Get the id of this file
@@ -629,6 +715,47 @@ hid_t H5File::getLocId() const
return( getId() );
}
//--------------------------------------------------------------------------
// Function: H5File::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t H5File::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: H5File::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5File::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception E) {
throw FileIException("H5File::p_setId", E.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: H5File::close
///\brief Closes this HDF5 file.
@@ -645,8 +772,10 @@ void H5File::close()
{
throw FileIException("H5File::close", "H5Fclose failed");
}
// reset the id because the file that it represents is now closed
id = 0;
// reset the id when the file that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -685,8 +814,7 @@ H5File::~H5File()
{
try {
close();
}
catch (Exception close_error) {
} catch (Exception close_error) {
cerr << "H5File::~H5File - " << close_error.getDetailMsg() << endl;
}
}

View File

@@ -60,12 +60,12 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Returns the number of opened object IDs (files, datasets, groups
// and datatypes) in the same file.
int getObjCount(unsigned types) const;
int getObjCount() const;
ssize_t getObjCount(unsigned types) const;
ssize_t getObjCount() const;
// Retrieves a list of opened object IDs (files, datasets, groups
// and datatypes) in the same file.
void getObjIDs(unsigned types, int max_objs, hid_t *oid_list) const;
void getObjIDs(unsigned types, size_t max_objs, hid_t *oid_list) const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
@@ -89,13 +89,12 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Creates a reference to a named HDF5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const; // will be obsolete
void reference(void* ref, const char* name, const DataSpace& dataspace,
H5R_type_t ref_type = H5R_DATASET_REGION) const;
void reference(void* ref, const char* name) const;
void reference(void* ref, const H5std_string& name) const;
// Creates a reference to a named Hdf5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("H5File"); }
// Throw file exception.
@@ -110,14 +109,38 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Copy constructor: makes a copy of the original H5File object.
H5File(const H5File& original);
// Gets the HDF5 file id.
virtual hid_t getId() const;
// H5File destructor.
virtual ~H5File();
private:
hid_t id; // HDF5 file id
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// This function is private and contains common code between the
// constructors taking a string or a char*
void p_get_file( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist );
// Creates a reference to an HDF5 object or a dataset region.
void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves a dataspace with the region pointed to selected.
hid_t p_get_region(void *ref, H5R_type_t ref_type) const;
protected:
// Sets the HDF5 file id.
virtual void p_setId(const hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -53,7 +53,7 @@ class H5_DLLCPP FloatType : public AtomType {
// Sets the mantissa normalization of a floating-point datatype.
void setNorm( H5T_norm_t norm ) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("FloatType"); }
// Default constructor

View File

@@ -33,6 +33,7 @@
#include "H5DataSpace.h"
#include "H5DataSet.h"
#include "H5CommonFG.h"
#include "H5Attribute.h"
#include "H5Group.h"
#include "H5File.h"
#include "H5Alltypes.h"
@@ -50,7 +51,7 @@ namespace H5 {
///\brief Default constructor: creates a stub Group.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group::Group() : H5Object() {}
Group::Group() : H5Object(), id(0) {}
//--------------------------------------------------------------------------
// Function: Group copy constructor
@@ -58,7 +59,11 @@ Group::Group() : H5Object() {}
///\param original - IN: Original group to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group::Group( const Group& original ) : H5Object( original ) {}
Group::Group(const Group& original) : H5Object(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: Group::getLocId
@@ -74,70 +79,72 @@ hid_t Group::getLocId() const
//--------------------------------------------------------------------------
// Function: Group overloaded constructor
///\brief Creates a Group object using the id of an existing group.
///\param group_id - IN: Id of an existing group
///\param existing_id - IN: Id of an existing group
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group::Group( const hid_t group_id ) : H5Object( group_id ) {}
Group::Group(const hid_t existing_id) : H5Object()
{
id = existing_id;
}
//--------------------------------------------------------------------------
// Function: Group overload constructor - dereference
///\brief Given a reference to some object, returns that group
/// obj - IN: Location reference object is in
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
///\param obj - IN: Specifying location referenced object is in
///\param ref - IN: Reference pointer
///\parDescription
/// \c obj can be DataSet, Group, H5File, or named DataType, that
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
///\par Description
/// \c obj can be DataSet, Group, or named DataType, that
/// is a datatype that has been named by DataType::commit.
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
Group::Group(IdComponent& obj, void* ref) : H5Object()
Group::Group(H5Object& obj, const void* ref, H5R_type_t ref_type) : H5Object()
{
IdComponent::dereference(obj, ref);
try {
id = p_dereference(obj.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("Group constructor - located by an H5Object",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: Group::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// Group::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
// Function: Group overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
///\param h5file - IN: Location referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
void* Group::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type) const
Group::Group(H5File& h5file, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
return(p_reference(name, dataspace.getId(), ref_type));
}
catch (IdComponentException E) {
throw GroupIException("Group::Reference", E.getDetailMsg());
}
try {
id = p_dereference(h5file.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("Group constructor - located by an H5File",
deref_error.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: Group::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// Group::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
// Function: Group overload constructor - dereference
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
///\param attr - IN: Specifying location where the referenced object is in
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type - default to H5R_OBJECT
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
void* Group::Reference(const char* name) const
Group::Group(Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object()
{
try {
return(p_reference(name, -1, H5R_OBJECT));
}
catch (IdComponentException E) {
throw GroupIException("Group::Reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: Group::Reference
///\brief Important!!! - This functions may not work correctly, it
/// will be removed in the near future. Please use similar
/// Group::reference instead!
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* Group::Reference(const H5std_string& name) const
{
return(Reference(name.c_str()));
try {
id = p_dereference(attr.getId(), ref, ref_type);
} catch (ReferenceException deref_error) {
throw ReferenceException("Group constructor - located by an Attribute",
deref_error.getDetailMsg());
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
@@ -146,13 +153,13 @@ void* Group::Reference(const H5std_string& name) const
///\brief Retrieves the type of object that an object reference points to.
///\param ref - IN: Reference to query
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region reference.
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference.
///\return An object type, which can be one of the following:
/// H5G_LINK Object is a symbolic link.
/// H5G_GROUP Object is a group.
/// H5G_DATASET Object is a dataset.
/// H5G_TYPE Object is a named datatype
/// \li \c H5G_LINK (0) - Object is a symbolic link.
/// \li \c H5G_GROUP (1) - Object is a group.
/// \li \c H5G_DATASET (2) - Object is a dataset.
/// \li \c H5G_TYPE (3) - Object is a named datatype
///\exception H5::GroupIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
@@ -187,6 +194,47 @@ DataSpace Group::getRegion(void *ref, H5R_type_t ref_type) const
}
}
//--------------------------------------------------------------------------
// Function: Group::getId
// Purpose: Get the id of this attribute
// Modification:
// May 2008 - BMR
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t Group::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: Group::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void Group::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw GroupIException("Group::p_setId", close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: Group::close
///\brief Closes this group.
@@ -203,8 +251,10 @@ void Group::close()
{
throw GroupIException("Group::close", "H5Gclose failed");
}
// reset the id because the group that it represents is now closed
id = 0;
// reset the id when the group that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}

View File

@@ -34,15 +34,7 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
// Creates a reference to a named Hdf5 object or to a dataset region
// in this object.
void* Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) const; // will be obsolete
// Creates a reference to a named Hdf5 object in this object.
void* Reference(const char* name) const; // will be obsolete
void* Reference(const H5std_string& name) const; // will be obsolete
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("Group"); }
// Throw group exception.
@@ -52,7 +44,9 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
virtual hid_t getLocId() const;
// Creates a group by way of dereference.
Group(IdComponent& obj, void* ref);
Group(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
Group(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
Group(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// default constructor
Group();
@@ -60,12 +54,21 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Copy constructor: makes a copy of the original object
Group(const Group& original);
// Gets the group id.
virtual hid_t getId() const;
// Destructor
virtual ~Group();
// Creates a copy of an existing group using its id.
Group( const hid_t group_id );
private:
hid_t id; // HDF5 group id
protected:
// Sets the group id.
virtual void p_setId(const hid_t new_id);
};
#ifndef H5_NO_NAMESPACE
}

View File

@@ -18,7 +18,6 @@
#endif /*H5_VMS*/
#include <string>
#include "H5Include.h"
#include "H5Exception.h"
#include "H5Library.h"
@@ -36,7 +35,7 @@ namespace H5 {
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent::IdComponent(const hid_t h5_id) : id(h5_id) {}
IdComponent::IdComponent(const hid_t h5_id) {}
//--------------------------------------------------------------------------
// Function: IdComponent copy constructor
@@ -44,11 +43,7 @@ IdComponent::IdComponent(const hid_t h5_id) : id(h5_id) {}
///\param original - IN: IdComponent instance to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent::IdComponent( const IdComponent& original )
{
id = original.id;
incRefCount(); // increment number of references to this id
}
IdComponent::IdComponent( const IdComponent& original ) {}
//--------------------------------------------------------------------------
// Function: IdComponent::incRefCount
@@ -69,7 +64,7 @@ void IdComponent::incRefCount(const hid_t obj_id) const
//--------------------------------------------------------------------------
void IdComponent::incRefCount() const
{
incRefCount(id);
incRefCount(getId());
}
//--------------------------------------------------------------------------
@@ -99,7 +94,7 @@ void IdComponent::decRefCount(const hid_t obj_id) const
//--------------------------------------------------------------------------
void IdComponent::decRefCount() const
{
decRefCount(id);
decRefCount(getId());
}
//--------------------------------------------------------------------------
@@ -128,13 +123,13 @@ int IdComponent::getCounter(const hid_t obj_id) const
//--------------------------------------------------------------------------
int IdComponent::getCounter() const
{
return (getCounter(id));
return (getCounter(getId()));
}
//--------------------------------------------------------------------------
// Function: hdfObjectType
///\brief Given an id, returns the type of the object.
///return a valid HDF object type, which may be one of the following:
///\return a valid HDF object type, which may be one of the following:
/// \li \c H5I_FILE
/// \li \c H5I_GROUP
/// \li \c H5I_DATATYPE
@@ -166,6 +161,10 @@ H5I_type_t IdComponent::getHDFObjType(const hid_t obj_id)
// copy the id from rhs to this object, and increment the
// reference counter of the id to indicate that another object
// is referencing that id.
// Modification
// 2010/5/9 - BMR
// Removed close() and incRefCount() because setId/p_setId takes
// care of close() and setId takes care incRefCount().
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent& IdComponent::operator=( const IdComponent& rhs )
@@ -173,18 +172,14 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
if (this != &rhs)
{
// handling references to this id
try {
close();
try {
setId(rhs.getId());
// Note: a = b, so there are two objects with the same hdf5 id
// that's why incRefCount is needed, and it is called by setId
}
catch (Exception close_error) {
throw FileIException(inMemFunc("operator="), close_error.getDetailMsg());
}
// copy the data members from the rhs object
id = rhs.id;
// increment the reference counter
incRefCount();
}
return *this;
}
@@ -196,39 +191,29 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// p_setId ensures that the current valid id of this object is
// properly closed before resetting the object's id to the new id.
// Programmer Binh-Minh Ribler - 2000
// Modification
// 2008/7/23 - BMR
// Changed all subclasses' setId to p_setId and put back setId
// here. p_setId is used in the library where the id provided
// by a C API passed on to user's application in the form of a
// C++ API object, which will be destroyed properly, and so
// p_setId does not call incRefCount. On the other hand, the
// public version setId is used by other applications, in which
// the id passed to setId already has a reference count, so setId
// must call incRefCount.
//--------------------------------------------------------------------------
void IdComponent::setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw IdComponentException(inMemFunc("copy"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
// set to new_id
p_setId(new_id);
// increment the reference counter of the new id
incRefCount();
}
//--------------------------------------------------------------------------
// Function: IdComponent::getId
///\brief Returns the id of this object
///\return HDF5 id
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
hid_t IdComponent::getId () const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: IdComponent destructor
///\brief Noop destructor.
@@ -273,7 +258,7 @@ H5std_string IdComponent::inMemFunc(const char* func_name) const
///\brief Default constructor.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent::IdComponent() : id(-1) {}
IdComponent::IdComponent() {}
//--------------------------------------------------------------------------
// Function: IdComponent::p_get_file_name (protected)
@@ -287,8 +272,10 @@ IdComponent::IdComponent() : id(-1) {}
//--------------------------------------------------------------------------
H5std_string IdComponent::p_get_file_name() const
{
hid_t temp_id = getId();
// Preliminary call to H5Fget_name to get the length of the file name
ssize_t name_size = H5Fget_name(id, NULL, 0);
ssize_t name_size = H5Fget_name(temp_id, NULL, 0);
// If H5Aget_name returns a negative value, raise an exception,
if( name_size < 0 )
@@ -298,7 +285,7 @@ H5std_string IdComponent::p_get_file_name() const
// Call H5Fget_name again to get the actual file name
char* name_C = new char[name_size+1]; // temporary C-string for C API
name_size = H5Fget_name(id, name_C, name_size+1);
name_size = H5Fget_name(temp_id, name_C, name_size+1);
// Check for failure again
if( name_size < 0 )
@@ -312,178 +299,6 @@ H5std_string IdComponent::p_get_file_name() const
return(file_name);
}
//--------------------------------------------------------------------------
// Function: IdComponent::p_reference (protected)
// Purpose Creates a reference to an HDF5 object or a dataset region.
// Parameters
// name - IN: Name of the object to be referenced
// dataspace - IN: Dataspace with selection
// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void IdComponent::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const
{
herr_t ret_value = H5Rcreate(ref, id, name, ref_type, space_id);
if (ret_value < 0)
{
throw IdComponentException("", "H5Rcreate failed");
}
}
//--------------------------------------------------------------------------
// Function: IdComponent::reference
///\brief Creates a reference to an HDF5 object or a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced
///\param dataspace - IN: Dataspace with selection
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT \tReference is an object reference.
/// \li \c H5R_DATASET_REGION \tReference is a dataset region
/// reference. - this is the default
///\exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void IdComponent::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
p_reference(ref, name, dataspace.getId(), ref_type);
}
catch (IdComponentException E) {
throw IdComponentException("IdComponent::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: IdComponent::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it only creates
/// a reference to an HDF5 object, not to a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c char pointer
///\exception H5::IdComponentException
///\par Description
// This function passes H5R_OBJECT and -1 to the protected
// function for it to pass to the C API H5Rcreate
// to create a reference to the named object.
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void IdComponent::reference(void* ref, const char* name) const
{
try {
p_reference(ref, name, -1, H5R_OBJECT);
}
catch (IdComponentException E) {
throw IdComponentException("IdComponent::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: IdComponent::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it takes an
/// \c std::string for the object's name.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c std::string
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void IdComponent::reference(void* ref, const H5std_string& name) const
{
reference(ref, name.c_str());
}
//--------------------------------------------------------------------------
// Function: IdComponent::p_reference (protected)
// Purpose Creates a reference to an HDF5 object or a dataset region.
// Parameters
// name - IN: Name of the object to be referenced
// dataspace - IN: Dataspace with selection
// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
// Return A reference
// Exception H5::IdComponentException
// Notes This function is incorrect, and will be removed in the near
// future after notifying users of the new APIs ::reference's.
// BMR - Oct 8, 2006
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* IdComponent::p_reference(const char* name, hid_t space_id, H5R_type_t ref_type) const
{
hobj_ref_t ref;
herr_t ret_value = H5Rcreate(&ref, id, name, ref_type, space_id);
if (ret_value < 0)
{
throw IdComponentException("", "H5Rcreate failed");
}
return (reinterpret_cast<void*>(ref));
}
//--------------------------------------------------------------------------
// Function: IdComponent::dereference
// Purpose Opens the HDF5 object referenced.
// Parameters
// obj - IN: Dataset reference object is in or location of
// object that the dataset is located within.
// ref - IN: Reference pointer
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - Oct, 2006
//--------------------------------------------------------------------------
void IdComponent::dereference(IdComponent& obj, void* ref)
{
id = H5Rdereference(obj.getId(), H5R_OBJECT, ref);
if (id < 0)
{
throw IdComponentException("", "H5Rdereference failed");
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: IdComponent::p_get_obj_type (protected)
// Purpose Retrieves the type of object that an object reference points to.
// Parameters
// ref - IN: Reference to query
// ref_type - IN: Type of reference to query
// Return An object type, which can be one of the following:
// H5G_LINK Object is a symbolic link.
// H5G_GROUP Object is a group.
// H5G_DATASET Object is a dataset.
// H5G_TYPE Object is a named datatype
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t IdComponent::p_get_obj_type(void *ref, H5R_type_t ref_type) const
{
H5G_obj_t obj_type = H5Rget_obj_type1(id, ref_type, ref);
if (obj_type == H5G_UNKNOWN)
{
throw IdComponentException("", "H5Rget_obj_type failed");
}
return(obj_type);
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: IdComponent::p_get_region (protected)
// Purpose Retrieves a dataspace with the region pointed to selected.
// Parameters
// ref_type - IN: Type of reference to get region of - default
// to H5R_DATASET_REGION
// ref - IN: Reference to get region of
// Return Dataspace id
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
hid_t IdComponent::p_get_region(void *ref, H5R_type_t ref_type) const
{
hid_t space_id = H5Rget_region(id, ref_type, ref);
if (space_id < 0)
{
throw IdComponentException("", "H5Rget_region failed");
}
return(space_id);
}
//
// Local functions used in this class
//
@@ -495,7 +310,7 @@ hid_t IdComponent::p_get_region(void *ref, H5R_type_t ref_type) const
// Return true if id is valid, false, otherwise
// Programmer Binh-Minh Ribler - May, 2005
//--------------------------------------------------------------------------
bool IdComponent::p_valid_id(const hid_t obj_id) const
bool IdComponent::p_valid_id(const hid_t obj_id)
{
H5I_type_t id_type = H5Iget_type(obj_id);
if (id_type <= H5I_BADID || id_type >= H5I_NTYPES)

View File

@@ -44,13 +44,8 @@ class H5_DLLCPP IdComponent {
// Assignment operator.
IdComponent& operator=( const IdComponent& rhs );
void reference(void* ref, const char* name, const DataSpace& dataspace,
H5R_type_t ref_type = H5R_DATASET_REGION) const;
void reference(void* ref, const char* name) const;
void reference(void* ref, const H5std_string& name) const;
// Open a referenced HDF5 object.
void dereference(IdComponent& obj, void* ref);
// Gets the identifier of this object.
virtual hid_t getId () const = 0;
// Sets the identifier of this object to a new value.
void setId(const hid_t new_id);
@@ -61,9 +56,6 @@ class H5_DLLCPP IdComponent {
// Copy constructor: makes copy of the original IdComponent object.
IdComponent( const IdComponent& original );
// Gets the value of IdComponent's data member.
virtual hid_t getId () const;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Pure virtual function for there are various H5*close for the
// subclasses.
@@ -73,7 +65,7 @@ class H5_DLLCPP IdComponent {
// <class-name> is returned by fromClass().
H5std_string inMemFunc(const char* func_name) const;
// Returns this class name.
///\brief Returns this class name.
virtual H5std_string fromClass() const { return("IdComponent");}
#endif // DOXYGEN_SHOULD_SKIP_THIS
@@ -83,7 +75,6 @@ class H5_DLLCPP IdComponent {
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
hid_t id; // HDF5 object id
// Default constructor.
IdComponent();
@@ -91,23 +82,12 @@ class H5_DLLCPP IdComponent {
// Gets the name of the file, in which an HDF5 object belongs.
H5std_string p_get_file_name() const;
// Gets the id of the H5 file in which the given object is located.
hid_t p_get_file_id();
// Creates a reference to an HDF5 object or a dataset region.
void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const;
void* p_reference(const char* name, hid_t space_id, H5R_type_t ref_type) const; // will be removed
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves a dataspace with the region pointed to selected.
hid_t p_get_region(void *ref, H5R_type_t ref_type) const;
// Verifies that the given id is valid.
bool p_valid_id(const hid_t obj_id) const;
static bool p_valid_id(const hid_t obj_id);
// Sets the identifier of this object to a new value. - this one
// doesn't increment reference count
virtual void p_setId(const hid_t new_id) = 0;
#endif // DOXYGEN_SHOULD_SKIP_THIS

View File

@@ -35,7 +35,7 @@ class H5_DLLCPP IntType : public AtomType {
// Sets the sign proprety for an integer type.
void setSign( H5T_sign_t sign ) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("IntType"); }
// Default constructor

View File

@@ -106,7 +106,7 @@ void H5Library::getLibVersion( unsigned& majnum, unsigned& minnum, unsigned& rel
///\par Description
/// For information about library version, please refer to
/// the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5.html#Library-VersCheck
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5.html#Library-VersCheck
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Library::checkVersion(unsigned majnum, unsigned minnum, unsigned relnum)
@@ -161,7 +161,7 @@ void H5Library::garbageCollect()
/// Setting a value of -1 for a limit means no limit of that type.
/// For more information on free list limits, please refer to C
/// layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5.html#Library-SetFreeListLimits
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5.html#Library-SetFreeListLimits
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Library::setFreeListLimits(int reg_global_lim, int reg_list_lim,

View File

@@ -21,10 +21,15 @@
#include "H5PropList.h"
#include "H5Object.h"
#include "H5DcreatProp.h"
#include "H5DxferProp.h"
#include "H5FaccProp.h"
#include "H5FcreatProp.h"
#include "H5CommonFG.h"
#include "H5DataType.h"
#include "H5DataSpace.h"
#include "H5AbstractDs.h"
#include "H5File.h"
#include "H5DataSet.h"
#include "H5Attribute.h"
#ifndef H5_NO_NAMESPACE
@@ -103,7 +108,7 @@ Attribute H5Object::createAttribute( const char* name, const DataType& data_type
hid_t type_id = data_type.getId();
hid_t space_id = data_space.getId();
hid_t plist_id = create_plist.getId();
hid_t attr_id = H5Acreate2(id, name, type_id, space_id, plist_id, H5P_DEFAULT );
hid_t attr_id = H5Acreate2(getId(), name, type_id, space_id, plist_id, H5P_DEFAULT );
// If the attribute id is valid, create and return the Attribute object
if( attr_id > 0 )
@@ -119,7 +124,7 @@ Attribute H5Object::createAttribute( const char* name, const DataType& data_type
// Function: H5Object::createAttribute
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for \a name.
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::createAttribute( const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const PropList& create_plist ) const
@@ -137,7 +142,7 @@ Attribute H5Object::createAttribute( const H5std_string& name, const DataType& d
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const char* name ) const
{
hid_t attr_id = H5Aopen( id, name, H5P_DEFAULT );
hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT);
if( attr_id > 0 )
{
Attribute attr( attr_id );
@@ -153,7 +158,7 @@ Attribute H5Object::openAttribute( const char* name ) const
// Function: H5Object::openAttribute
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for \a name.
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const H5std_string& name ) const
@@ -171,7 +176,8 @@ Attribute H5Object::openAttribute( const H5std_string& name ) const
//--------------------------------------------------------------------------
Attribute H5Object::openAttribute( const unsigned int idx ) const
{
hid_t attr_id = H5Aopen_by_idx(id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT);
hid_t attr_id = H5Aopen_by_idx(getId(), ".", H5_INDEX_CRT_ORDER,
H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT);
if( attr_id > 0 )
{
Attribute attr( attr_id );
@@ -188,15 +194,17 @@ Attribute H5Object::openAttribute( const unsigned int idx ) const
///\brief Iterates a user's function over all the attributes of an H5
/// object, which may be a group, dataset or named datatype.
///\param user_op - IN: User's function to operate on each attribute
///\param idx - IN/OUT: Starting (IN) and ending (OUT) attribute indices
///\param _idx - IN/OUT: Starting (IN) and ending (OUT) attribute indices
///\param op_data - IN: User's data to pass to user's operator function
///\return Returned value of the last operator if it was non-zero, or
/// zero if all attributes were processed
///\exception H5::AttributeIException
///\par Description
/// The signature of user_op is
/// void (*)(H5::H5Object&, std::string, void*).
/// For information, please refer to the C layer Reference Manual
/// at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5A.html#Annot-Iterate
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5A.html#Annot-Iterate
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
int H5Object::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_data )
@@ -208,15 +216,17 @@ int H5Object::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_da
userData->object = this;
// call the C library routine H5Aiterate2 to iterate the attributes
hsize_t idx = (hsize_t)*_idx;
int ret_value = H5Aiterate2(id, H5_INDEX_NAME, H5_ITER_INC, &idx, userAttrOpWrpr, (void *) userData);
hsize_t idx = _idx ? (hsize_t)*_idx : 0;
int ret_value = H5Aiterate2(getId(), H5_INDEX_NAME, H5_ITER_INC, &idx,
userAttrOpWrpr, (void *) userData);
// release memory
delete userData;
if( ret_value >= 0 ) {
/* Pass back update index value to calling code */
*_idx = (unsigned)idx;
if (_idx)
*_idx = (unsigned)idx;
return( ret_value );
}
@@ -235,7 +245,7 @@ int H5Object::getNumAttrs() const
{
H5O_info_t oinfo; /* Object info */
if(H5Oget_info(id, &oinfo) < 0)
if(H5Oget_info(getId(), &oinfo) < 0)
throw AttributeIException(inMemFunc("getNumAttrs"), "H5Oget_info failed");
else
return( (int)oinfo.num_attrs );
@@ -250,7 +260,7 @@ int H5Object::getNumAttrs() const
//--------------------------------------------------------------------------
void H5Object::removeAttr( const char* name ) const
{
herr_t ret_value = H5Adelete(id, name);
herr_t ret_value = H5Adelete(getId(), name);
if( ret_value < 0 )
throw AttributeIException(inMemFunc("removeAttr"), "H5Adelete failed");
}
@@ -259,7 +269,7 @@ void H5Object::removeAttr( const char* name ) const
// Function: H5Object::removeAttr
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for \a name.
/// a reference to an \c H5std_string for \a name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Object::removeAttr( const H5std_string& name ) const
@@ -277,7 +287,7 @@ void H5Object::removeAttr( const H5std_string& name ) const
//--------------------------------------------------------------------------
void H5Object::renameAttr(const char* oldname, const char* newname) const
{
herr_t ret_value = H5Arename(id, oldname, newname);
herr_t ret_value = H5Arename(getId(), oldname, newname);
if (ret_value < 0)
throw AttributeIException(inMemFunc("renameAttr"), "H5Arename failed");
}
@@ -286,7 +296,7 @@ void H5Object::renameAttr(const char* oldname, const char* newname) const
// Function: H5Object::renameAttr
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function in that it takes
/// a reference to an \c std::string for the names.
/// a reference to an \c H5std_string for the names.
// Programmer Binh-Minh Ribler - Mar, 2005
//--------------------------------------------------------------------------
void H5Object::renameAttr(const H5std_string& oldname, const H5std_string& newname) const
@@ -306,9 +316,9 @@ void H5Object::renameAttr(const H5std_string& oldname, const H5std_string& newna
/// This object is used to identify the file to be flushed.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void H5Object::flush(H5F_scope_t scope ) const
void H5Object::flush(H5F_scope_t scope) const
{
herr_t ret_value = H5Fflush( id, scope );
herr_t ret_value = H5Fflush(getId(), scope);
if( ret_value < 0 )
{
throw FileIException(inMemFunc("flush"), "H5Fflush failed");
@@ -332,6 +342,235 @@ H5std_string H5Object::getFileName() const
}
}
//--------------------------------------------------------------------------
// Function: H5Object::p_reference (protected)
// Purpose Creates a reference to an HDF5 object or a dataset region.
// Parameters
// name - IN: Name of the object to be referenced
// dataspace - IN: Dataspace with selection
// ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Object::p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const
{
herr_t ret_value = H5Rcreate(ref, getId(), name, ref_type, space_id);
if (ret_value < 0)
{
throw IdComponentException("", "H5Rcreate failed");
}
}
//--------------------------------------------------------------------------
// Function: H5Object::reference
///\brief Creates a reference to an HDF5 object or a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced
///\param dataspace - IN: Dataspace with selection
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
/// reference. - this is the default
///\exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Object::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const
{
try {
p_reference(ref, name, dataspace.getId(), ref_type);
}
catch (IdComponentException E) {
throw IdComponentException("H5Object::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Object::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it only creates
/// a reference to an HDF5 object, not to a dataset region.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c char pointer
///\exception H5::IdComponentException
///\par Description
// This function passes H5R_OBJECT and -1 to the protected
// function for it to pass to the C API H5Rcreate
// to create a reference to the named object.
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Object::reference(void* ref, const char* name) const
{
try {
p_reference(ref, name, -1, H5R_OBJECT);
}
catch (IdComponentException E) {
throw IdComponentException("H5Object::reference", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
// Function: H5Object::reference
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it takes an
/// \c H5std_string for the object's name.
///\param ref - IN: Reference pointer
///\param name - IN: Name of the object to be referenced - \c H5std_string
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void H5Object::reference(void* ref, const H5std_string& name) const
{
reference(ref, name.c_str());
}
//--------------------------------------------------------------------------
// Function: H5Object::p_dereference (protected)
// Purpose Dereference a ref into an hdf5 object.
// Parameters
// loc_id - IN: An hdf5 identifier specifying the location of the
// referenced object
// ref - IN: Reference pointer
// ref_type - IN: Reference type
// Exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May 2008 - BMR
// Moved from IdComponent.
//--------------------------------------------------------------------------
hid_t H5Object::p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
temp_id = H5Rdereference(loc_id, ref_type, ref);
if (temp_id < 0)
{
throw ReferenceException("", "H5Rdereference failed");
}
// No failure, set id to the object
return(temp_id);
}
//--------------------------------------------------------------------------
// Function: H5Object::dereference
///\brief Dereferences a reference into an HDF5 object, given an HDF5 object.
///\param obj - IN: Object specifying the location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Object::dereference(H5Object& obj, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
try {
temp_id = p_dereference(obj.getId(), ref, ref_type);
}
catch (ReferenceException E) {
throw ReferenceException("H5Object::dereference - located by object", E.getDetailMsg());
}
p_setId(temp_id);
}
//--------------------------------------------------------------------------
// Function: H5Object::dereference
///\brief Dereferences a reference into an HDF5 object, given an HDF5 file.
///\param h5file - IN: HDF5 file specifying the location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Object::dereference(H5File& h5file, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
try {
temp_id = p_dereference(h5file.getId(), ref, ref_type);
}
catch (ReferenceException E) {
throw ReferenceException("H5Object::dereference - located by file", E.getDetailMsg());
}
p_setId(temp_id);
}
//--------------------------------------------------------------------------
// Function: H5Object::dereference
///\brief Dereferences a reference into an HDF5 object, given an attribute.
///\param attr - IN: Attribute specifying the location of the referenced object
///\param ref - IN: Reference pointer
///\param ref_type - IN: Reference type
///\exception H5::ReferenceException
// Programmer Binh-Minh Ribler - Oct, 2006
// Modification
// May, 2008
// Corrected missing parameters. - BMR
//--------------------------------------------------------------------------
void H5Object::dereference(Attribute& attr, const void* ref, H5R_type_t ref_type)
{
hid_t temp_id;
try {
temp_id = p_dereference(attr.getId(), ref, ref_type);
}
catch (ReferenceException E) {
throw ReferenceException("H5Object::dereference - located by attribute", E.getDetailMsg());
}
p_setId(temp_id);
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: H5Object::p_get_obj_type (protected)
// Purpose Retrieves the type of object that an object reference points to.
// Parameters
// ref - IN: Reference to query
// ref_type - IN: Type of reference to query
// Return An object type, which can be one of the following:
// H5G_LINK Object is a symbolic link.
// H5G_GROUP Object is a group.
// H5G_DATASET Object is a dataset.
// H5G_TYPE Object is a named datatype
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t H5Object::p_get_obj_type(void *ref, H5R_type_t ref_type) const
{
H5G_obj_t obj_type = H5Rget_obj_type1(getId(), ref_type, ref);
if (obj_type == H5G_UNKNOWN)
{
throw IdComponentException("", "H5Rget_obj_type failed");
}
return(obj_type);
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: H5Object::p_get_region (protected)
// Purpose Retrieves a dataspace with the region pointed to selected.
// Parameters
// ref_type - IN: Type of reference to get region of - default
// to H5R_DATASET_REGION
// ref - IN: Reference to get region of
// Return Dataspace id
// Exception H5::IdComponentException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
hid_t H5Object::p_get_region(void *ref, H5R_type_t ref_type) const
{
hid_t space_id = H5Rget_region(getId(), ref_type, ref);
if (space_id < 0)
{
throw IdComponentException("", "H5Rget_region failed");
}
return(space_id);
}
//--------------------------------------------------------------------------
// Function: H5Object destructor
///\brief Noop destructor.

View File

@@ -20,8 +20,7 @@
#include "H5Classes.h" // constains forward class declarations
// H5Object is a baseclass. It has these subclasses:
// Group, AbstractDs, and DataType.
// AbstractDs, in turn, has subclasses DataSet and Attribute.
// Group, DataSet, and DataType.
// DataType, in turn, has several specific datatypes as subclasses.
#ifndef H5_NO_NAMESPACE
@@ -80,6 +79,19 @@ class H5_DLLCPP H5Object : public IdComponent {
void renameAttr(const char* oldname, const char* newname) const;
void renameAttr(const H5std_string& oldname, const H5std_string& newname) const;
// Creates a reference to a named Hdf5 object or to a dataset region
// in this object.
void reference(void* ref, const char* name, const DataSpace& dataspace,
H5R_type_t ref_type = H5R_DATASET_REGION) const;
void reference(void* ref, const char* name) const;
void reference(void* ref, const H5std_string& name) const;
// Open a referenced HDF5 object whose location is specified by either
// a file, an HDF5 object, or an attribute.
void dereference(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
void dereference(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
void dereference(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
// Copy constructor: makes copy of an H5Object object.
H5Object(const H5Object& original);
@@ -93,6 +105,24 @@ class H5_DLLCPP H5Object : public IdComponent {
// Creates a copy of an existing object giving the object id
H5Object( const hid_t object_id );
// Gets the id of the H5 file in which the given object is located.
hid_t p_get_file_id();
// Creates a reference to an HDF5 object or a dataset region.
void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const;
// Dereferences a ref into an hdf5 id.
hid_t p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_type);
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Retrieves the type of object that an object reference points to.
H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Retrieves a dataspace with the region pointed to selected.
hid_t p_get_region(void *ref, H5R_type_t ref_type) const;
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; /* end class H5Object */

View File

@@ -289,7 +289,6 @@ void PredType::commit( H5Object& loc, const H5std_string& name )
bool PredType::committed()
{
throw DataTypeIException("PredType::committed", "Error: Attempting to check for commit status on a predefined datatype." );
return (0);
}
#endif // DOXYGEN_SHOULD_SKIP_THIS

View File

@@ -28,7 +28,7 @@ namespace H5 {
class H5_DLLCPP PredType : public AtomType {
public:
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("PredType"); }
// Makes a copy of the predefined type and stores the new

View File

@@ -25,6 +25,8 @@
#include "H5Exception.h"
#include "H5IdComponent.h"
#include "H5PropList.h"
#include "H5private.h" // for HDfree
#ifndef H5_NO_NAMESPACE
namespace H5 {
@@ -44,7 +46,7 @@ const PropList PropList::DEFAULT( H5P_DEFAULT );
///\brief Default constructor: creates a stub property list object.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PropList::PropList() : IdComponent( 0 ) {}
PropList::PropList() : IdComponent(), id(0) {}
//--------------------------------------------------------------------------
// Function: PropList copy constructor
@@ -52,7 +54,11 @@ PropList::PropList() : IdComponent( 0 ) {}
///\param original - IN: The original property list to copy
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PropList::PropList( const PropList& original ) : IdComponent( original ) {}
PropList::PropList(const PropList& original) : IdComponent(original)
{
id = original.getId();
incRefCount(); // increment number of references to this id
}
//--------------------------------------------------------------------------
// Function: PropList overloaded constructor
@@ -60,29 +66,35 @@ PropList::PropList( const PropList& original ) : IdComponent( original ) {}
///\param plist_id - IN: Id of the existing property list
///\exception H5::PropListIException
// Description
// This function calls H5Pcreate to create a new property list
// if the given id, plist_id, is that of a property class. If
// the given id is equal to H5P_ROOT, then set this
// property's id to H5P_DEFAULT, otherwise, to the given id.
// Note: someone else added this code without comments and this
// description was what I came up with from reading the code.
// This function creates a new property list if a property
// class is provided or makes a copy of a property list if one
// is given. If the given id is anything else, then set this
// property's id to H5P_DEFAULT.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
PropList::PropList( const hid_t plist_id ) : IdComponent(0)
PropList::PropList( const hid_t plist_id ) : IdComponent()
{
if (H5I_GENPROP_CLS == H5Iget_type(plist_id)) {
// call C routine to create the new property
id = H5Pcreate(plist_id);
if( id < 0 )
{
throw PropListIException("PropList constructor", "H5Pcreate failed");
}
}
else {
if(plist_id==H5P_ROOT)
id=H5P_DEFAULT;
else
id=plist_id;
H5I_type_t id_type = H5Iget_type(plist_id);
switch (id_type) {
case H5I_GENPROP_CLS:
// call C routine to create a new property from the given prop class
id = H5Pcreate(plist_id);
if( id < 0 )
{
throw PropListIException("PropList constructor", "H5Pcreate failed");
}
break;
case H5I_GENPROP_LST:
// call C routine to make a copy of the given property list
id = H5Pcopy(plist_id);
if( id < 0 )
{
throw PropListIException("PropList constructor", "H5Pcopy failed");
}
break;
default:
id = H5P_DEFAULT;
break;
}
}
@@ -157,7 +169,7 @@ void PropList::copyProp(PropList& dest, const char *name) const
/// It differs from the above function only in what arguments it
/// accepts.
///\param dest - IN: Destination property list or class
///\param name - IN: Name of the property to copy - \c std::string
///\param name - IN: Name of the property to copy - \c H5std_string
// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
void PropList::copyProp( PropList& dest, const H5std_string& name ) const
@@ -194,7 +206,7 @@ void PropList::copyProp( PropList& dest, PropList& src, const char *name ) const
/// accepts. - Obsolete
///\param dest - IN: Destination property list or class
///\param src - IN: Source property list or class
///\param name - IN: Name of the property to copy - \c std::string
///\param name - IN: Name of the property to copy - \c H5std_string
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void PropList::copyProp( PropList& dest, PropList& src, const H5std_string& name ) const
@@ -202,6 +214,46 @@ void PropList::copyProp( PropList& dest, PropList& src, const H5std_string& name
copyProp( dest, src, name.c_str());
}
//--------------------------------------------------------------------------
// Function: PropList::getId
// Purpose: Get the id of this attribute
// Description:
// Class hierarchy is revised to address bugzilla 1068. Class
// AbstractDS and Attribute are moved out of H5Object. In
// addition, member IdComponent::id is moved into subclasses, and
// IdComponent::getId now becomes pure virtual function.
// Programmer Binh-Minh Ribler - May, 2008
//--------------------------------------------------------------------------
hid_t PropList::getId() const
{
return(id);
}
//--------------------------------------------------------------------------
// Function: PropList::p_setId
///\brief Sets the identifier of this object to a new value.
///
///\exception H5::IdComponentException when the attempt to close the HDF5
/// object fails
// Description:
// The underlaying reference counting in the C library ensures
// that the current valid id of this object is properly closed.
// Then the object's id is reset to the new id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void PropList::p_setId(const hid_t new_id)
{
// handling references to this old id
try {
close();
}
catch (Exception close_error) {
throw PropListIException(inMemFunc("p_setId"), close_error.getDetailMsg());
}
// reset object's id to the given id
id = new_id;
}
//--------------------------------------------------------------------------
// Function: PropList::close
///\brief Closes the property list if it is not a default one.
@@ -218,8 +270,10 @@ void PropList::close()
{
throw PropListIException(inMemFunc("close"), "H5Pclose failed");
}
// reset the id because the property list that it represents is now closed
id = 0;
// reset the id when the property list that it represents is no longer
// referenced
if (getCounter() == 0)
id = 0;
}
}
@@ -273,7 +327,7 @@ bool PropList::propExist(const char* name ) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to check for - \c std::string
///\param name - IN: Name of property to check for - \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
bool PropList::propExist(const H5std_string& name ) const
@@ -326,7 +380,7 @@ void PropList::getProperty(const char* name, void* value) const
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c char pointer
///\return The property that is a \c std::string.
///\return The property that is a \c H5std_string.
///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -343,7 +397,7 @@ H5std_string PropList::getProperty(const char* name) const
}
// Return propety value as a string after deleting temp C-string
H5std_string prop_strg = H5std_string(prop_strg_C);
H5std_string prop_strg(prop_strg_C);
delete []prop_strg_C;
return (prop_strg);
}
@@ -352,7 +406,7 @@ H5std_string PropList::getProperty(const char* name) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c std::string
///\param name - IN: Name of property to query - \c H5std_string
///\param value - OUT: Pointer to the buffer for the property value
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -365,8 +419,8 @@ void PropList::getProperty(const H5std_string& name, void* value) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c std::string
///\return The property that is a \c std::string.
///\param name - IN: Name of property to query - \c H5std_string
///\return The property that is a \c H5std_string.
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
H5std_string PropList::getProperty(const H5std_string& name) const
@@ -402,7 +456,7 @@ size_t PropList::getPropSize(const char *name) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to query - \c std::string
///\param name - IN: Name of property to query - \c H5std_string
///
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -421,12 +475,13 @@ size_t PropList::getPropSize(const H5std_string& name) const
H5std_string PropList::getClassName() const
{
char* temp_str;
temp_str = H5Pget_class_name(id);
temp_str = H5Pget_class_name(id); // this API specified that temp_str must
// be freed.
if (temp_str != NULL)
{
H5std_string class_name = H5std_string(temp_str);
free(temp_str);
H5std_string class_name(temp_str);
HDfree(temp_str);
return(class_name);
}
else
@@ -489,7 +544,7 @@ void PropList::setProperty(const char* name, const char* charptr) const
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to set - \c char pointer
///\param strg - IN: Value for the property is a \c std::string
///\param strg - IN: Value for the property is a \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void PropList::setProperty(const char* name, H5std_string& strg) const
@@ -502,7 +557,7 @@ void PropList::setProperty(const char* name, H5std_string& strg) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to set - \c std::string
///\param name - IN: Name of property to set - \c H5std_string
///\param value - IN: Void pointer to the value for the property
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
@@ -516,8 +571,8 @@ void PropList::setProperty(const H5std_string& name, void* value) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to set - \c std::string
///\param strg - IN: Value for the property is a \c std::string
///\param name - IN: Name of property to set - \c H5std_string
///\param strg - IN: Value for the property is a \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void PropList::setProperty(const H5std_string& name, H5std_string& strg) const
@@ -569,7 +624,7 @@ void PropList::removeProp(const char *name) const
///\brief This is an overloaded member function, provided for convenience.
/// It differs from the above function only in what arguments it
/// accepts.
///\param name - IN: Name of property to remove - \c std::string
///\param name - IN: Name of property to remove - \c H5std_string
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
void PropList::removeProp(const H5std_string& name) const

View File

@@ -94,7 +94,7 @@ class H5_DLLCPP PropList : public IdComponent {
void removeProp(const char *name) const;
void removeProp(const H5std_string& name) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("PropList"); }
// Default constructor: creates a stub PropList object.
@@ -103,8 +103,17 @@ class H5_DLLCPP PropList : public IdComponent {
// Copy constructor: creates a copy of a PropList object.
PropList(const PropList& original);
// Gets the property list id.
virtual hid_t getId() const;
// Destructor: properly terminates access to this property list.
virtual ~PropList();
protected:
hid_t id; // HDF5 property list id
// Sets the property list id.
virtual void p_setId(const hid_t new_id);
};
#ifndef H5_NO_NAMESPACE

View File

@@ -87,7 +87,7 @@ StrType::StrType( const PredType& pred_type, const size_t& size ) : AtomType()
// Function: StrType overloaded constructor
///\brief Creates a string datatype with a specified length
///\param dummy - IN: To simplify calling the previous constructor
// and avoid prototype clash with another constructor
/// and avoid prototype clash with another constructor
///\param size - IN: Length of the new string type
///\exception H5::DataTypeIException
///\par Description
@@ -209,7 +209,7 @@ H5T_str_t StrType::getStrpad() const
///\exception H5::DataTypeIException
///\par Description
/// For detail, please refer to the C layer Reference Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5T.html#Datatype-SetStrpad
/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-SetStrpad
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void StrType::setStrpad( H5T_str_t strpad ) const

View File

@@ -47,7 +47,7 @@ class H5_DLLCPP StrType : public AtomType {
// Defines the storage mechanism for character strings.
void setStrpad(H5T_str_t strpad) const;
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("StrType"); }
// default constructor

View File

@@ -30,7 +30,7 @@ class H5_DLLCPP VarLenType : public DataType {
// on the specified base type.
VarLenType(const DataType* base_type);
// Returns this class name
///\brief Returns this class name
virtual H5std_string fromClass () const { return("VarLenType"); }
// Copy constructor: makes copy of the original object.

View File

@@ -19,6 +19,7 @@
#
include $(top_srcdir)/config/commence.am
include $(top_srcdir)/config/lt_vers.am
# Include src directory
INCLUDES=-I$(top_srcdir)/src
@@ -26,10 +27,13 @@ INCLUDES=-I$(top_srcdir)/src
# This is our main target
lib_LTLIBRARIES=libhdf5_cpp.la
# Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am)
libhdf5_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
# Shared C++ libraries aren't universally supported.
if CXX_SHARED_CONDITIONAL
else
AM_LDFLAGS=-static
AM_LDFLAGS+=-static
endif
bin_SCRIPTS=h5c++
@@ -64,6 +68,6 @@ mostlyclean-local:
fi
# Mark this directory as part of the C++ API
HDF_CXX=yes
CXX_API=yes
include $(top_srcdir)/config/conclude.am

Some files were not shown because too many files have changed in this diff Show More