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.
Bug Fix
Description:
On the Nersc machines, the install-sh script wasn't being found in
the proper place.
Solution:
Corrected the "fix" I put in there awhile ago. Essentially, if the
INSTALL macro is the program "install-sh" with anything around it,
then we assume they want our install-sh program and force the
Makefiles to find it in the hdf5/bin directory.
Platforms tested:
Nersc.
Bug Fix
Description:
Removed generation of the Makefile in the
doc/html/Tutor/examples/java directory since they ahve their own
Makefile which is actually distributed with the documents.
Platforms tested:
Linux
Fixlet
Description:
FIxed the hack for the INSTALL macro. It was checking the "whole"
path to the install-sh script instead of if it was just a relative
path with install-sh at the end.
Solution:
Changed the test to match any relative path with install-sh at the
end. This assumes that the install-sh is the one we supply to them
(an assumption it was making before, really).
Platforms tested:
Gondolin, Linux
Fix
Description:
On machines which use the bin/install-sh script, it wasn't picking up
the install-sh script unless it was one directory depth away from it
(ie, it thought that it was in ../bin/install-sh, which isn't good
if, like with the documentation, it's in a deeper directory).
Solution:
Hacked it up so that, if it does use the broken relative-path schema,
then it will change it to use the $(top_srcdir) macro instead.
Platforms tested:
Linux
[is this a bug fix? feature? ...]
Description:
Changed the default settings for enable-production and enable-debug
to no and yes respective, for this development branch.
Platforms tested:
Modi4 parallel and eirene.
Code cleaning
Description:
Moved all gcc compiler flags into the config/gnu-flags file and re-added
the warning flags removed during the beta testing.
Platforms tested:
FreeBSD 4.2 (hawkwind)
Feature Fix
Description:
When user specifies the --disable-hsizet flag, we still warn them
about this when they use gcc 2.91.66.
Solution:
I moved the check above the place where it checks what version gcc
compiler it is. If they did specify the flag and it is a 2.91.66
compiler, then it won't print the message out.
Platforms tested:
Linux
Suppress warnings for release.
Description:
Took out the -Wconversion -Wredundant-decls warning flags for gcc until
after the tree is split.
Platforms tested:
Linux 2.2.16 (eirene)
Warning Reduction
Description:
Removed the -Wpointer-arith flag which complains about addintion with
void * pointers. This is a known gcc 2.95.2 annoyance.
There's still some issues with many str* warnings...not 7000, though.
Platforms tested:
Linux
Name change
Description:
Changed the names of the testh5toh4 and testh4toh5 scripts to the
"canonical" form -- testh4toh5.sh and testh5toh4.sh.
Platforms tested:
Linux
New configure feature.
Description:
The H5private.h header file was re-defining the strdup function on several
platforms, generating a warning.
Solution:
Detect if the system defines a strdup function and don't re-define it, if
so.
Platforms tested:
FreeBSD 4.2 (hawkwind), IRIX64-64 (modi4)
Bug fix
Description:
The zlib.h header check was skipped if it thought it had
found -lz already. That resulted in H5_HAVE_ZLIB_H not defined
which caused compression feature not compiled even though everything
else said it was in.
The --with-hdf4 was default to yes but configure had no clue where to
find them. A plain waste of time and affected ZLIB's searching later.
Solution:
Basically restored what it was before--checking the optional switch
of with-hdf4 first, then with-zlib. (with-hdf4 now defaults to no.)
Added a big chunk of comments explaining why these two options must
be checked in this order.
Changes applied to configure.in. Then ran autoconf to generate
configure.
Platforms tested:
eirene (default and with-hdf4), modi4-64-parallel (with-hdf4),
arabica (with-hdf4) and, gondoline. That is right, even tested
it out with gondoline (with-hdf4 too.) All except modi4 configured,
compiled and tested correctly. Modi4 died in the compiling of
src/H5Zdeflate.c but that was not due to the configure changes.
Prepare for 1.4.0beta1 release
README:
src/H5public.h:
Updated with 1.4.0beta1 version information.
configure.in:
Changed default setting to --enable-production --disable-debug.
configure:
Derived from configure.in via autoconf.
Platforms tested:
Eirene (linux) running just the configure command and compared
difference with previous configure output to verify expected
difference.
Bug fix
Description:
The last modification put an extra comma in the AC_CHECK_HEADERS
that would generate an bad configure file.
Solution:
Removed the comma.
Platforms tested:
Ran autoconf and verified it by comparing the same with
the current working configure file which has been tested.
Purpose:
Bugfix
Description:
Under SunOS 5.5 the symbol FIONBIO wasn't known when compiling
with the Stream VFD configured.
Solution:
This symbol is defined in the system header file <sys/filio.h>.
Here we check whether this header is available.
Platforms tested:
SunOS 5.5 (hatteras), SunOS 5.6 (thor.sistec.kp.dlr.de)
Bug Fix
Description:
Some platforms, when building static libraries, complain that
libc doesn't have dlopen and friends.
Solution:
libtool supports workarounds for this. The one used here may not
work, but it's an attempt to correct it. If it doesn't work, then
there's something going on which I'm not privvy to...
Platforms tested:
(untested as of yet)
* 2000-11-15 Robb Matzke <matzke@llnl.gov> (CC_VERSION)
The compiler is always expanded to a
full path name if possible. This feature enhancement was
requested by Mark Miller, LLNL.
Command-line name change
Description:
Changed --with-stream-vfd to --enable-strea-vfd to be more
consistent with what people expect from the --with-FOO and
--enable-FOO arguments.
Backward compatibility additions
Description:
Added "--enable-hdf5v1_2" flag to enable HDF5 v1.2 compatibility API
functions (H5Tget_member_dims & H5Tinsert_array) being built in the
library.
Platforms tested:
FreeBSD 4.1.1 (hawkwind)
Purpose:
Bugfix
Description:
Rename the [H5_]HAVE_STRUCT_SOCKLEN_T into [H5_]HAVE_SOCKLEN_T.
Solution:
As pointed out by Bill the socklen_t type isn't a structure if
is it defined by the system headers.
So we should better take out the _STRUCT_ from the defines.
Platforms tested:
Purpose:
Bugfix
Description:
Detect whether the 'struct socklen_t' type is defined in the
system include header files.
Solution:
Added an AC_TRY_COMPILE test for 'struct socklen_t' to the configure
script. This test is only executed if the Stream VFD is configured.
Also added detection of <sys/types.h> and <sys/socket.h> system
header files.
Platforms tested:
Solaris 2.6 and 2.7
IRIX64
Linux
Windows NT (command line configure with gcc and cl)
Buglet
Description:
Wasn't picking up specified directories for the run-time linking
stuff that libtools does.
Solution:
There was some confusion about how the regex stuff works with
scripts. It's not `.*' for any character by `*'...Fixed.
Platforms tested:
Arabica
Bug Fix...AGAIN!
Description:
The logic to create the DYNAMIC_DIRS macro was accepting such
things as -lnoop_stubs which would cause libtools to barf.
Solution:
I'm pretty sure I fixed this once before. The change was lost. I
now test to make sure that the flag I'm adding has a "-L" prefix
on it...
Purpose:
Detect whether the system has the netinet/tcp.h header file.
Description:
The Stream VFD uses setsockopt(2) to set TCP_NODELAY on an opened
socket. This constant is defined normally in netinet/tcp.h
except for GNU cc under Windows where this header doesn't exist.
Platforms tested:
Windows NT, GNU cc
Buglet Fix...kinda
Description:
The --enable-c++ flag is in there, but configure can't handle the
++ on the end.
Solution:
Changed it to --enable-cxx instead. N.B. This feature isn't
really needed yet since C++ isn't integrated with the library
proper.
Platforms tested:
Linux
Bug Fix
Description:
Broke on Arabica trying to export the SEARCH macro.
Solution:
Assigned to the SEARCH macro and then exported it.
Platforms tested:
Arabica.
Bug Fix
Description:
When running configure on subdirectories (like fortran/), looking
up how make implements SEARCHes failed.
Solution:
Exporting the SEARCH macro so that subdirectories don't have to
look for it.
Platforms tested:
Modi4.
Bug Fix
Description:
zlib was not being retrieved from the place specified by the user
even if the user used the --with-zlib flag.
Solution:
Removed the automatic inclusion of /usr/ncsa/* into the macros
and use the user-defined place to try to pickup the zlib. I'm
relying on the order of the -L flags in the compile line to
specify which libraries to look into first before going on to
look into the system libraries. If some compiler doesn't honor
the this order, yikes...
Platforms tested:
Linux
Purpose:
h4toh5 converter tool under tools
Description:
put flag h4toh5 and testh4toh5 into the configure file.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
at eirene and arabica.
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
Libtool bug
Description:
The AR macro wasn't being propagated to the libtool file
correctly. When libtool was being generated, it wasn't
recoginizing the AR that was set in the configure script.
Solution:
export the AR macro after it's set.
Platforms tested:
Linux
I introduced a small bug when trying to fix the zlib stuff.
Description:
-lz wouldn't be specified with the compile flags if it was found
while checking for the HDF4 library.
Solution:
Removed my bad check and replaced with a better one.
Platforms:
Linux, Solaris
Added new option --with-Stream-VFD.
Description:
The configure option --with-Stream-VFD[={yes}|{no}] is used
to configure HDF5 to build the Stream Virtual File Driver.
The default is not to build it.
Platforms:
all platforms
Cleaned up the configure file a bit.
Description:
There were a few small bugs having to do with checking if strings
were empty. Also needed to force paths to be absolute instead of
relative.
Solution:
I standardized string checking (test -z for an empty string and
test -n for a non-empty string). Also, if the user specifies a
relative path for any of the options, the configure now makes it
into an absolute path for both CPPFLAGS and LDFLAGS macros.
Platforms:
Solaris, Linux
macro didn't work on all systems. This fixes it.
This also introduces the ability to configure for fortran and c++. This
is not to be implemented yet, though!
command form (e.g., cc, gcc) and put that in the libhdf5.settings
file. This would help show exactly which compiler was used during
the configure stage. It may not be 100% "correct" in some cases
such as "configure done in one machine but compiling done in another."
Makefile.in:
acconfig.h:
src/H5F.c:
src/H5FDdpss.c:
src/H5FDdpss.h:
src/H5config.h.in:
test/dpss_read.c:
test/dpss_write.c:
Changed the name DPSS to GRIDSTORAGE since that is the real name
of the API from ANL. DPSS is just one of the protocols it can use.
Changed a bug in the --with-ssl option.
Makefile.in:
Removed the copying of Makefile.dist since it caused problems
when doing a make distclean in a --srcdir configured directory.
Configuration improvement
Problem:
Arabica has a zlib library that is a dynamic lib in /usr/ncsa/lib.
Binary generated would fail to run with a missig libz.so complain
if /usr/ncsa/lib is not in $LD_LIBRARY_PATH. This exposed the
problem that if the binary is linked with -L$mylibpath -lxyz
where libxyz is a dynamic type, the binary can't run if $mylibpath
is not in $LD_LIBRARY_PATH (or equivalent) or as part of the
system default library paths (e.g., /usr/lib, /usr/local/lib).
This problem also caused failures during configure (when trying
to see what format to print long long) and during H5detect.
The base cause is because libtool does not "transfer" the
knowledge of -L$mylibpath to the wrapper file its mode=link
generates.
Solution:
bin/ltmain.sh:
Changed it so that it transfers the libpaths from -Llibpaths
to the wrapper generated. I used the already defined variable
finalize_shlibpath. Not sure it is correct to use it this way.
Need to check on this.
configure.in:
Put in a patch to transfer information from LDFLAGS to LD_LIBRARY_PATH
right before the AC_TRY_RUN. The above fix for ltmain.sh does not
work here because libtool is generated later than this point.
There should be a cleaner way to do this.
Removed the hardcode of NCSA_LT_LINK_EXE because it is no longer
needed.
commence.in:
Removed the hardcode of NCSA_LT_LINK_EXE because it is no longer
needed.
Makefile.in:
Another patch of LDFLAGS to LD_LIBRARY_PATH because I could not
make it to generate H5detect in the wrapper form of libtool.
Need to make it to use the libtool correctly. Later.
Platform tested:
arabica (solaris 2.7)
baldric (solaris 2.6)
** configure.in
** configure [REGENERATED]
** src/H5private.h
** src/H5public.h
** src/Makefile.in
Generates an H5pubconf.h file which is just like H5config.h except all
the preprocessor symbols have `H5_' prepended. This was done so that
the configuration results can be used in public header files without
polluting the namespace.
** src/H5.c
Added H5I_REFERENCE and H5I_VFL to the API tracing code so their names
are printed instead of just numbers.
** src/H5FDstdio.c
** tools/h5import.c
** tools/h5repart.c
** tools/pdb2hdf.c
Changed to use the `H5_' versions of configure results since these
files include only the public API.
** test/big.c
Removed a compiler warning.
** test/h5test.c
Removed unused code.
** config/depend1.in
We don't regenerate the Dependencies files if we're compiling in the
source tree because `gcc -MM' doesn't output enough information to
make the result usable when compiling outside the source tree.
** src/H5config.h.in
Regenerated to include HAVE_LIBMPI and HAVE_LIBMPIO because of recent
changes to configure.in
New feature
configure.in:
When just --enable-parallel is used, will try to test if MPI and MPI-IO
library codes are linkable. If not, try -lmpi and -lmpio as the most
commonly used library names for them.
Also, set default value for RUNPARALLEL if not set.
Now, for systems, like SGI Crays where there are the system supported
MPI libraries, "./configure --enable-parallel" would configure
correctly.
Configure:
Derived from configure.in via autoconf.
Platform tested:
SGI O2K.
----------------------
./MANIFEST
./configure.in
./configure [REGENERATED]
Added more checking for `make' features.
./Makefile.in
./doc/Makefile.in
./doc/html/Makefile.in
./doc/html/Tutor/Makefile.in
./examples/Makefile.in
./pablo/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in [REMOVED]
./config/depend1.in [NEW]
./config/depend2.in [NEW]
./config/depend3.in [NEW]
./config/depend4.in [NEW]
./config/dependN.in [NEW]
The directory search stuff was moved into commence.in, thereby
shortening the Makefile.in prologues.
./doc/html/Dependencies [NEW]
./doc/html/Tutor/Dependencies [NEW]
./examples/Dependencies [NEW]
./src/Dependencies [NEW]
./test/Dependencies [NEW]
./testpar/Dependencies [NEW]
./tools/Dependencies [NEW]
The `.distdep' files were all renamed to `Dependencies' to make them
more obvious. They are required (but may be empty) in every directory
that has a Makefile.in that ends with @CONCLUDE@ (you'll get an
obvious error from make if you forgot to create one).
./bin/trace
./src/H5.c
Added H5E_major_t and H5E_minor_t although tracing only prints the
integer value.
./src/H5E.c
./src/H5Epublic.h
Added tracing information.
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDgass.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5FDstdio.c
Fixed places where FUNC_LEAVE() evaluated it's argument more than
once.
Added tracing information.
Wrapped long lines.
./config/gnu-flags
Fixed a syntax error when we don't have a gnu compiler.
Updated.
configure.in:
Removed the test for -lxnet in the GASS-driver part. There is
no need for it and it does not exist in other machines like IRIX64.
configure:
Deriverd from configure.in.
----------------------
./configure.in
./src/H5config.h.in [REGENERATED]
The /usr/ncsa/{include,lib} directories are only added if they
actually exist. This fixes a warning on some systems.
Checks for the <pdb.h> header file and also for either the PDB or Silo
library, and if found prepares to compile the pdb2hdf program.
./config/distdep
Relative path names for include files are changed to base names since
the makefile contains the logic for searching and since it's likely
that building the .distdep files happed from a location other than
where they would be used in the file system.
./config/conclude.in
Fixed shell errors when `for' loops iterate over nothing for the
`uninstall' target.
./src/H5D.c
./src/H5Oefl.c
File names for the external files are added to the heap when the
dataset is created instead of when the object header is written. This
fixes a rare infinite recursion bug.
./src/H5FD.c
./src/H5FDpublic.h
Optimization to the free list causes H5FD_alloc() usage to go from >10
seconds to <0.4 second for one example (converting a 30MB equation of
state file from PDB to HDF5 format). The optimization is to simply
keep track of the largest item in the free list and not search the
free list when the largest item is not big enough to satisfy the
request.
./src/H5FDcore.c
./src/H5FDcore.h
./test/h5test.c
If the `backing_store' property is true then a flush causes the entire
contents of memory to be written to the specified file. This is in
preparation for the ASCI/red optimizations and is currently tested by
the pdb2hdf `--cached' switch.
./src/H5Odtypes.c
Wrapped three long lines.
./tools/Makefile.in
./tools/pdb2hdf.c [NEW]
A PDB-to-HDF5 translator. It only translates meta data -- the
resulting HDF5 points into the PDB file for the raw data.
Added the GASS macro definition entry.
configure:
[Generated from configure.in]
configure.in:
Added Globus GASS driver configuation as --with-gass=INC,LIB option.
Default is no => no GASS configured.
src/H5config.h.in:
[Generated from acconfig.h]
Added the checking for zlib and jpeg libraries when doing the -with-hdf4
option. HDF4 applications in general needs lib mfhdf, df, z, and jpeg.
Removed the earlier alone test for jpeg. It conflicted with the hdf4
tests. Also, moved the hdf5-own library test for zlib after the hdf4
tests so that when hdf4 is used, the results would cover the zlib
test.
configure:
derived from configure.in by autoconf.
Platforms tested:
IRIX 6.5, IRIX64 6.5, Solaris 2.6 (with default gcc, tested h5toh4
tool).
Comments:
This still generates compile commands that listed the "-lmfhdf ..."
library list before the -L/usr/ncsa/lib. I traced the problem to
the libtool. (I stopped at the door and dared not to enter this
libtool cave. :-) Most compilers, except solaris' cc, tolerate
the "duplicated" library list.