Maintenance for the HPUX 11.23 platform.
Problem:
C++ shared libraries are not supported for the 64bit mode (+DD64 compiler flag)
Solution:
Disable shared C++ library when +DD64 flag is detected.
Platforms tested:
sirius (HPUX 11.23 at UMKC) and kagiso
The version of libtool used by HDF5 isn't directly affected by the reconfigure
script; instead, libtoolize --force must be used by hand. Libtool was the
source of the problem, so rolling its version back to 1.5.14 should solve the
issue (at least temporarily).
Reconfigure should still work on both heping and kagiso.
Tested on heping, kagiso, and tg-login3.
Should disable linking against shared libraries in Fortran for compilers that
don't support shared libraries.
Should also fix problem when the wrong Fortran file extension was specified.
If these changes don't solve the Daily Test issues, I'll look at backing out
the autotool version change until I have time to fix them.
Tested on heping, kagiso, juniper.
It seems that the latest version of libtool is linking against shared versions
of the szip libraries in Fortran, rather than the static versions. ifort
doesn't support shared libraries at all.
To solve the problem, we avoid shared libraries entirely unless we're
building shared Fortran libraries ourselves.
If libtool always behaves like this now, it may cause similar problems on
other machines. If you notice that a machine is breaking when it links against
a shared library, let me know.
Tested on kagiso; nothing new is broken. If Albert has time this afternoon
I'll ask him to test on tg-login3 as well.
option --enable-direct-vfd/--disable-direct-vfd to enable/disable Direct I/O support. The default
is enabled. There's a small test in test/vfd.c. Another way to test it is to set environment
variable HDF5_DRIVER to "direct" and run "make check" in the test/ directory. There'll be some
further improvement in the following checkin including allowing user to provide memory boundary
value, file block size, and copying buffer size.
and quote its arguments. Also checks for the 'socket' library on
Solaris.
If this patch passes the Daily Tests and makes the user happy, I'll
port it back to the 1.6 branch.
Tested on mir and sol.
File format is not stable, don't keep files produced!
Description:
First stage of checkins modifying the format of groups to support creation
order. Implement "dense" storage for links in groups.
Try to clarify some of the symbols for the H5L API.
Add the H5Pset_latest_format() flag for FAPLs, to choose to use the newest
file format options (including "dense" link storage in groups)
Add the H5Pset_track_creation_order() flag for GCPLs, to enable creation
order tracking in groups (although no index on creation order yet).
Remove --enable-group-revision configure flag, as file format issues are
now handled in a backwardly/forwardly compatible way.
Clean up lots of compiler warnings and other minor formatting issues.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Linux/64 2.4 (mir) w/enable-v1.6 compa
Mac OSX/32 10.4.8 (amazon)
AIX 5.3 (copper) w/parallel & FORTRAN
Use a slightly less efficient method of computing the log2() on SGI IRIX64,
in order to avoid a compiler bug when optimizations are turned on.
Tested on:
SGI IRIX64 6.5 (atlantia)
Removed free space manager from "enable-debug=all" list of flags, it's
not really designed for "user level" debugging.
Tested on:
FreeBSD 4.11 (sleipnir)
Refactored object deletion code for fractal heap to fix scaling problems.
Passing all previous tests again now.
Tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4 (chicago)
Mac OS X (amazon)
it uses the API function H5Gcopy to copy groups and datasets from file
to file, read from a command line
note: the test script is not finished yet
tested on heping, copper, shanti
1) Added trace file support to the metadata cache. This allows capture
of all metadata cache calls in trace files for purposes of optimization
and debuging.
2) Added an expunge entry function. This allows an entry to be deleteded
from the cache without writing it to disk even if it is dirty.
3) Added a function call to resize pinned entries.
4) Added code to deal with entries that are dirty on load. This is
needed in support of a bug fix which can alter object headers on
load to repair files.
5) Added progress reporting code to the "MDC API smoke check" test in
cache_api.c. To enable the progress reporting, set report_progress
to TRUE in mdc_api_call_smoke_check().
Tested with h5committest, and a parallel test on phoenix (dual athelon
linux box).
Description: Mac OS 10.4 on PowerPC chip has some errors to convert (unsigned)
long long to long double. When the bit sequences are 0x003ff..., 0x007fff...,
0x00ffff..., 0x01ffff..., 0x7fffff..., the converted values are twice as big
as they should be.
Solution: Detect the error in configure and disable the compiler conversion
and test case.
Platforms tested: h5committest, Mac OS 10.4, and fuss.
Configuration feature
Description:
'make install' now tests both static and shared libraries if both are installed.
Solution:
Previously, shared libraries were only tested when static libraries were not installed.
Also cleaned up line in commence.am that was including HL library in all Makefiles.
Platforms tested:
mir (Makefile change only)
Description: Data conversion from long double to (unsigned) long long
returns some incorrect values on Mac OS 10.4 and SGI IRIX64 6.5. The
conversions start to go wrong when the long double is
20041683600089727.779961 (0x4351ccf385ebc8a0bfcc2a...). If adjusting
the values higher by assigning 0x...c8a0cf... or 0x...c8a0df..., the
converted values go wild.
Solution: Detect this error in configure.in and disable compiler
conversions from long double to (unsigned) long long for Mac OS 10.4
and IRIX64 6.5.
Platforms tested: h5committest, Mac OS 10.4, and IRIX64 6.5.
Description: Added test script and two test files in the tools/misc/testfiles
directory for testing h5stat tool; modified Makefile.am in tools/misc
and configure.in files to run the new test script; reran bin/recofigure
to update relevant configuration files; updated MANIFEST
Solution:
Platforms tested: heping with in place and srcdir builds; will do more testing
after the checkin.
Misc. update:
Bug fix
Description:
Changed the semantics of --enable-stream-vfd and --enable-shared.
Both are now disabled by default when parallel HDF5 is being built.
Solution:
Both shared and stream-vfd are disabled by default in parallel, but can
be enabled explicitly if the user chooses.
Before, shared was always enabled by default and stream-vfd was
always disabled in parallel.
Platforms tested:
heping, mir (configuration change only)
Bug fix - bugzilla #552
Description:
On Cray X1, trying to use : as an argument confused the system.
Solution:
Added a test in configure to see if : as an argument is bad.
If so, skipped the test.
Platforms tested:
mir, Cray X1 (change to configure only)
Description: Ran /bin/h5vers to change suffix to alpha4 after creating hdf5-1.8.0-alpha3
tar ball and tagging the release with hdf5_1_8_0_alpha3 tag
Solution:
Platforms tested:
Misc. update:
Description: There was some logical confusion about the value of the macro
H5_HW_FP_TO_LLONG_NOT_WORKS. It's supposed to be true for Windows, but false
for Unix machines.
Solution: Corrected.
Platforms tested: fuss(Linux) and amazon(MacOS 10.4) - simple change.
Bug fix.
Description:
The ${TR}, though avoid the error, is inconvenient. It is needed
because configure.in use the char range in the style of 'a-z'.
The other style of '[a-z]' is more commonly accepted by all tr
but autoconf tends to strip away [], making the syntax rather
clumsy.
Solution:
Learned from autoconf that it avoids the use of character range
by just spell all the letters out. Changed our tr commands to
use those variables defined by autoconf. Also removed the
definition of ${TR} since it will cause inconsistancy when
autoconf also use plain 'tr' in its generated code.
The Makefile.in are changed because the elimination of ${TR} from
configure triggered its removal from all Makefil.in. That is okay
because ${TR} is not used at all in Makefile.
Platforms tested:
h5committested. (sol failed to connected). also tested in shanti
using both /usr/ucb/tr and /bin/tr (the bad one before.)
Misc. update:
Updated both INSTALL and RELEASE files.
Bug fix.
Description:
Some machines (e.g., HPUX) will have off64_t defined but no support
for stat64 unless certain LargeFile macro is turned on. This caused
the last fix on H5private not quite right which caused compiling failures.
Solution:
Added stat64 and fstat64 tests and then will use them only if they
are supported.
Platforms tested:
Tested on kelgia, copper and heping (pll).
(Compiling alright but tests for kelgia and heping are not done.
expect no problems.)
bug fix.
Description:
Previous H5private.h would attempt to use the off64_t/stat64/etc
by checking just sizeof __INT64 being 8. This caused errors in
some machines like alpha cluster which is a 64bit machine. Its
compiler supports the type __int64 but it does not support
off64_t since its off_t is already 64bits big. The above code
casued the compiler to complain about the unknown off64_t and
such.
Solution:
H5private.h:
Changed the code to use the pseudo standard of off64_t/stat64/etc
only if sizeof(off_t) is not 64 bits AND sizeof(off64_t) exists
and is 64 bits. This assumes if off64_t is defined, all those
stat64, fstat64, etc are supported too.
configure.in:
configure:
Added the testing of sizeof(off64_t) to support the above solution.
Platforms tested:
h5committested. Also tested at LANL QSC.
Bug fix
Description:
Removed some extra compiler flags that were being added in configure
Solution:
After my previous changes, some of autoconf's macros were realizing that
we had no CFLAGS defined and were helpfully supplying some to us, which
were causing errors on some platforms.
Initializing all of the *FLAGS variables prevented this from happening.
Platforms tested:
mir (minor change)
H5_CFLAGS change
Description:
Converted a few platforms to use H5_CFLAGS to "test the waters"
Solution:
Modified a few config/* files to use H5_CFLAGS for non-essential
flags.
Platforms tested:
mir, heping
Several bug fixes
Description:
Added config file for Cray X1 (previous file was misnamed)
Simplified some code in hyperslab.c test that seemed to have been
confusing compiler on Cray X1.
Fixed typo in config/commence.am
Cleaned up hl/src/Makefile.am
Solution:
All four fixes should be straightforward. The failure on Cray was
very difficult to debug, but involved arithmetic errors.
This change seems to fix it.
Platforms tested:
heping, copper, sol, some Cray X1 (more testing when system comes back up)
Description: Here is what I did:
modified MANIFEST according Quincey's instructions to fix
the problem exposed by bin/release (compilation fails
because some header files were not included in the distribution)
fixed small typo and modified include_HEADERS line in
src/Makefile.am to address the problem exposed by bin/release
ran bin/h5vers to change version number to 1.8.0-alpha0
ran bin/release to release tar ball to the ftp server
Solution:
Platforms tested: mir MANY,MANY,MANY times
Misc. update:
Changed to production mode default on, debug mode default off to prepare
for 1.8.0alpha0 release.
Platforms tested:
Tested in heping but only did the configure and compared the output with
previous default output. The changes were pretty simple.
Configuration change
Description:
Stream-VFD is now disabled when parallel is enabled.
Solution:
Stream-VFD was causing trouble on some platforms when both it and
parallel HDF5 were being used. This is a pretty odd use case, so
we now disable stream vfd when parallel is being used.
This required moving the test for the stream vfd after the test
for parallel HDF5 in configure.in.
Platforms tested:
mir, modi4 (configure change only)
new feature
Description:
1) separated the HL library into "public" and "private" header files, with the same caracteristics as the basic library
2) added the public headers to hdf5.h (with a conditional include macro, defined in configure.in)
3) added the path to HL in all Makefile.am 's , because of the inclusion in hdf5.h
Solution:
Platforms tested:
linux 32, 64
AIX
solaris
with fortran and c++
(one packet table example fails)
Misc. update:
Code cleanup
Description:
Add "--enable-group-revision" configure flag (defaulting to off).
Also, "prettify" the configure summary a bit
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4 32-bit (heping)
Linux 2.4 64-bit (mir)
Solaris 2.9 (shanti)
Bug fix
Description:
Made parallel fortran configuration happier on modi4
Solution:
The old configure macro, AC_TRY_LINK, added a couple of extra lines to
the Fortran test program which the new macro doesn't. Added those
lines manually.
Platforms tested:
modi4, copper (change should affect only parallel fortran)
Configure cleanup
Description:
Removed unused macros, migrated to non-depreciated macros.
Solution:
The changes to use standard AC_TRY_LIB macros earlier this week
seem not to have broken anything, so I deleted the local macros in
acsite.m4 (with an eye to eventually deleting the rest of the file and
using only autoconf-supported macros).
Replaced the depreciated AC_TRY_LIB with AC_LIB_IFELSE to shut up
warnings during reconfigure.
Platforms tested:
mir, copper (should be just cleanup)
configure refactoring
Description:
Migrated a couple of Fortran macros to standard autoconf macros
Solution:
HDF5 had a couple of macros, AC_TRY_FLINK and AC_CHECK_FLIB, which were
adaptions of standard autoconf macros before those macros supported
F90.
Now Autoconf seems to have better support for f90, so its standard macros
AC_TRY_LINK and AC_CHECK_LIB can do this job (and move the burden of
supporting those macros to autoconf).
Platforms tested:
heping, modi4, copper
Disable debugging feature
Description:
Disable the "function stack" by default & take out it's dependency on
the "enable-debug" configure flag. The function stack code can slow things
down quite a bit and shouldn't be enabled for the upcoming alpha testing.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4 (chicago)
Mac OSX (amazon)
Bug fix/Feature
Description:
Modify the library to use rand_r, when available, instead of srand. If
rand_r is not available, it will try to use srandom/random, and then finally
fall back to srand/rand.
Solution:
A couple places in the library use the srand() function to seed the random
number generator. This can cause problems on certain platforms and could theoretically
cause problems for users who expect a certain sequence of random numbers following their
own call to srand().
Most platforms have an implementation of rand_r, which is identical to rand, except that
it allows for explicit storage of the seed value. The configure script will now check
for the existence of rand_r to facilitate its use in the library.
Two new functions are added, to replace the macros HDsrand/HDrand. These functions are HDrand and
HDsrand. HDrand will call rand_r, if available, or random(), if available, and fall back to rand() if neither
of those is available. HDsrand will store the seed value locally, if rand_r is available. Otherwise, it will call
srandom if available, and fall back to srand otherwise.
Platforms tested:
heping, mir. Really need to test on Red Storm, since that platform motivated this fix, but the machine
is currently not available.
Misc. update:
Moved gif2h5 tool to hl directory
Description:
Added a tools directory under the hl directory and moved the gif2h5 tool
to that directory.
Solution:
The gif2h5 tool was originally built in the tools directory, but this
introduced dependency issues that required special checks in the
Makefiles.am and required the top-level build order to be changed
because it depended on the HL library.
For simplicity in the Makefiles now and in the future, the gif2h5 tool
was moved to be underneath the hl library.
Platforms tested:
mir, copper, modi4, shanti
Supports for collective chunk IO inside parallel HDF5
Description:
Added a macro hdf5_mpi_special_collective_io_works to filter out
some mpi-io packages that don't support collective IO for no IO
contributions in some processes.
Solution:
Using AC_CACHE_VAL to do the job.
Platforms tested:
Parallel:
IBM AIX 5.2(copper)
Linux (heping) mpich-1.2.6
SDSC Teragrid mpich-1.2.5
Linux(Tungsten) mpich-1.2.6
Altix(NCSA cobalt)
Seq:
Linux(heping)
Misc. update: