Fix Irix pmake bugs
Description:
Build fails on Irix when builddir != srcdir
Solution:
* acconfig.h
* src/H5config.h.in [REGENERATED]
Added definition for HAVE_STREAM
* config/conclude.in
* config/depend1.in
* config/depend2.in
* config/depend3.in
* config/depend4.in
The `Dependencies' file is located in the source
tree. This fixes bugs for Irix pmake when compiling
outside the source tree. Hopefully it still preserves
Albert's changes which allow concurrent compilations
to not stomp on each other's Dependencies files.
* examples/Dependencies [REGENERATED]
* src/Dependencies [REGENERATED]
* test/Dependencies [REGENERATED]
* tools/Dependencies [REGENERATED]
Regenerated for testing purposes.
Platforms:
i686-pc-linux
mips-sgi-irix6.5
sparc-sun-solaris2.6
Added test program to verify the Stream Virtual File Driver.
Description:
This program tests the functionality of the Stream Virtual File Driver.
1. It spawns two new processes, a sender and a receiver.
2. The sender opens an HDF5 file for writing and writes
a sample dataset to it.
On closing the file the Stream VFD would send the file
contents to any connected client.
3. The receiver serves as a client attempting to open an
HDF5 file for reading. On opening the file the Stream VFD
would establish a socket connection to the sender process,
identified by its hostname (which is localhost in this example)
and a port number, and read the file contents via this socket.
Aftwerwards the dataset is read from the file into memory
and verified.
4. The main program waits for termination of its two child
processes and returns their exit code.
Platforms:
Tested so far under Linux, Irix 32/64bit, OSF1, Solaris, Cray Unicos,
Hitachi SR8000, IBM AIX.
Not tested under Windows yet.
The "FILENAME" declared extern in h5test.h is not always used.
It was used in h5_cleanup to remove temporary files created
during tests. Not all tests codes have used this routine.
Indeed, quite a few of test programs do "#define FILENAME ".
Also, h5_cleanup needs to work in tandem with h5_fixname.
h5_fixname accepts an explicite base_name argument instead
of using the global variable FILENAME. That is cleaner.
Solution:
Added char *base_name[] as a new argument to h5_cleanup, in
the same style as h5_fixname. Removed "extern char *FILENAME..."
from use. Also, undo some unnecessary declaration of "char *FILENAME"
from some tests which don't use it at all (yet).
Platforms tested:
modi4-64(irix64), arabica(solari2.7), eirene(linux)
(arabica could not launch tests automatically. I had to hack
in LD_LIBRARY_PATH to make them run.)
zlib, and zlib isn't in our LD_LIBRARY_PATH or in a standard system
library place (/usr/lib or /lib), then the tests can't run. This fixes it
if the person configures the source with the flag:
--with-zlib=/usr/fnord/include,/usr/fnord/lib
This only works if you're pointing to the shared library version in the
above flag...
were only creating one for all of them). Also changed so that, if they
got an error, it actually specifies that the tests failed on the screen
instead of succeeded ;-)
that all HDF5 API functions are protected by a mutex lock. Basically,
serialized all API calls. To use it, use
configure --enable-threadsafe --with-pthread
** src/H5Tconv.c
** src/H5Tpkg.h
** src/H5Tpublic.h
The H5T_conv_struct_opt() function had a design flaw -- it
didn't keep information about the stride to use to step
through the temporary/background-value buffer and thus nested
invocations would clobber each other's temp buffers. This was
fixed by splitting the `stride' argument into `buf_stride' and
`bkg_stride' arguments for all the conversion functions. THIS
IS AN API CHANGE, but users will get a compiler warning when
they pass their conversion function pointer to H5Tregister().
** src/H5T.c
** src/H5Tprivate.h
Added a bkg_stride argument to the H5T_convert() definition in
order to fix a bug related to the optimized compound datatype
conversion function.
** src/H5T.c
** src/H5A.c
** src/H5D.c
** src/H5Ofill.c
** src/H5P.c
Added bkg_stride=0 argument to the H5T_convert() calls.
** test/dtypes.c
Added a test for the H5T_conv_struct_opt() bug fixed above.
** src/H5FL.c
The H5FL_term() function should return non-zero even when it
couldn't free all the free lists do to their being used by
some other package. When that other package terminates it
will return non-zero, causing H5FL_term() to be called
again. This fixes some of the `infinite loop closing library'
messages.
** tools/pdb2hdf
Uses print_version() instead of doing that itself.
** src/H5Ppublic.h
Renamed H5Pget_gc_reference() declaration to make it match the
definition.
** src/H5FDlog.c
Added API tracing macros.
Removed `const' qualifier from a `char*' member of a struct
which was allocated on the heap.
** src/H5TB.c
Added curly braces to a couple deeply-nested `if' statements
to make them clearer and to shut up the increadibly stupid and
just plain incorrect gcc warning about ambiguous `else'.
** test/titerate.c
Removed incomplete initialization in favor of memset() for one
auto variable to stop compiler warnings.
** tools/Depencencies
Regenerated to remove references to h5dumputil.c
Makefile.in:
acconfig.h:
src/H5F.c:
src/H5FDdpss.c:
src/H5FDdpss.h:
src/H5config.h.in:
test/dpss_read.c:
test/dpss_write.c:
Changed the name DPSS to GRIDSTORAGE since that is the real name
of the API from ANL. DPSS is just one of the protocols it can use.
Changed a bug in the --with-ssl option.
Makefile.in:
Removed the copying of Makefile.dist since it caused problems
when doing a make distclean in a --srcdir configured directory.
serial and parallel test files are tested in different file systems.
Added the global variable, paraprefix, so that it can be set via
command line option.
** src/H5FDpublic.h
Added a #define for H5_HAVE_VFL to make life easier for application
programmers.
** config/depend1
A minor tweak to the way GNU systems generate file dependencies for
the Makefiles.
** src/H5T.c
Fixed a bug with enumeration types not having the correct object
header pointer.