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