The development branch was changed to default enable-production for the
v1.8 release but had not switched back to default development mode.
Solution:
Changed it back to --disable-production (aka development) as the default.
Also ran bin/reconfigure to update configure.
Tested:
Smirom only. No h5committest since the change is trivial and if it works
at smirom, it should work everywhere else.
Description:
Previously, we created a patch for Cygwin to skip checking for the timezone variable. We made this change in both the trunk and hdf5_1_8 branch. However, in the branch version, we seemed to have used wrong quotes in our check ('uname' rather than `uname`). This corrects the typo
Tested:
Cygwin on WinXP
Description:
This is the same patch that Mike McGreevy helped me with on the 1.8 branch. The latest cygwin DLL has trouble with the global timezone variable. Now in configure, we target CYGWIN with a case statement, and avoid the problem.
Tested:
Cygwin on WinXP
Tested: kagiso only. Not need for h5committest since it is a configure simple
change. If it works correct in kagiso, it should work the same for all other
machines.
Add work-around to allow reading files that were produced with a buggy
earlier version of the library, which could create objects with the wrong
object header message count. There is now a configure flag
"--enable-strict-format-checks" which triggers a failure on reading a file
with this sort of corruption (when enabled) and allows the object to be read
(when disabled). The default value for the "strict-format-checks" flag is
yes when the "debug" flag is enabled and no when the "debug" flag is disabled.
Note that if strict format checks are disabled (allowing objects with
this particular kind of corruption to be read) and the file is opened with
write access, the library will re-write the object header for the corrupt
object with the correct # of object header messages.
This closes bugzilla bug #1010.
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.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Removed the stream-vfd from the basic library code.
(The stream-vfd source files are not removed yet but the MANIFEST has been
updated to NOT release those stream-vfd source files.)
Platforms tested:
Kagiso and smirom.
Then test the release tar ball in kagiso.
Remove --enable-hdfv1_6 configure flag, now that all dependencies on it
have been removed and new --with-default-api-version=[v16|v18] and
--disable-deprecated-symbols flags have taken its place.
Update types in bin/trace so that bin/reconfigure runs cleanly.
Run bin/reconfigure to regenerate configure script, along with
other associated files, etc.
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.4.10 (amazon) in debug mode
First real use of API versioning code, H5E routines switched to use
new API versioning scheme.
Tested on:
Mac OS X/32 10.4.10 (amazon)
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (kagiso)
Linux/64 2.6 (smirom)
Solaris/32 5.10 (linew)
1. In H5Dwrite and H5Dread, let the data buffer point to a fake address if the application passes
in an empty buffer. This is mainly for MPIO programs that some processes may not have any
data to write or read but still participate the I/O. This solution solves some MPI's problem
like the ChaMPIon on tungsten which doesn't support empty buffer.
2. The ChaMPIon on tungsten doesn't support complex derived MPI data type correctly and collective
I/O when some processes don't have any data to write or read correctly. Detect the compiler
"cmpicc" in the system-specific config file and set the variables for these two cases to false.
The PHDF5 library already has set up a way to switch collective chunked I/O to independent
under these two cases.
3. A bug fix - During the work of the optimization for compound data I/O, the case for switching
collective chunked I/O to independent I/O was leftout. Fixed it by adding I/O caching to it in
H5D_multi_chunk_collective_io in H5Dmpio.c.
Tested on tungsten, cobalt, and kagiso for parallel; on linew and smirom for serial.
Description: Configure will now detect the presence of the 'siglongjmp' function. If present,
the macro H5_HAVE_SIGLONGJMP will be defined in src/H5pubconf.h.
Tested: kagiso, smirom, linew
Remove stray reference to "group revision" configure flag
Remove Windows-specific EOL characters from src/H5FDwindows.c
Add some missing types to bin/trace
Re-run bin/reconfigure script to regenerate information after changes above.
Tested on:
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Linux/32 2.6 (linux)
Solaris/32 2.10 (linew)
Add --enable-deprecated-symbols configure option, to allow users to
remove deprecated public API symbols at configure time.
Add bin/make_vers script to bin/reconfigure actions.
Run bin/reconfigure to regenerate autotool components.
Tested on:
Mac OS X/32 10.4.10 (amazon)
FreeBSD/32 6.2 (duty)
Linux/32 2.6 (kagiso)
2) Removing configuration of c++/src/H5cxx_pubconf.h file.
Reasoning: the additional pubconf file caused compilation complications, this is cleaner.
Tested: kagiso, smirom
Description: added new configuration to generate a pubconf file
in the c++/src directory, H5cxx_pubconf.h. When C++
compiler recognizes 'offsetof', the macro
H5_CXX_HAVE_OFFSETOF is defined in the new
pubconf file.
tested: kagiso, smirom
Description: When the compiler has the __offsetof__ extension, the
H5_HAVE_OFFSETOF macro will be defined. When the compiler
does not have the extension, the macro will remain undefined.
Tested: kagiso
Hook "default VFD" configure macros into library.
Also, make "default VFD" default to sec2 instead of nothing.
Tested on:
FreeBSD/32 6.2 (duty)
FreeBSD/64 6.2 (liberty)
Mac OS X/32 10.4.9 (amazon)
Description: this flag will define the macro H5_DEFAULT_VFD in src/pubconf.h
and set it to be either H5FD_SEC2 or H5FD_STDIO, depending on the
value set with the configuration flag (either sec2 or stdio).
Tested: kagiso, smirom, linew
Description: a new configure flag has been created that will now set a macro
in the test/Makefile. The flag is with-default-vfd=. When set to
a virtual file driver (e.g. "--with-default-vfd=sec2"), the macro
DEFAULT_VFD will hold this value.
Tested: kagiso, smirom, linew
file size from MPI_File_get_size. Bypass this problem by replacing it with
stat. Add an option --disable-mpi-size in configure to indicate this function
doesn't work properly. Add a test in testpar/t_mpi.c, too. If it returns wrong
file size, print out a warning.
Tested on kagiso (parallel) because already tested the same change to v1.6 on
several platforms (kagiso, cobalt, copper, and sol).
Change back to clearing memory buffers by default, but give users option
to disable this, for performance reasons (--disable-clear-file-buffers).
Also, add configure option (--enable-using-memchecker) to conveniently
control making the library "play nice" with memory checking tools like valgrind
and purify.
Tested on:
Mac OS X/32 10.4.9 (amazon)
FreeBSD/32 6.2 (duty)
Linux/32 2.6 (kagiso)
Change --enable-debug default to no if producton is enabled.
Platform tested:
kagiso just doing configure with various combinations of option and varified the
output.
check if fseeko is available. Using it instead of fseek can support
big files because the offset is of type off_t not long int. Also
added the test for STDIO in big.c.
Switch the default setting for configure from --enable-production/--disable-debug
to --disable-production/--enable-debug.
Platform Tested:
In kagiso with fortran and C++. No commit test because changes
happened in configure and it is straight forward.
The static szip libraries are working as intended, but when shared szip
libraries are present and intended for use they cannot be opened. A check
has been implemented to test if shared szip libraries are functional on
current platform. If they are not, and the user is trying to use them,
szip is now disbaled and the user is informed.
This issue occurs on kagiso, and the resolution was tested on kagiso.
platform, since configure already uses rm, but it will prevent a bug in the
(bizarre) case that a system has rm somewhere other than /bin.
Tested on smirom and kagiso.
Description:
The lone colon test left behind the a.out file. Added a /bin/rm to clean it up.
Platform tested:
Kagiso only since it is a trivial change.
It seems that while Cygwin supports the time command, it has trouble with
the syntax
srcdir="../../hdf5/test" time ./testhdf5
and complains.
The solution is to test the above case in configure and not to use the time
command if it fails; Cygwin is fine with
srcdir="../../hdf5/test" ./testhdf5
Tested on Cygwin and kagiso. This feature shouldn't be a major compatibility
problem since every platform but Cygwin is already fine with the current
syntax.
Auto-detect the support for the posix_memalign routine and disable
the direct I/O VFD if posix_memalign is not supported. This should allow
direct I/O to be auto-detected and disabled on FreeBSD. (Direct I/O itself
works fine, but doesn't have the alignment requirements on FreeBSD that it
has on Linux, so the code would have to be re-worked to not use posix_memalign
and we don't need to support that right now).
Tested on:
FreeBSD/32 6.1 (duty)
Linux/32 2.4 (kagiso)
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:
Added high-level example directories
Description:
Refactored common code out of examples Makefiles.am, added high-level
example directories, added packet table examples.
Solution:
Examples now draw from a common config/examples.am file, which
contains rules for installing, uninstalling, and cleaning examples.
High-level example directories are mostly empty, except for the
C and C++ packet table tests.
Platforms tested:
mir, sleipnir, copper, shanti
Feature.
Description:
Removed the entry for tflops which has retired.
Added a special --host entry for redstorm.
This allows "configure --host=redstorm" for building in RedStorm.
Platforms tested:
Red Storm.
Unstable format version marker.
Description:
This marks the Check in baseline for compact group revisions,
which radically revises the source code for managing groups and object headers.
Earlier versions (1.7.52 or earlier) have the original format. This version
and later have the unstable format until further notice.
Platforms tested:
h5committested.
New feature
Description:
Check in baseline for compact group revisions, which radically revises the
source code for managing groups and object headers.
WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!!
WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!!
This initiates the "unstable" phase of the 1.7.x branch, leading up
to the 1.8.0 release. Please test this code, but do _NOT_ keep files created
with it - the format will change again before the release and you will not
be able to read your old files!!!
WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!!
WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!!
Solution:
There's too many changes to really describe them all, but some of them
include:
- Stop abusing the H5G_entry_t structure and split it into two separate
structures for non-symbol table node use within the library: H5O_loc_t
for object locations in a file and H5G_name_t to store the path to
an opened object. H5G_entry_t is now only used for storing symbol
table entries on disk.
- Retire H5G_namei() in favor of a more general mechanism for traversing
group paths and issuing callbacks on objects located. This gets us out
of the business of hacking H5G_namei() for new features, generally.
- Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t
- Lots more...
Platforms tested:
h5committested and maybe another dozen configurations.... :-)
Bug fix/feature
Description:
Added support for -shlib in h5fc and h5c++.
Made check-install use -shlib when only shared libraries have been installed.
Solution:
h5fc and h5c++ didn't recognize -shlib. Stole code from h5cc to link against
shared libraries.
When static libraries are disabled, the examples Makefiles will automatically
use the -shlib option to link against shared libraries. Thus,
--disable-static and make check-install should work together.
Platforms tested:
heping(disable-static, enable-static, fortran, c++), modi4 (disable-static, fortran, c++, parallel, enable-static)
Bug fix
Description:
Changed configure.in to use an environment variable TR to set the path
to the tr utility.
Solution:
There are two kind of tr on Solaris with slightly different syntax.
HDF5's configure relies on the "standard" tr. Traditionally, HDF5ers
have needed to make sure that the "right" tr was found before the
wrong one in their path; now they can use an environment variable.
Platforms tested:
mir, shanti, sol
Misc. update:
Forgot to update release notes. Off to do that now.
Makefile bug fix
Description:
Previously, automake didn't output rules to build perform/mpi-perf or
the test/gen_* programs.
Now these can be built by typing 'make mpi-perf' (or 'make foo') or by
configuring with --enable-build-all.
Solution:
Automake doesn't like having rules for programs it doesn't build. Tricked
it by having these programs built "sometimes"--whenever the user enables
--build-all. This should be used mostly for testing and to ensure that
these helper programs compile.
***IMPORTANT***
These programs do *not* currently compile. When --enable-build-all is used
(not the default), gen_new_fill fails because it uses an old API. This is
an existing "bug" that has simply been exposed by this checkin.
Platforms tested:
sleipnir, modi4, sol
Misc. update:
Bug fix
Description:
Some platforms complain that tcp.h is present but cannot be compiled.
Solution:
This is because tcp.h needs in.h to be included.
Checked for netinet/in.h and included it when netinet/tcp.h is being
checked.
Platforms tested:
mir, cu11
Bug fix
Description:
Using the -xarch=v9 flag to specify 64-bit compilation breaks C++ shared
libraries.
Disable shared C++ libraries if this flag is used.
Solution:
Instead of trying to disable compilers which recognize the -xarch flag,
grep for it in CXX, CXXFLAGS, etc.
Platforms tested:
modi4, shanti, sleipnir
Misc. update:
Update to RELEASE and build instructions will be forthcoming once
shared Fortran/C++ libraries are regularly passing the Daily Tests.
Feature
Description:
Added H5_CFLAGS, etc. to 1.7 branch.
Now compilation flags can be put in H5_*FLAGS and they'll be used when
building hdf5 but not in h5cc.
Platforms tested:
mir, sleipnir, modi4
Misc. update:
Bug fix
Description:
Disabled C++ shared libraries for Sun Workshop compiler.
Solution:
This bug only seems to happen when using the -xarch=v9 flag to compile in
64-bit mode, but disabling shared libraries entirely for this compiler is
an easier fix (I don't know how to detect 64 bit mode from the command line).
The framework for disabling shared libraries for other C++ compilers is
in place.
Platforms tested:
sol, mir, sleipnir, modi4
Bug fix/feature
Description:
Disabled shared libraries for a number of Fortran compilers that don't
support them.
This allows other compilers to support shared Fortran libraries.
Solution:
Added a conditional, SHARED_FORTRAN_CONDITIONAL, which is true if
Fortran supports shared libraries. It is set in configure.in.
Platforms tested:
mir, sleipnir, colonelk, heping
Bug fix
Description:
Building with --disable-static seems to have been broken on several platforms.
Fixed this.
Configure will now disable shared libraries automatically when using pgf90
or when building on Cygwin.
Solution:
To avoid errors when using shared libraries with pgf90 (which I had not
realized were compiler-specific), I had manually set convenience libraries
to use the -static linking flag. Apparently, this is not necessary, and
caused these libraries to be created as empty archives when --disable-static
was used.
Also, some libraries were including other libraries, which was not
necessary.
I also fixed code in configure.in to correctly detect whether shared
or static libraries are enabled, and moved code that disables shared libraries
to before libtool is created (rather than editing libtool after the fact).
Despite repeated warnings that only one shared library can be linked at a
time, I have yet to have shared libraries break the linking of tests on
any system. We'll see if the Daily Tests turn up anything.
Platforms tested:
mir (fortran, C++), sleipnir (C++), modi4 (fortran, C++, parallel),
sol (fortran, C++), cygwin
Bug fix
Description:
Configure should now throw an error when C++ or threadsafe is enabled
and a parallel compiler is being used.
Platforms tested:
sleipnir and modi4
Tested
--enable-cxx --enable-parallel --disable-cxx
--enable-cxx --disable-parallel
cases in particular.
Misc. update:
Bug fix.
Description:
The incompatibility of enable-parallel and enable-cxx was not correctly
coded. It would complained even for the case of
./configure --enable-cxx --disable-parallel.
Solution:
Changed it to use "$enable_XYZ" = "yes". Fixed the same for the
enable-threadsafe checking too.
Platforms tested:
tested in heping.
Misc. update:
Bug fix
Description:
configure used 'uname -o' to detect Cygwin. This command is fine on
Cygwin, but causes errors on some other platforms (sol).
Fixed this.
Solution:
Used 'uname' with no -o option to identify Cygwin.
Platforms tested:
mir, cygwin (on finrod)
Feature: checking configure flags (bug #90)
Description:
Some configure flags don't work together. Configure now exits with
a sensible error message if one of these combinations is specified.
Solution:
The following flags will throw errors:
--enable-cxx and --enable-parallel
--enable-cxx and --enable-threadsafe
--enable-threadsafe and --enable-parallel
--enable-fphdf5 and --enable-fortran
Platforms tested:
mir, modi4, heping
Misc. update:
Description: Changed configure's default disable-dconv-exception and
disable-dconv-accuracy back to enable-dconv-exception and
enable-dconv-accuracy. The test has been finished.
Platforms tested: fuss - tested before.
Description: made --disable-dconv-accuracy default to let daily test
check every systems. Will change it back to --enable-dconv-accuracy
afterwards.
Platforms tested: h5committest
Description: made --disable-dconv-exception default for configuration
to let daily test run on every system. The default was
--enable-dconv-exception.
Platforms tested: h5committest and fuss.
Description: Changed the configuration options --enable-exception and
--enable-accuracy checked in yesterday to --enable-dconv-exception and
--enable-dconv-accuracy to be more descriptive.
Platforms tested: fuss - simple change.
Description: Added 2 new configure options, --enable-exception and --enable-accuracy.
--enable-exception lets the library check whether user's exception handling
functions are present during compiler data conversions and use them if they are.
When it's disabled, this step is skipped to improve conversion speed. This
step isn't implemented yet for soft conversions because there would be little
gain in speed.
--enable-accuracy guarantees data accuracy during data conversions. It means
the library will choose compiler conversions only if the accurate data is
secured. Otherwise, the library will go for the library's own conversions. If
this option is disabled, the library uses compiler conversions in favor of
their speed as long as they work even if data can be incorrect.
Platforms tested: h5committest and fuss. Some systems may fail after this
checkin.
Description: When converting floating-point numbers to integers and the values of
floating-point number are greater than the maximal value of integer, Cray X1 generates
floating exception.
Solution: Added a test in configure to detect Cray X1's exception. Set a flag to
indicate the machine that 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.
Platforms tested: Cray X1 and h5committest.
Bug fix
Description:
Update Makefiles now that docs are no longer in main hdf5 tree.
Solution:
Changed root-level Makefile.am not to recurse into docs tree.
Removed docs Makefiles from configure.in.
Removed config/commence-doc.am, since it is no longer used.
Platforms tested:
mir (change to Makefiles only)
Bug fixes
Description:
A number of minor changes to Makefiles. Some files will now be cleaned
properly, some comments are more informative, etc.
Platforms tested:
heping, mir, modi4
Description: pgcc version 6.0x have optimization (-O, -O2, or -O3) problem.
It caused multi driver test to fail. The problem happened in a macro
definition.
Solution: Detect these versions and add option "-Mx,28,0x8" to the compiler
to avoid the problem if optimization is enable.
Platforms tested: mir and fuss - simple change.
Purpose:
Configuration feature
Description:
Added 'alias' for host names in configure. Typing ./configure --host=tflops
will now configure with tflops as a host. Previously, this required typing
./configure --host=i386-intel-osfl.
Solution:
Added a section in configure.in which will replace 'tflops' with
'i386-intel-osfl'.
Platforms tested:
sleipnir, mir, heping
Misc. update:
Removing configuration warnings on cygwin.
Description:
winsock.h cannot be compiled by cygwin and that generates configuration warnings.
Remove checking winsock.h on cygwin.
Solution:
Platforms tested:
Misc. update:
Description: See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: This is the fourth step of checkin. A test suit is added for h5repart,
including a program to generate the test files, a script file to run h5repart,
and a program to verify repartitioned files can be opened by the library.
There's a change from the first step of checkin. Family name template is no
longer saved in the superblock because different pathname can make the name
different.
In the third step of checkin, h5repart has been modified. If h5repart is used
to change the size of family member file, the new size(actual member size) is saved
in the superblock.
In the second step of checkin, multi driver is checked against the driver
name saved in superblock. Wrong driver will result in a failure with an error message indicating
multi driver should be used. This change includes split driver because it's a special case for multi
driver.
In the first step of checkin. Family member size and name template(unused at this stage) are saved
in file superblock. When file is reopened,the size passed in thrin superblock. A different size
will trigger a failure with an error message indicating the right size. Wrong driver to open family
file will cause a failure, too.
Platforms tested: h5committest and fuss.
Misc. update: MANIFEST
Configuration feature
Description:
Formerly, bin/reconfigure needed to invoke Automake with the --foreign
flag or it would fail. It turns out that there is a clever way to
specify this flag inside configure.in so that it doesn't need to
be explicitly invoked.
This should make it easier for people not using machines connected
to AFS (e.g., the netCDF folks) to invoke Automake on HDF5.
Platforms tested:
mir and heping
Description: Cygwin compiler doesn't do rounding correctly when converting
"unsigned long long" to "long double".
Solution: Added test case to variable detection of
"hdf5_cv_ullong_to_ldouble_precision_works".
Platforms tested: sleipnir, fuss, and shanti - mainly to test configuration,
don't need to run h5committest.
Output tweak
Description:
In configure.in, users must link to zlib library, but configure then
informs them that "deflate" filter is enabled. Changed output slightly
to indicate that these are the same filter.
Platforms tested:
mir (very minor change)
Portability feature
Description:
The random() and srandom() functions are not available on all machines.
Set up the configure script to automatically detect them, rather than
requiring their presence or absence to be hardcoded.
Solution:
Added AC_CHECK_FUNCS macro to configure.in and replaced
#ifdef WIN32 conditionals with #ifdef H5_HAVE_RANDOM conditionals.
Platforms tested:
sleipnir, Windows
Bug fix
Description:
Kent reminded me that switching the logic wasn't enough, we really needed
to add the definition to the configure script.
Solution:
Do that.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Configuration feature
Description:
Fortran integer types (not reals) are now automatically detected at
build-time.
Solution:
Two helper programs are used, one to detect what types the Fortran compiler
has access to, and one to generate header files for C and Fortran matching
up types.
Platforms tested:
mir, copper, modi4, pommier (last week)
Misc. update:
MANIFEST updated, H5f90fortran_types.f90 removed from configure.in, since
it is not longer generated by configure.
Description: Removed support for SRB driver
Solution: Removed or modified appropriate files; ran reconfigure
to regenerate Makefile.in and configure files.
Platforms tested: heping and shanti
Misc. update: ran bin/chkmanifest on heping
Configuration feature
Description:
Different Fortran compilers mangle function names in different ways
(upper case, lower case, adding underscores). To link between
Fortran and C functions, we need to know what a given function's
name is under a given compiler.
Solution:
Use autoconf's FC_WRAPPERS check to determine the Fortran
naming scheme and define the FC_FUNC_ macro to name our
functions (in H5f90proto.h). Removed references to
our old FNAME macro, as well as flags that indicated whether
function names were upper or lower case.
Platforms tested:
mir, pommier, modi4, copper, more
Feature - conditional compilation
Description:
SRB file driver and tests are now compiled only when SRB is enabled
(using --with-srb during configure).
Solution:
Added an automake conditional in configure.in, altered Makefiles.am in
src and test directories to depend on that conditional.
This should make a nice example for posterity to add conditionally
compiled sources.
Platforms tested:
heping (only configure change)
Purpose:
Added C++ wrapper for Packet Table API.
Description:
Added macro for high-level C++ library (LIBH5CPP_HL), which changes every
Makefile.in.
Added directories for high-level C++ library (though currently only Packet
Table API is supported).
Added both C++ source and tests.
Platforms tested:
sleipnir, mir, modi4
Misc. update:
Configure feature
Description:
On some platforms with some compilers, automake's dependency tracking
is silently disabled. This can be confusing for developers.
Solution:
Set configure to enable dependencies all the time unless the user
explicitly disables them (using the configure flag
--disable-dependency-tracking) or a site file overrides the default
(as is the case on IRIX).
Platforms tested:
sleipnir, mir
IBM MPI-IO has a bug for MPI derived data type, which is used
to support collective IO. In order to avoid this, we provide
a way to turn off collective IO support for this kind of platform.
Description:
Using a new macro called H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS
to turn off irregular hyperslab collective IO support at such platforms.
Solution:
Hard code such platforms under hdf5/config.
So far only IBM AIX has been found to have such problems.
Platforms tested:
heping (Linux) and copper(Aix). Testing at tungsten now, however, it
took almost an hour to build parallel HDF5 at tungsten, it is still building. Cannot wait. Have tested this feature at Tungsten a week ago.
Misc. update:
Automake update cleanup and minor changes
Description:
Removed macros in acsite.m4 that are no longer used.
Switched to using autoconf's AC_LANG_PUSH(Fortran) instead of old
AC_LANG_FORTRAN9X macro.
Switched to using AC_LANG_PUSH() and AC_LANG_POP() (from old AC_LANG_X).
Added ifort to list of Fortran compilers configure will look for.
Added a note about automake change to Release Notes.
Platforms tested:
copper, modi4 (parallel and serial), eirene
Bug fix
Description:
The fortran compiler is named FC. If F9X environment variable is set,
FC should hold the value in F9X. However, this was overwriting values
written to FC by platform-specific config scripts.
This caused copper to find the wrong fortran when building in parallel, and
may have had other symptoms on other platforms.
Solution:
Assign $F9X to $FC at the beginning of configure, before platform-specific
scripts are run. Do this assignment only if FC is empty.
Platforms tested:
copper, modi4 (parallel and serial w/c++), verbena.
This change should only affect fortran build.
Automake version upgrade
Description:
Upgraded automake version from 1.6.2 to 1.9.5.
Changed bin/reconfigure script to use automake 1.9.5.
Changed configure.in and Makefiles to use new FCFLAGS and FC variables
instead of FFLAGS and F9X.
Automake and configure should now do the lion's share of the work
supporting Fortran 9X; macros in acsite.m4 are now mostly unused (will
be cleaned later).
Altered how configure handles pmake; now root-level Makefile.in is
processed by bin/reconfigure to have a .MAKEFLAGS target, since
automake no longer allows us to define unused variables.
Configure now always checks for C++ compiler even if it is not
used, since automake thinks this is the Right Thing To Do and
will break otherwise.
Platforms tested:
Sol, copper, heping, mir, sleipnir, eirene, pommier, kelgia, modi4.
Bug fix
Description:
When C flags are passed in using $CC variable, this can confuse test
commands in configure (for instance, CC='pgcc -tp k8-32').
Solution:
Previous solution didn't entirely solve problem. Wrote a sed snippit
to strip flags from $CC for purposes of test in configure.
Platforms tested:
mir (just a configure bug)
Removed GASS configuration and software packages associated with
it. The following software are no longer configurable.
checking for main in -lcrypto... yes
checking for SSL_get_version in -lssl... yes
checking globus_common.h usability... yes
checking globus_common.h presence... yes
checking for globus_common.h... yes
checking for globus_module_activate in -lglobus_common... yes
checking for main in -lglobus_gass_cache... yes
checking for main in -lglobus_gaa... yes
checking for main in -lglobus_gss... yes
checking for main in -lglobus_gss_assist... yes
checking for main in -lglobus_io... yes
checking for main in -lglobus_gass_transfer_assist... yes
checking for main in -lglobus_gass_transfer... yes
checking for globus_gass_open in -lglobus_gass_file... yes
Platforms tested:
h5committested (but copper was down.) tested in modi4 too.
Bug fix
Description:
Libtool simply doesn't seem to support shared libraries for pgcc, but
tries to build them anyway.
Solution:
Edited configure to disable shared libraries in libtool script when
pgcc is being used.
This is a more drastic fix than the problem requires, but it is
difficult to detect when this problem will occur. There is
discussion online about shared libraries with pgcc, so hopefully
libtool will support pgcc and this fix will become unneccesary.
Platforms tested:
sol, copper, mir, sleipnir
Misc. update:
Bug fix
Description:
A test in configure.in redirected output in a way that made
mir (at least) unhappy (test: too many arguments).
Solution:
Changed the semantics so that mir was happy. This didn't seem to make any
other platforms unhappy, either.
Platforms tested:
eirene, modi4, copper, mir, sleipnir (only tested configure)
Purpose:
Bug fix
Description:
Libtool 1.5.14 added some extra flags that needed to be passed from the compiler
to the linker. icc did not handle this correctly and complained when it saw
unknown flags.
Solution:
Set the -Wl flag correctly on freebsd so that icc knows to pass flags through
to the linker.
Platforms tested:
sleipnir (gcc, g++, icc, gcc40)
Description: The library didn't handle incorrect hardware conversion for datatype. It simply did
convert to incorrect data if any hardware didn't handle correctly.
Solution: During configuration, incorrect hardware conversion is detected and some macros are
defined. Use these macros to decide whether to register hardware conversion in H5T.c. If no hardware
conversion function is registered for certain pair of datatypes, software conversion function will
be used as the conversion path. Although slower than hardware conversion, we're more confident
software conversion is accurate.
So in one sentence to describe library's behavior, if some hardware conversion doesn't work well,
software conversion will be used instead.
Platforms tested: h5committest and fuss.
Misc. update: some changes to configure's comments.
Bug fix
Description:
This checkin addresses two bugs.
Firstly, I used the wrong semantics when detecting if $MAKE is defined to
the empty string or undefined.
Secondly, pmake on IRIX does not work well with automake's dependency tracking
if the build is not an in-place build.
Solution:
Fixed semantics in configure.in.
Disabled automatic dependency tracking automatically on IRIX. This is not
the optimal fix, but it should work fine as long as no one is doing HDF5
development on IRIX, and it is much easier than trying to detect the exact
situations in which dependency tracking fails (or than trying to fix dependency
tracking!).
Platforms tested:
heping, modi4 (pmake and gmake)
Bug fix
Description:
Discovered two small bugs.
When MAKE is defined as the empty string, a test in configure incorrectly
identifies it as pmake. Skipped this test if $MAKE is the empty string.
Two .h5 files produced by a test in the hl directory were not cleaned.
Updated the Makefile.am.
Platforms tested:
heping, modi4 (very minor changes)
Purpose:
Bug fix
Description:
modi4 dies during build with strange errors.
The root cause of these is a two-year-old hack in HDF5's libtool
script that only takes effect on IRIX.
Solution:
Edited the libtool hack (by editing ltmain.sh) to correct a bug in
the hack.
Also made sure that compiler-specific DEFAULT_LIBS are used
when linking.
Platforms tested:
sleipnir, copper, modi4, sol
Bug fix
Description:
pmake (on modi4, for instance) complains about undefined variables
if it is run without the -V flag, which turns those errors to warnings.
Solution:
Added test to configure.in to see if $MAKE will allow Makefiles
with undefined variables. If not, sets -V flag in AM_MAKEFLAGS.
Ensured that all custom make targets use AM_MAKEFLAGS.
Also defined all variables that caused errors in top-level Makefile.am.
This means that pmake can be used to build hdf5 *from the top level
only*. To run make from a subdirectory, still need to use -V flag
(or use make or gmake).
Platforms tested:
modi4, heping, copper, sleipnir
Bug fix
Description:
Found the permanant fix to automake/CVS dependency problem
Solution:
Added AM_MAINTAINER_MODE macro to configure.in.
Now automake will never try to regenerate Makefiles, Makefiles.in,
configure, H5config.h, etc. when they are out of date, nor will it
print any warnings.
Developers should be very very careful to use reconfigure script,
and can add --enable-maintainer-mode flag to configure on heping
to regenerate these files correctly.
Platforms tested:
heping sleipnir copper
Configuration feature
Description:
HDF5 now uses automake to generate Makefiles
Solution:
Makefile.in files are now generated from Makefile.am files.
To reconfigure (after chaning a Makefile.am or configure.in):
/bin/sh bin/reconfigure.sh
Platforms tested:
Many
Bug fix
Description:
Catch another way that vsnprintf() can fail (this time on the HP) and
deal with that.
Platforms tested:
HP/UX 11.x (kelgia)
Doesn't affect other platforms
Bug fix
Description:
Add detect vasprintf() routine and use it instead of vsnprintf() when
formatting error descriptions if it's available.
Added configure test to detect "broken" vsnprintf() implementations which
don't return the correct number of character for strings that are too long to
fit into the buffer provided (currently a problem on the SGIs and probably the
HP).
Re-wrote error formatting code in H5Epush_stack() to handle broken
vsnprintf() implementations, etc.
Platforms tested:
IRIX64 6.5 (modi4)
h5committest
Description: Removed PABLO from the source
Solution:
Platforms tested: arabica with 64-bit, copper with parallel,
heping with GNU C and C++ and PGI fortran (but
I disabled hl, there is some weird problem only
on heping: F9XMODFLAG is not
propagated to the Makefile files
Misc. update:
Description: Intel compiler on Linux has some problem to convert long double to
unsigned int correctly.
Solution: Detect the problem in configure and define a macro to skip this test
if it happens.
Platforms tested: eirene and fuss. Simple change.
Description: The fix of the loss problem of the last 2 bytes of mantissa on sleipnir has
not been successful. It happens when converting from unsigned long long to long double.
The failure has been on and off.
Solution: Hard set a macro to disable unsigned long long->long double for FreeBSD until
a good solution is found to solve this elusive problem.
Platforms tested: sleipnir and fuss. Only sleipnir is concerned.
Misc. update:
Description: For HP-UX11.00, compiler's casting from 'long double' to most of
integers. A macro was hard set in config/hpux11.00 before.
Solution: Let configure detect this case and set the macro.
Platforms tested: kelgia, fuss, modi4. These systems are mainly concerned.
Description: For FreeBSD (sleipnir), when GNU compilers do conversion from
unsigned long long to long double, the last 2 bytes of mantissa are lost.
The impact of precision loss isn't significant.
Solution: Detect this case on FreeBSD in configure, ignore it in dtypes.c
test instead of return failure.
Platforms tested: sleipnir, fuss, modi4. These systems are mainly concerned.
Description: For HP-UX 11.00, the compiler generates 'floating exception'
when converting 'long double' to most of integer types.
Solution: Define a macro for all other systems except HP-UX 11.00. Hard set
this macro to 'no' in config/hpux11.00 to skip this test for HP-UX 11.00.
Platforms tested: modi4, kelgia, fuss
Description: Start to support software conversion between long double and
all integers.
Solution: No major changes to the algorithm. Changes to configure is to
exclude SGI for long double to integers test because there're too many problems
in their compiler.
Platforms tested: h5committest, modi4, fuss, Teragrid, arabica
Misc. update: RELEASE.txt
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)
Description:
Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation. So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.
I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
FreeBSD 4.10 (sleipnir) w/threadsafe
FreeBSD 4.10 (sleipnir) w/backward compatibility
Solaris 2.7 (arabica) w/"purify options"
Solaris 2.8 (sol) w/FORTRAN & C++
AIX 5.x (copper) w/parallel & FORTRAN
IRIX64 6.5 (modi4) w/FORTRAN
Linux 2.4 (heping) w/FORTRAN & C++
Misc. update:
add hl fortran
Description:
Solution:
Platforms tested:
linux (absfot and pgf90)
solaris (32 and 64 bit)
AIX
note : HP gives a compiling error , to be fixed in the future
Misc. update:
insert high level library into main library
Description:
configure.in has a new entry (--enable-hl, disable-hl) it is on by default
the configure message prints info regarding if hl is enabled or not
the tree is
/hl
/hl/src
/hl/test
Solution:
Platforms tested:
linux
solaris
AIX
Misc. update:
Fix SZIP filter to dynmically detect encoder.
Description:
Solution:
See:
http://hdf.ncsa.uiuc.edu/RFC/SZIP/Szip_dynamic_12_Oct.pdf
Platforms tested:
verbena, arabica, cobalt.
Note RE testing:
All automatic tests work as before.
The feature is a configuration thing, so the tests are manual.
Tested with the following configs:
pre-release version of SZIP, with dynamic library,
1. no SZIP
2. SZIP, decoder only
3. SZIP, encoder+decoder
released (static lib) SZIP
4. no SZIP
5. SZIP, decoder only
6. SZIP, encoder+decoder
after build, switch szip in LD_LIBRARY_PATH at run time
7. SZIP decoder
8. SZIP encoder
Misc. update:
Manifest updated
Code cleanup
Description:
Update FORTRAN configuration test code to be more syntacticly correct
and not generate errors with stricter standards checking in the compiler.
Platforms tested:
Linux 2.4 (verbena)
Too minor to require h5committest
Refactor and update fortran configuration
Description:
Changed configure.in to include the production, debugging and profiling
flags for FORTRAN in the command line.
Added '-flags' files for PGI and Intel C compilers
Added '-fflags' files for PGI and Intel FORTRAN compilers
Updated 'gnu-flags' file for GNU C compiler to not modify compiler flags
when gcc is not being used.
Make detection of the correct FORTRAN compiler a bit smarter for Linux
platforms. (And carried over some of the minor changes to other affected
machines)
Platforms tested:
Linux 2.4 (tungsten) w/PGI and Intel C & FORTRAN compilers.
Changes not tested by h5committest
Adding new 'jam' utility
Description:
New utility, plus changes to makefiles
Solution:
See http://hdf.ncsa.uiuc.edu/RFC/Jam
Platforms tested:
verbena (fortran,C++), arabica, hirdls (SGI Irix64)
Misc. update:
Manifest will be done in next checkin.
Code cleanup
Description:
Fix another batch of minor differences between the development and release
branches.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Purpose:
Bug fix
Description:
Modification time test (mtime) would die silently on some systems. This is
because the code is very system-dependant (it relies on getting the current
time and the timezone from the OS).
Solution:
mtime test now uses TEST_ERROR macro to print "FAILED" and to output where the
failure occurred. Configure script is a little smarter about whether
gettimeofday() function returns the timezone correctly.
Further bugs will need to be addressed on a system-by-system basis.
Platforms tested:
sleipnir, arabica, verbena, copper, windows (VC7)
Code cleanup
Description:
Clean up collective chunking code a bit.
Also, add '--enable-instrument' configure flag to have a mechanism for
determining that optimized operations happened correctly in the library (instead
of just the "normal" way) by allowing 'flag' properties to be set outside the
library and set when the "right" thing happens. This is mainly for debugging
and regression checks, so we make certain we don't break optimized I/O by
accident. It's enabled by default when --enable-debug is on (which is on by
default in the development branch and off by default in the release branch),
but can also be independently controlled with its own configure flag.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
IBM p690 (copper) w/parallel
Feature
Description:
Showed the fortran compiler and FFLAGS and CXX compiler and CXXFLAGS
when the corresponding language API is enabled.
Platforms tested:
No h5committest since it is just a simple shell script change.
Tested in Eirene.
Misc. update:
Purpose:
HDF5 now supports SZIP with no encoder.
Description:
SZIP can be configured to have both encoder and decoder or just to have the decoder. HDF5 can now query the configuration of any filter, and will throw errors if users try to write using a filter with encoding disabled.
Solution:
Added H5Zget_filter_info function, changed API for H5Pget_filter and H5P_get_filter_by_id. See SZIP RFC.
Platforms tested:
Copper (fortran, C++, parallel), Sleipnir (C++), Arabica (fortran, C++), Verbena (fortran, C++)
Misc. update:
Update shell scripts
Description:
Switch to generating the testh5dump.sh script at configure time, so we can
determine which filters are available to test.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too small to require h5committest
Description: A new bug is found on HP. There is float exception during conversion from double to
unsigned long long when the value of double is very big.
Solution: Try to catch the problem in configure and skip this part of test.
Platforms tested: kelgia and verbena(mainly these two machines are involved)
Description: The HP compiler cannot convert from float-point numbers to unsigned long long
correctly. It sets the maximal value of unsigned long long as 0x7fffffffffffffff.
Solution: Skip the conversion test when this happens by testing it during configuration.
Platforms tested: kelgia(HP-UX 11) and fuss(RH 8)
Description: For certain compiler(PGI we know so far), during conversion
from float or double to unsigned long long, it does round-up when the
fraction part is greater than 0.5, which shouldn't happen.
Solution: check it during configuration and compensate this offset
during testing in dtypes.
Platforms tested: verbena and fuss. verbena is the only machine with
PGI compiler. Ran it on fuss to verify it with other compiler.
Description: Solaris 64-bit machines cannot handle round-up correctly during
conversion between unsigned (long) long and double.
Solution: During configuration, run a program to test if there is any failure
during conversion. Enable a macro if failures happen and adjust the test/dtypes
for round-up.
Platforms tested: h5committest, arabica 64-bit.
Bug fix (sorta)
Description:
Add hack to allow the MS Visual Studio 6 compiler to build the library.
It cannot cast unsigned long long values to float or double values. So, add
another configuration macro to disable this conversion in the library. Just
the "hardware" conversion is disabled, so the library will still correctly
convert unsigned long long to float and double values, it will just happen
more slowly with the "software" conversion routine.
Platforms tested:
FreeBSD 4.9 (sleipnir) with "Windows" setting faked
inappropriate for h5committest
Bug fix (sorta)
Description:
The SGI machines have problems accurately (and consistently) converting
unsigned long values to float and double values, so put in a bit of a hack in
the datatype conversion test code to allow them to get "close enough". This
hack is enabled at configure time by a flag which should only be set on machines
with this problem.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest