Update
Description:
Updated the h5vers script to automatically update the configure.in
files so that they reflect the correct version in the AC_INIT line.
Platforms tested:
Linux
Update
Description:
Updated the way we used the AC_INIT macros so that it's current to
the new standard way and not deprecated anymore.
Also, added a test for some functions during parallel Fortran
configure. This required the creation of an H5config_fortran.h file
so that we can test for these...
Platforms tested:
Elena is going to test the changes to the fortran after she checks in
her other code. I will test on SDSC machines after getting her code.
The other changes were tested on Linux.
Feature Fix
Description:
Modified the AC_OUTPUT macro to coincide with the now-standard way of
doing things. I.e., you put all of the files you want to generate
into the AC_CONFIG_FILES macro and invode AC_OUTPUT with no
parameters.
Platforms tested:
Linux
Bug fix
Description:
Zlib-compression was reported according to if a Z-library (e.g., libz.a)
has been found. It actually needs the presence of a valid zlib.h header
file and the compress2() routine.
Solution:
Changed the IF_YES_NO to be more general by accepting multiple arguments
and changed the Zlib-compression depends on zlib.h header and the
compress2() routine.
Platforms tested:
Eirene.
Autotools Update
Description:
I've updated autoconf, automake, and libtool to the latest/greatest
versions; 2.53, 1.6, and 1.4.2 resp.
Many changes come with the new versions:
- ltconfig is no longer used
- acconfig.h is no longer used (#define values are declared with
the macro)
- regeneration of all of the aclocal.m4, configure, and
H5config.h.in files.
- new config.{guess,sub} files
- new ltmain.sh file
Platforms tested:
AIX (blue), and Linux
Code Motion
Description:
Removal of HDF4 from the configure/Makefiles. This is a precursor to
the actual physical removal of the HDF4 tools from the HDF5 tree.
Platforms tested:
Arabica, Dangermouse
Bug Fix
Description:
Didn't need to test that the Pablo library had a function in it only
that it was there.
Solution:
Removed that check. Just checked if we can actually find the physical
library and include files where the user tells us they're hiding.
Platforms tested:
Linux
Bug Fix
Description:
Fixed wrong test for the HAVE_PABLO flag. Was testing if it was not a
null string when I should have been testing if it was equal to "yes".
Solution:
Changed test so that it checks if it's equal to "yes" instead of
non-null...
Platforms tested:
Linux
Bug Fix
Description:
Some -I paths weren't included in the h5cc script. That would cause
the compiler to fail if it was trying to find gass header files or
the like.
Solution:
Added the CPPFLAGS macro to the h5cc.in file so that it'll be there
when it's generated. This will also include some -D options which we
compiled the library with, like the LFS flags on Linux.
Also changed the configure* files so that it will "chmod" the created
h5cc file to 755 (executable) since that wasn't happening all the
time...
Platforms tested:
Linux
Purpose:
Bug Fix
Description:
On some systems, doing the shell command:
if test -z $DEBUG_PKG; then
doesn't work if $DEBUG_PKG is null..
Solution:
Changed to "if test "X$DEBUG_PKG" = "X"; then" which will do the same
thing but without the error...
Platforms tested:
Linux
Bug Fix
Description:
When printing out the summary information after the configuration,
the Compilation Mode and Debugging information would be incorrect.
The library is set to compile to "Production" mode for a release.
Yet, the default compilation mode before that was "Development". If
the user doesn't specify "--enable-production" on the command line,
the configure defaults to "Production" mode, but the summary still
reported "Development" mode.
Solution:
Modified script so that after we've determined which compilation mode
we're in, we reset the "enable_production" variable to the correct
setting. So, we no longer have a "default". The summary part then
reads the new value and uses that to determine which mode we're in.
The debugging summary information was reworked so that it would
output the correct summary information. Slight hacking of the summary
script to check the values a bit more closely...
Platforms tested:
Linux (eirene)
New feature check
Description:
Added check to determine if malloc(0) returns a valid pointer for a
particular architecture.
Platforms tested:
FreeBSD 4.5 (sleipnir) where malloc(0) works
Cray SV1 (killeen) where malloc(0) doesn't work
Bug fix.
Description:
FreeBSD would fail the threadsafe feature if static-exec is not on.
Solution:
Force enable-static-exec on if enable-threadsafe is on.
Also moved the chunk of FreeBSD specific code for Pthread setup
from configure.in to config/freebsd.
Also changed enable-threadsafe to check on linking pthread program.
That takes care of platforms (e.g. freebsd) that has pthread
support builtin the default C library. Now one can just use
"enable-threadsafe" if the compiler has pthread support by default.
Platforms tested:
eirene, Sleipnir
Removing the DPSS (gridstorage) driver source code.
Description:
The DPSS (using Grid-Storage) driver is retired.
Removed the configure option with-gridstorage from configure.in.
Cvs remove the following files
./src/H5FDdpss.c
./src/H5FDdpss.h
./test/dpss_read.c
./test/dpss_write.c
Regenerated Dependencies files (some had to be hand-edited since
'make depend' did not cover them.)
Removed reference to DPSS Virtual file driver from H5F.c.
Platforms tested:
modi4 (Parallel; -with-gass=...), eirene, arabica (fortran, cxx).
Purpose:
Feature Fix
Description:
The new feature (allowing the user to specify =DIR for a --with-xxx
option instead of requiring =INC,LIB for them) needed a better
explanation.
Solution:
Created a phoney --with-fnord option whose only purpose is to supply
a --help message.
Platforms tested:
Linux
Purpose:
Feature Add
Description:
Added the feature which will accept a directory for all of the
features which now accept an =INC,LIB directive. The old way of doing
things (=INC,LIB) is still valid, but we prefer the user uses the
=DIR method from now on. It saves typing.
Platforms tested:
Linux
Bug fix
Description:
GASS nor gridstorage worked any more because SSL library testing
was moved after them.
Solution:
Moved SSL library to be tested before GASS or Gridstorage options
are tested. Also make the testing of SSL libraries default to
no testing, so that it won't get activated unnecessarily.
Platforms tested:
IRIX64 -64, serial and parallel. (GASS driver needs globus
software which is available in modi4 only.)
'Bug fix'
Description:
When testing the validity of zlib, the compress() function is
used. HDF5 actually requires a newer version of zlib which
contains compress2(). Compress2 is tested in later part of
the configure. This caused redundent tests and confusion too.
Solution:
Changed zlib test to look for compress2() instead.
Older version of HDF4 libraries (e.g. 4.1r2) would fail this
test correctly. This eliminated the possibility of using an
older version of HDF4 without using zlib compression in HDF5.
But since we need newer version of hdp (with loops detection),
the older version hdf4 is not old any more.
Remark: the compress2 test is not removed. After this change
proven working correctly for all platforms, the extra compress2
test can be removed and source code must be updated too.
Platforms tested:
modi4: tested with hdf4.1r2 and failed as expected. Tested with
newer hdf4 libraries and succeeded as expected.
Purpose:
Final Fantasy...er...fix
Description:
I fixed the problem with the summary printing newlines when we didn't
want it to when using "ksh".
Solution:
There's a flag '\c' which should be used at the end of the line if
you can't use the '-n' flag.
Platforms tested:
linux and modi4.
Purpose:
Bug Fix
Description:
Some platforms don't handle echo -n correctly.
Solution:
Copied some code from the configure which determines which flag to
give echo.
Platforms tested:
Linux
Purpose:
Feature Add
Description:
Added "install-example" and "install-all" to the Makefile system.
The behaviour of the "make install*" options:
make install - Installs binaries, libraries, include
files, and example programs.
make install-examples - Installs only the example programs.
The directories are:
${prefix}/doc/hdf5/examples/{c,c++,fortran}
make install-all - Install the binaries, libraries, include
files, example programs, and
documentation. The whole kit-n'-caboodle.
make uninstall-examples - Get rid of those example files (but not
the ${prefix}/doc/hdf5/examples/...
directories)
There's a new bin/ program which helps create directories which are
deeply nested called "mkdirs". It's a simple shell script.
Platforms tested:
Linux
Purpose:
New Feature
Description:
Added final output for the configure script which shows a summary of
options people chose while configuring.
Platforms tested:
Linux
Portability Bug Fixes
Description:
FreeBSD wants the -pthread flag on both the compile and link lines. Also,
the cipher library is required for certain threading features and needs to
be linked in.
Solution:
Add the -pthread to the compile line and the cipher library to the list of
libraries.
Platforms tested:
FreeBSD 4.4 (hawkwind)
New feature
Description:
Added perform programs to test the HDF5 library performance. Programs
are installed in directory perform/.
Platforms tested:
eirene
Purpose:
Bug Fix
Description:
The new way of determining directory information for HDF4 and ZLIB
bombed on me.
Solution:
For some reason, the way I was linking together all of the
"CHECK_LIBRARY" macros wasn't working. I separated them.
Platforms tested:
Kelgia.
Feature shift
Description:
Take out the v1.2.x compatibility stubs and put in the hooks for v1.4.x
compatibility when needed.
Platforms tested:
FreeBSD 4.3 (hawkwind)
Purpose:
Bug Fix
Description:
The way we were generating Dependencies and .depend files was broken.
If the $srcdir or other macros began with a ".", then it would match
anything and cause problems since it would then overwrite the
beginning of the header file's path.
Solution:
Wrote a Perl script which can handle this type of weirdness better.
It's only used when the environment is a GNU one with a GCC
compiler...
Platforms tested:
Linux
Purpose:
Cleanup
Description:
The SSL library was being tested for even if we didn't need it. This
was causing some libraries to be included in our library which
weren't needed (i.e., libcrypto).
Solution:
Only check for the SSL library if either GASS or Grid Storage is
specified.
Platforms tested:
Linux
Bug fix.
Description:
On some systems (linux when not using gcc) the 'dev_t' is not actually
a scalar variable. This causes the code which compares dev_t's in
the file drivers to not compile.
Solution:
Detect this and set the DEV_T_IS_SCALAR flag so we can code around it
in the file drivers.
Platforms tested:
FreeBSD 4.3 (hawkwind), Linux 2.4.2 (chiba city cluster at Argonne)
Purpose:
Bug Fix
Description:
The HP-UX 11 platform needs the NSL library.
Solution:
Check for the HPUX 11 platform and then do the check for the NSL
library.
Platforms tested:
Kelgia
Bug fix... (sorta)
Description:
Added --enable-linux-lfs configure flag to have better control over whether
the enable large file support on Linux machines. Also removed the
-malign-double flag for gcc since it can potentially cause errors which
are difficult to detect.
Platforms tested:
Linix 2.2 & 2.4 (eirene and dangermouse)
Purpose:
Bug Fix
Description:
Changed the README file's name to README.txt to coincide with the
file's actual name change. Also removed check for the nsl library
unless we're dealing with a SunOS system as this can conflict with
libraries on other strange platforms.
Platforms tested:
Eirene.
Code cleanup
Description:
Several system functions don't have prototypes on Linux machines with our
current compile flags.
Solution:
Add _POSIX_SOURCE and _BSD_SOURCE macros to the compile line when compiling
on Linux machines, to pick up missing prototypes.
Platforms tested:
Linux (eirene), FreeBSD 4.3 (hawkwind)
bug fix
Description:
The last reported problem that the parallel example program
in examples could not be compiled, could not be duplicated
again. I guessed maybe Rushad mistook the compile warning
messages as error messages. Just a guess.
Furthermore, the changed examples/Makefile.in and configure.in,
did not work for the parallel case. The examples/ph5example.c
was never included for compiling.
Solution:
Removed the fix in configure.in, put ph5exmple directly back
in the examples/Makefile.in but put it in a variable for
easier future maintenance. Also, easier to identify the
parallel examples too.
Platforms tested:
Eirene, both serial and parallel modes.
Test Addition
Description:
I added a small test to determine if the MPI library has a working
version of the MPI_Get_count() function. If it does, then I define
the macro:
MPI_GET_COUNT_WORKS
This should (hopefully) take care of the kludges in H5FDmpio.c...
NOTE: This isn't implemented in the H5FDmpio.c file since I don't
know the code in there and don't know which solution will work. Also,
the test program I put into the configure script needs to be checked
on a platform which does have a working MPI_Get_count()
function...I.e., this is just a first stab.
Platforms tested:
Linux
Purpose:
Adding new feature
Description:
Added gif2h5 and h52gif conversion utilities
Solution:
The utilites follow the framework built for the gif2hdf and hdf2gif
utilities for hdf4. The main files modified were those that read the
H5 file and those that write H5 file. In the future, if you wish to
continue with the framework and extend it to .png or some other fileformat
the main files to edit will be the gif reader and writer.
One point to note with h52gif. You have to specify the exact location of
the image and the palette that it links to. You can choose not to specify
a palette (uniform grayscale chosen in this case) but you must specify
image location. In the future, someone could edit the readhdf.c source
to enable the reader to parse the hdf file and select all images with
corresponding palettes.
Platforms tested:
modi4 , eirene , hawkwind , arabica , Ren (NT 4.0) , Personal box (win2k)
Bug Fix
Description:
A parallel example was added to the examples/ subdirectory. This was
being built whether --enable-parallel was defined or not. This was
causing some havoc with certain setups.
Solution:
Added logic to make it so that the parallel examples are made only if
--enable-parallel is specified.
Platforms tested:
Linux
Bug Fix
Description:
Small fix. The "off_t" typedef's size wasn't being set correctly.
Solution:
The tests for 64-bit files (getdents64() in particular) needed to
occur before checking for the sizeof off_t.
Platforms tested:
Linux
Better Mouse Trap^W^WBug Fix
Description:
Instead of having the large file support stuff be in the
config/gnu-flags directory, I added it to the configure.in file so
that it first checks for the syscall ``getdents64()''. If it finds
it, then it removes the ``-malign-double'' flag if the GCC compiler
is 2.95.x since this flag doesn't play well with the LFS stuff.
Solution:
Added test for getdents64(), if found it removes the -malign-double
flag if the compiler is 2.95.x. This is done in the configure.in
file. The gnu-flags file is returned to normal. A new field is added
to the H5config.h.in file because of the getdents64 check.
Platforms tested:
Linux
Portability changes
Description:
Very quick port to Compaq (nee DEC) Alpha OSF5.
Solution:
Added a new "dec-osf5.x" configuration file and changed configure.in
to look for it.
The local test machine is now passing all the tests, except I can't get
the "-L<path>" stuff to work, so tools which depend on the HDF4 library
around tested.
Platforms tested:
Compaq Alpha 5.1 (compaq.ncsa.uiuc.edu)
Bug Fix
Description:
Forgot to propagate the '-c' flag if the install-sh script is being
used. This caused some machines *cough*T3E*cough* to move instead of
copy the files...
Solution:
Added -c flag back in with the install-sh script.
Platforms tested:
Gondolin
Bug Fix
Description:
We shouldn't create Makefiles in the testpar/ directory unless we're
building this as parallel.
Solution:
Put flag in there specifying that we're doing this in Parallel and we
should build the Makefile in testpar/.
Code cleanup
Description:
ssize_t is not defined on certain (non-UNIX) platforms.
Solution:
Added steps to configure to generate SIZEOF_SSIZE_T macro and then used
the new macro to define ssize_t for platforms which don't have it.
Platforms tested:
FreeBSD 4.3 (hawkwind)
Improvement
Description:
Changed the default value of $NPROCS from 2 to 3. This is the
value libSAF uses since 3 processes have a much bigger chance
catching parallel errors than just 2 processes.
Platforms tested:
Modi4 (IRIX64) both serial and parallel modes.