Bug fix
Description:
Fix detection of C++ compiler version number.
Platforms tested:
Solaris 2.7 (arabica) w/C++
Solaris 2.8 (sol) w/C++
Does not require h5committest
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 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
Description: C++ build failed on kelgia. Binh-Minh fixed
it for 1.6 branch, I am bringing changes back to
1.7
Solution:
Platforms tested: kelgia
Misc. update:
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:
Description:
Changed -instances=global to -instances=static to avoid multiple
copies of template function verify_val.
Platforms tested:
SunOS 5.7 (arabica)
mpich 1.2.6 does not like the tweaking of using -O2 flag.
Comment out the Tweaking since it caused problems to mpich1.2.6.
Need to investigate the reasons and effects to tweak.
Platforms tested:
Tested in heping using mpich 1.2.6 and in eirene uisng mpich 1.2.6.
Port
Description:
Initial work for supporting GNU FORTRAN/F95 on FreeBSD. I think I've
got things mostly set up correctly, but I'm getting an internal compiler
error on one of the FORTRAN sources, so I'm not going to add this configuration
to the daily tests yet.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/GNU FORTRAN
Not tested in h5committest
Bug fix.
Description:
MIPSpro Compiler 7.4.x starts to support C99 features
but stdint.h has a "guard" in it that will #error if
cc is invoked without asking for C99 standard. But it
does not result with a non-zero compiler exit code, thus
configure thought it is okay to use header file stdint.h.
This causes problems later.
Solution:
Default to use the C99 compiler if available.
Platforms tested:
Tested in Sandia tesla machine which is a new SGI machine.
Improvement
Description:
Added strip option to PROD_CFLAGS to remove symbols for smaller
production file size.
Solution:
Platforms tested:
Misc. update:
Bug fix.
Description:
Last commit would impose $arch even if user has provided his own
$CFLAGS. Fixed it.
Removed the wording of gnu-flags inherited from the copy.
Platforms tested:
Tested in tg-ncsa.
Misc. update:
Bug fix.
Description:
Cache the gettimeofday_tz as yes.
Patches for conversion problems of Long Long, float, bottom bits, etc.
Platforms tested:
Tested in tflops only.
Misc. update:
Bug fix.
Description:
Restored correct setting of compilers (-Wall etc for debug flags
only, c99 by default,...) that were wiped out by the commits before.
Platforms tested:
Tested in TG-NCSA, both production and development mode.
(Still need to figure out the proper flag to use for Profile.)
Bug fix.
Description:
v8.0 -O3 infinite loops when compiling test/tselect.c. Use -O2.
Platforms tested:
Only tested in TG-NCSA, use both default and --disable-production options.
Update flags
Description:
Update gcc compiler flags to support the early gcc 4.0 snapshots available
on sleipnir
Platforms tested:
FreeBSD 4.10 (sleipnir) w/gcc 4.0 snapshot
Too minor to require h5committest
Improvement.
Description:
Change the default CC, F9X and CXX compilers from ecc/efc/ecc
to icc/ifort/icc because Intel keeps changing their compiler
names. This eliminated the warning messages that a wrong
compiler name is used.
Platforms tested:
Tested in Tg-login NCSA only since that is the only
IA64 platform on site.
Description: For Intel 8.1 compiler, C99 standard has to be enabled to define macro ULLONG_MAX in its own header file limits.h.
Solution: Add flag -std=c99 to Intel compiler if the version is 8.1.
Platforms tested: Tested v1.6 because this is a very simple change.
Bug fix
Description:
"Teach" the configure scripts about Intel 7.1 compilers, which don't have
_quite_ the same compiler flags
Platforms tested:
Linux 2.4 (eirene)
Bug fix
Description:
Removed the cache values of sizeof signed and unsigned int_fast8_t
and int_fast16_t since the vendor changes them often.
Platforms tested:
Tested in Copper only since it affected it only.
Misc. update:
Bug fix
Description:
When mpicc/mpif90 is a wrapper around a PGI compiler, turn on less
agressive optimization options to avoid testing errors.
Platforms tested:
Linux 2.4 (verbena)
Too minor to require h5committest
Bug fix
Description:
When mpicc/mpif90 is a wrapper around a PGI compiler, turn on less
agressive optimization options to avoid testing errors.
Platforms tested:
Linux 2.4 (verbena)
Too minor to require h5committest
Code cleanup/bug fix
Description:
Remove the undocumented "$NOFP" shell variable which would allow production
builds without removing the stack frame. This was cascading between C and
FORTRAN builds and causing problems.
Solution:
Hard-code removing the stack frame for now. Users would have needed to
read the configure scripts anyway, so there's not really much benefit to the
extra knob. Users who need this functionality (production builds with stack
frames) are debugging probably, so they will need to modify the script and
build their own version of the library now.
Platforms tested:
Linux 2.4 (verbena)
Too minor to require h5committest
Code cleanup
Description:
Default to using mpif90 if CC=mpicc and --enable-fortran flag is given,
but no F9X compiler is set.
Platforms tested:
Linux 2.4 (verbena)
Too minor to require h5committest
Bug fix
Description:
Tweak PGI compiler auto-detection to work for version 5.0 compilers as
well as version 5.2 compilers.
Platforms tested:
Linux 2.4 (verbena) w/PGI compilers
Not tested with rest of h5committest platforms
Fix configure bug that appears on SDSC DataStar.
Description:
Two cached "sizeof"s in ./config/powerpc-ibm-aix5.x cause builds
on SDSC Datastar to choke.
Solution:
Commented out the offending "sizeof"s. Included comments indicating
the reason for the change.
Platforms tested:
copper
Misc. update:
n/a
Bug fix.
Description:
$CXX_BASENAME was not set yet if $CXX was pre-set to g++. In turn,
CXX_flags are not picking up the g++ values.
Solution:
The correct solution should be done in configure which should have
setup CXX_BASENAME if $CC is set before sourcing this file.
Put a special patch here for g++ for now.
(Also added the recognization of icc as another name for Intel
compilers.)
Platforms tested:
No h5committest but tested in TG-NCSA since these changes affected
the IA64 platform only.
Misc. update:
Fix to config for ia64-linux (C++)
Description:
missing character in config file
Solution:
add the missing character
Platforms tested:
'hal'
Misc. update:
Improvement and fix.
Description:
Improvement: allow user defined RUNSERIAL and RUNPARALLEL settings.
Added hdf5_cv_gettimeofday_tz cached value.
Platforms tested:
Janus (Tflops).
Improvement.
Description:
setup default setting for C++ API. Default to use the ecc compiler.
Platforms tested:
Tested in TG-ncsa which is the IA64 platform. None of the standard committest
platforms would have tested this change.
Misc. update:
Description: Added support for Absoft Fortran compiler
Solution: Modified configuration file to check which Fortran compiler is used
and set appropriate flags.
Platforms tested: verbena with pgf90 and Absoft f95 compilers
Misc. update:
Purpose: Maintenance for MAC OSX
Description: Added support for Absoft Fortran compiler f95;
Ddefault compiler is set to IBM xlf.
Solution:
Platforms tested: pommier with xlf and Absoft f95 compilers
Misc. update:
bug fix.
Description:
The previous patch of -D__GNUC__ was causing failure in the
newer compiler. The previous failure could not be repeated
any more. So, removed it.
Platforms tested:
Tested only in TG-NCSA since the change affects only the ia64 platform.
Misc. update:
Bug fix
Description:
It uses the value of $ARCH as a gcc option but the linux clusters
at NCSA define $ARCH as environment variable with values that are
not a valid compiler option. That caused the configure to fail
because it was not able to compile at all.
Solution:
Change ARCH to lower case $arch (convention dictates environment
variables are upper cases.) Also preset $arch to null and do not
honor any pass it values.
Platforms tested:
Attempted to run h5committest but sol was failing due to /tmp
filled. Copper and verbena passed. Also passed in TG-NCSA.
Misc. update:
Code cleanup
Description:
Reduce compiler warnings on SGI IRIX
Platforms tested:
FreeBSD 4.10 (sleipnir)
SGI IRIX6 (Cheryl's machine)
Too minor to require full h5committest
Code cleanup & addition
Description:
Add new warnings for gcc 3.4.x
Re-work production mode compile flags to work better.
Platforms tested:
FreeBSD 4.10 (sleipnir)
h5committest
Slight improvement.
Description:
Show directory name at the beginning and ending of running
make check in a directory. Together with the time stamp,
it will be easier to see how much time it takes to run all
the tests in one directory.
Platforms tested:
Eirene only.
Misc. update:
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
Bug fix
Description:
Fix build on sparc64 platform for FreeBSD by modifying the config/gnu-flags
to not insert '-march=i686' on non-Intel platforms. (This change allows HDF5
to run correctly on all five of the main FreeBSD platforms... :-)
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest not run since it's a FreeBSD-specific fix.
Bug fix
Description:
Update threadsafe flags for FreeBSD and allow C++ to be built with
threadsafe enabled.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/C++ & thread-safe
Code cleanup/bug fix
Description:
Fix configuration files to allow 64-bit compilation of the library with
a 64-bit version of zlib.
Solution:
Moved important compiler flags settings from CC macro to CFLAGS macro.
Instead of setting CC (F9X, CXX) environment variable for compiling for 64-bit
code, users should just set the CFLAGS (FFLAGS, CXXFLAGS) to -q64.
Updated INSTALL file to reflect this change.
Platforms tested:
IBM p690 (copper) w/parallel, FORTRAN, C++, srcdir.
Platforms specific - h5committest does not apply.
Test cleanup
Description:
Move the perl postprocessing step on the .depend file out of the loop over
all the files, which should get rid of redundant rescanning of the .depend file.
Platforms tested:
Linux 2.4 IA64 (titan)
too minor to require h5committest
Bug fix
Description:
Update debugging and profiling flags to include more information.
Platforms tested:
IBM p690 (copper)
too obscure for h5committest
improvement.
Description:
Created an entry for 2.96 and added -Wno-long-long to the CFLAGS
to suppress the thousands of 'long long' warnings because we are
using it and we know it is not in the C89 standard.
Platforms tested:
Only in verbena.
Misc. update:
Bug fix
Description:
Update gcc 3.4 flags to reduce optimization level to the same settings
as for gcc 3.0-3.3 due to code generation bugs at higher optimization levels.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Description: After titan updated ecc compiler, int64_t cannot be found.
Solution: Added -D__GNUC__ to CFLAGS to enable int64_t in /usr/include/stdint.h
Platforms tested: titan(titan specific)
Purpose: Maintenance
Description: Fortran APIs MAC OS X port for IBM XL Fortran compiler
Solution: Brought back changes from 1.6 branch
Platforms tested: pommier, h5comittested; this time h5committest
complained about copperpp directory and didn't run;
tests on verbena and sol passed.
Misc. update:
Bug fix
Description:
Add special-case handling to floating-point conversion tests to avoid
problems with denormalized values on Cray T3E & T90 platforms. (Still not
working on Cray SV1, but at least it's closer).
Solution:
Detect denormalized values and don't try to operate on them on the Crays.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Cray T3E (hubble.cray.com)
Cray T90 (gypsy.cray.com)
Bug fix
Description:
Fix problems building on Debian Linux when Intel's "ecc" compiler is
not available.
Platforms tested:
Eyeballed - very trivial patch from user.
Update DEC compiler support
Description:
Updated DEC/Compaq compiler detection to handle DEC->Compaq switchover
in compiler version string.
Also, copied v5.x compiler flags to V6.x compiler flags and included the
-ieee and -misalign flags necessary for correct floating-point support.
Platforms tested:
Pittsburgh Alpha Cluster (lemieux.psc.edu)
Bug fix
Description:
If using g++ on HP-UX, the flags for aCC would be placed on the
command line. This was causing g++ to fail the configuration test.
Solution:
CHanged the test so that it's a case statement. If it's the aCC
compiler, then use those flags. Otherwise, don't specify flags. This
case statement can be modified to provide compiler-specific flags in
a similar way to other config/* files.
Platforms tested:
Hp-UX (Hp-UX specific change.)
Misc. update:
Bug Fix
Description:
The FFLAGS, CXXFLAGS, and CPPFLAGS variables weren't carrying
user-defined values into the Makefiles.
Solution:
Changed the flags from FOO="..." to FOO="$FOO ..."
Platforms tested:
Copper
Verbena
Arabica
Misc. update:
Improvement
Description:
If the library is built in parallel mode, then name the "h5cc" and
"h5fc" programs "h5pcc" and "h5pfc" resp. This saves the user from
worrying about mixing serial and parallel builds of the library and
having to specify the pathnames and so-forth.
Platforms tested:
Linux (w/ parallel & Fortran)
Modi4 (w/ parallel & Fortran)
Sol (Serial & Fortran & C++)
Misc. update:
Updated release/docs/RELEASE
"bug fix", sort of.
Description:
now that stream-vfd is on by default, it does not work for Tflops.
Set it to no by default.
Platforms tested:
Tested in Tflops.
Misc. update:
Update
Description:
Changed the line saying something like:
Testing FOO
to
Fortran API: Testing FOO
and
C++ API: Testing FOO
when appropriate.
Platforms tested:
Verbena, Arabica, Modi4
Misc. update:
Bug fix
Description:
Reduce optimization level from -O3 to -O for gcc 3.*, since it seems to
be generating bad code for the atomic type conversions now...
Platforms tested:
FreeBSD 4.9 (sleipnir)
Linux 2.4 (eirene, verbena)
h5committest not necessary, this is a GNU-only change.
Bug fix
Description:
The MPI_File_set_size() routine on ASCI Red is not able to extend files
so that they are larger than 2GB.
Solution:
Add an extra macro which controls whether MPI_File_set_size() can handle
>2GB offsets or if our "older" way of reading a byte, then writing a byte at
the appropriate offset should be used.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Purpose: Bug fix (by Bill Wendling)
Description: When efc compiler was used, FFLAGS were not set up
to deal with !DEC amd !MS dirctive and to use
-Vaxlib flag for exit call.
Solution: Modify the file to set up the flag.
Platforms tested: titan
Misc. update:
Bug Fix
Description:
In a fit of what can only be described as brain-damagedness, on blue,
frost, etc. (AIX, really), when you include the zlib.h header file
and are specifying that the compiler accept ANSI C, zlib.h undefines
the "const" keyword if you don't have the variable STDC
defined...*boggle*.
Solution:
Included a -DSTDC as a commandline flag for the compiler.
Platforms tested:
Snow (AIX 5.0)
Only affects AIX machines, so no h5committest needed.
Misc. update:
Bug Fix
Description:
C++ on Irix 6.5 needs some special libraries (libCio or some such
thing). These were defined using the DEFAULT_LIBS macro. However,
they weren't being placed into the Makefiles since it wasn't
AC_SUBST'ed in configure.in and wasn't declared in commence.in.
Solution:
Added to configure.in and also added and commence.in
Platforms tested:
Modi4 (C++, small change and only Irix specific)
Misc. update:
Update/Fix
Description:
The Dependencies files weren't begin generated properly for C++.
Solution:
Modified the "dependencies" script to use "top_srcdir" only instead
of "srcdir", which tended to confuse matters. Regenerated the
Dependencies files.
Platforms tested:
Arabica (Small changes)
Misc. update:
Update
Description:
Revamped the configuration system. The configurations for the Fortran
and C++ libraries are no longer separate from the "main"
configuration system. This involved removing the "configure*" and
"aclocal.m4" files from the fortran/ and c++/ subdirectories. Also
merging settings in the config/ subdirectories into the main config/
subdirectory.
Fortran header files had to be modified a little for Linux. It was
checking if it was a Linux machine by some #defines, however with the
-std=c99 switch, these defines weren't there. I added a check for
some other ones which should be there whether the -std=c99 switch is
used or not.
Platforms tested:
Verbena (Fortran & C++)
Sol (Fortran & C++)
Copper (Fortran & C++)
Modi4 (Parallel, Fortran, & C++)
Misc. update:
Bug fix
Description:
The "prefix?=..." is not recognized by all make commands. Even some
older gmake do not recognize it. The result is that "make install"
failed for many platforms (AIX, Solaris 2.7, HPUX 11, ...) because
when they tried to install at $(prefix)/lib, it becomes /lib since
$(prefix) is not defined.
Solution:
Restore it back to the previous
prefix=...
Platforms tested:
h5committested.
Also ran in-place build using vendor make in kelgia, arabica
and copper.
Misc. update:
Bug fix
Description:
"prefix" variable was always being set, instead of only being set if the
user hadn't set it yet.
Solution:
Changed "prefix=<foo>" to "prefix?=<foo>".
Platforms tested:
FreeBSD 4.8 (sleipnir)
Checked in gmake manual to make certain syntax is the same (it is).
Purpose:
Bug Fix
Description:
Changes needed to make "pmake" work on Modi4.
Solution:
Needed to add some null macro defines in the commence.in files.
Needed to remove a dependence on LIBH5TEST in the fortran make
since LIBH5TEST isn't used in the fortran stuff.
Platforms tested:
Modi4 (small change)
Misc. update:
Improvement
Description:
RUNPARALLEL is setup with default value when --enable-parallel but only if
CC is not set.
Solution:
set RUNPARALLEL to default value of using poe when --enable-parallel
or when an MPI compiler (e.g. mpcc_r) is used.
Platforms tested:
Copper for both 32 and 64 bit, serial and parallel.
(32bit parallel had a hang problem in configure which is a different but
known problem.)
Note that one still need to setenv AR "ar -X64" for 64bit configure.
Misc. update:
Speed up
Description:
Cache the settings of all number types to save configure time.
Reduced configure time by a whopping 40% (11m to 7m :-)
Platforms tested:
Sasn100 only (janus frontend.)
Replaced the individual setting of gcc flags with the combined
gnu-flags file.
Platforms tested:
Tested in modi4 with different combinations of gcc. No needed to
run three platforms tests since this is for irix machines only.
Misc. update:
Code cleanup
Description:
Remove special optimization and debugging flags for obsolete versions of
gcc.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest not needed.
Feature
Description:
Sometimes the total build process take a long time, especially in
parallel systems. Need some idea if some times are taking way
too long to process.
Solution:
Added timestamps marking the beginning and ending of tests in
one directory. This gives a rough idea of how much time the
tests use.
Platforms tested:
Tested only in Eirene since this is just a makefile thing and only
involve a simple command like echo and date.
Misc. update:
Code Cleanup
Description:
Warning messages were being produced by the "make" program because
the "docdir" was being specified twice as a target in the generated
Makefiles. This is because the "EXAMPLESDIR" was also defined as
"docdir".
Solution:
Made "EXAMPLESDIR" unique for C, Fortran, and C++ in the commence.in
file and removed EXAMPLESDIR from the Makefile.ins
Platforms tested:
Dangermouse (only affects make system, not code).
Misc. update:
Improvement
Description:
Added an explanation of using $HDF5_PARAPREFIX for Parallel tests.
Platforms tested:
h5committested (using sol instead of arabica) plus eirene(pp).
Misc. update:
Purpose: Maintenance for T3E
Description: Cray updated T3E to run unicosmk2.0.6.X
Configuration failed.
Solution: Created new unicosmk2.0.6.X files in the config and fortran/config
directories and added them to MANIFEST
Platforms tested: Cray T3E
Misc. update:
Initial pass for gcc3.3 support
Description:
Added section for gcc 3.3+ and cleaned up the gcc 3.2+ section a little.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/gcc 3.3 snapshot
Triple check unneeded.
Bug Fix
Description:
The compression stuff includes the "zlib.h" header file. This
file on the SP machine was including another file which would
#define const as nothing if the compiler wasn't a Standard C
compiler.
Solution:
Included a flag to make the compiler into an ANSI compiler.
Platforms tested:
Blue (Only affects powerPC computers)
Misc. update:
Purpose: Catching up with 1.4 branch
Description: 1.5 didn't have unicos10.0.X configuration files
for both C and fortran.
Solution: Added the files
Platforms tested: CRAY T90IEEE
Misc. update:
Feature (bug fix)
Description:
Added a new configure file specifically for the IA64 platform
in which ecc and efc are the default compilers.
Also added all the Fortran special setup in the fortran version
Platforms tested:
no h5committest since this is a IA64 platform stuff.
Tested in Titan.
Misc. update:
MANIFEST Updated.
Bug fix
Description:
test/dtypes failed badly when -O is used. Trying to recompile test/*
code without -O did not eliminate the errors. So, the failure is
deep in the hdf5 library.
Solution:
For now, removed '-O' from $PROD_CFLAGS so that enable-production will use
no optimization. Need to find out what exactly trigger the errors.
Platforms tested:
Did not do h5committest because this is an AIX configure change only.
Tested it in Copper. Need to test it on other offsite machines.
Misc. update:
Updated release_docs/RELEASE.
New test feature
Description:
The various virtual file drivers (multi, family, core, ...)
are not tested automatically. One would have to do it by hand
by setenv HDF5_DRIVER <driver> and then do gmake check in test/.
Solution:
Added a new target, check-vfd, which will take the list from
$VFD_LIST and run 'make check' with each of its members.
Platforms tested:
h5committested.
Since check-vfd is not invoked by default, I went to each machine
to invoke them by hand. The target worked fine but there were
errors reported from those driver tests. (Those errors were beyond
the scope of this make target test.)
Misc. update:
Bug fix
Description:
The $RUNPARALLEL is set even when parallel mode is not used.
Then it is used to launch some parallel natured test (e.g. example/ph5example)
which is not compiled to be so. That created some unnecessary problem
in some situation (e.g., Copper cannot "poe a.out" from an AFS space
because of the missing AFS token system bug.
Solution:
Setup RUNPARALLEL only when parallel mode is enabled.
Platforms tested:
Only tested in Copper since the change applies to IBM machines only.
(note that v1.4 will fail by default due to a problem when the default
production mode is used. But that is an error not related to this config file)
Misc. update:
Purpose: Catching up with C library
Description: Fortran Library would not configure correctly with PGI compilers
because configure couldn't find any appropriate filesin the config
directories.
Solution: Added new files for PGI compilers support on Linux 2.4
Platforms tested: arabica(C and F90), burrwhite (pgcc and pgf90), modi4 (F90 and parallel)
Misc. update:
Bug fix.
Description:
-O2 -finline-functions still causes production builds on eirene to fail.
Solution:
Downgrade optimization on gcc 2.95.x (x<3) to -O -finline-functions
Platforms tested:
Linux 2.2 (eirene)
Bug fix w/gcc 2.95.x where x<3
Description:
-O3 optimization level causes problems for gcc 2.95.2 on eirene
Solution:
Only enable -O3 if using gcc 2.95.x (where x>=3) or gcc 3
Otherwise, use older setting of -O2 -finline-functions
Platforms tested:
FreeBSD 4.7 (sleipnir)
Linux 2.2 (eirene)
bug fix, features.
Description:
removed the cache of sizeof_long since it varies between 32 and 64 bits.
Set xlc and mpcc_r as the default compiler for serial and parallel modes.
Added -D_LARGE_FILES by default to support large file size.
Added gcc gnu-flags when gcc compiler is used (not working yet.)
Platforms tested:
Tested in Copper only since that is the only AIX machine on site.
Code cleanup
Description:
Clean up miscellaneous warnings which have crept into the code.
Fix "_POSIX_C_SOURCE not defined" warning on FreeBSD.
Adjust gcc compiler flags to be more concise for production mode.
Refactor the H5O code so that there is a stronger boundary between code
in the H5O package and code in the library which just calls H5O routines.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir) serial & parallel and gcc 2.95.4 & gcc 3.2.2
Misc. update:
Update MANIFEST if you add or remove any file.
Bug Fix (Bug #806)
Description:
When compiling/installing with the command "make install" (without
performing a "make" beforehand) the tools weren't being made. This
was because the `install' command in the Makefiles only relied upon
public libraries, not private ones (which the one in the tools
directory is).
Solution:
Had the `install' command be dependent upon an "AUX_LIB" macro which
includes libraries which are needed but aren't distributed (that is,
they're staticly compiled).
Platforms tested:
Linux
Cleanup
Description:
Cleanup gcc cases to be more general about gcc 3.x, now that gcc 3.2 has
been released.
Platforms tested:
FreeBSD 4.6 (sleipnir) - not a significant enough change to worry about
multi-platform testing.
Porting to AIX 5.x
Description:
These have been tested out in v1.4. Folding them in here.
aclocal.m4:
Snow's names were not included in the special hack.
Added its names in.
Removed the trailing * in pacific.llnl.gov too.
configure.in:
fortran/configure.in:
Added a case to group all AIX 5.* versions as aix5.x. This allows
them to share one common config/*aix5.x file.
configure:
fortran/configure:
Derived from configure.in (done in eirene).
config/powerpc-ibm-aix4.x:
Added a comment explaining why not to cache sizeof size_t and off_t
fortran/config/powerpc-ibm-aix4.x:
Turned of cache of sizeof size_t and off_t because they are depedent
on compiler options.
config/powerpc-ibm-aix5.x:
fortran/config/powerpc-ibm-aix5.x:
New config file for AIX 5.X
Platforms tests:
LLNL Blue, Frost, Snow, both serial and parallel.
Bug Fix
Description:
Placed quotes around strings which could be empty so that the shell
script doesn't complain to us about "too many arguments for test"
problems.
Platforms tested:
Linux
Configure cleanup
Description:
Neaten up file a bit more...
Platforms tested:
Linux 2.2 (eirene) with gcc 2.95.2 and Solaris 2.6 (baldric) with gcc 2.8.1
Configure cleanup
Description:
Fine-tune the gcc version checks a bit more...
Platforms tested:
FreeBSD 4.5 (sleipnir) with gcc 2.95.3 and gcc 3.1 (prerelease) and
Solaris 2.6 (baldric) with gcc 2.8.1
Configuration improvements
Description:
Added more warning flags to gcc builds, especially with gcc 3+. Also, added
the -Wno-long-long flag to gcc builds to turn off the annoying "long long"
warnings.
Platforms tested:
FreeBSD 4.5 (sleipnir) with gcc 2.95.3 and gcc 3.1 (prerelease)
Bug fix
Description:
Old config assume compiler is the SGI compiler if it is not gcc.
It would apply all SGI cc options to the $CFLAGS. This would cause
problem if a non-cc non-gcc compiler is used.
Solution:
Verify the compiler is indeed the SGI compiler before applying all those
cc specific options to the $CFLAGS.
Platforms tested:
modi4, both parallel serial, gcc or cc, -64 or n32.
Bug Fix
Description:
``make uninstall-doc'' wasn't working properly. Some files would be
left behind in the installed source tree. The fix I put in was too
heavy-handed as it wiped out the entire doc tree that was installed
and would remove any other files which were installed there.
Solution:
Executed the ``make uninstall-examples'' command if uninstalling the
docs. Fixed how the java Tutorial examples were being removed (they
weren't). Essentially used the PUB_SUBDOCS macro to help remove them.
Platforms tested:
Linux
Bug fix
Description:
The -lnoop library was specified in $LDFLAS when it should have
been in $LIBS. In the past, human just put it in the back and
repeated it enough times in the link statement till it worked.
The tool h5cc exposed this error since the $LDFLAGS is put in
front of all libraries, including libhdf5.a. That won't work.
Solution:
Moved the specification of -lnoop to $LIBS.
Platforms tested:
Tflops
Bug fix.
Description:
__int64 is not a legal type in Tflops.
Set its sizeof to 0 in the cached values.
This is a temporary fix since the real problem is
in configure which hardset __int64 to 8 for cross-compiling cases.
Platforms tested:
Tflops
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
Code cleanup
Description:
Put quotes around compiler flags when debugging is on, so they get
carried down into the Makefiles properly.
Platforms tested:
Solaris 2.6 (baldric)
Bug fix
Description:
When compiled with the -g flag (for debugging), the incremental linker
causes problems when building the H5detect utility.
Solution:
Turn off the incremental linker (with the -xildoff flag) when compiling
for debugging.
Platforms tested:
Solaris 2.8/64 (houdin)
Purpose:
Bug fix
Description:
On NERSC SP3 configure failed while trying to figure out
how to print long long.
Solution:
Added the following line
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
Platforms tested:
Not tested yet.
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
New feature.
Description:
Test programs were assumed to be serial programs only.
There was no provision to test parallel programs automatically.
Solution:
Added $(TEST_PARA_PROGS) to hold parallel test programs and
added appropriate action entry to test them if defined.
Platforms tested:
Eirene (parallel).
Purpose:
Feature Addition
Description:
Added support for gcc 3.0.x. GCC 3.0.x supports the C99
specification. The "-std=c99" gets rid of those annoying "warning
long long not supported by ANSI standard" messages.
Platforms tested:
Linux and gcc 3.0.1
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
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)
Code cleanup
Description:
Get ready for adding C99 extensions sometime in the future.
Solution:
Added some comments to the gcc flags..
Platforms tested:
Linux (eirene), FreeBSD 4.3 (hawkwind)
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
Bug Fix
Description:
Linux does actually support 64 bit files (those greater than 2GB),
you just have to defined a bunch of, seemingly meaningless, macros in
order to coax glibc to work with you. 64 bit file support is in the
2.3 and above kernels by default. For lower, well...upgrade or
something. The one weird thing, the "-mdouble-align" flag was causing
hdf5 to barf when the large file support was compiled in there. It
has something to do with the structures and their alignment or
something. Very weird.
Solution:
Added a test to see if we're on a Linux boxen with kernel >2.3 and if
so then specify the flags for LFS support. Removed the -mdouble-align
flag if we do use LFS support since it causes damage.
Platforms tested:
Linux (Dangermouse)
Bug fix.
Description:
'make distclean' is broken on FreeBSD 4.3, with some syntax errors. I have
a feeling that the make command is more picky in FBSD 4.3 than in 4.2 which
is what is causing these errors to crop up now.
Solution:
Add missing semicolon to line in 'clean' target and take out bogus '-'s
in front of "$(RM)" commands which are already in if's
Platforms tested:
FreeBSD 4.3 (hawkwind)
Bug Fix
Description:
On the T3E, the hack about SUBDOCDIR macro didn't work cause it
wanted an actual value to be in this macro. Well, it wasn't, so now I
check that it actually has a value.
Solution:
Check that DOCDIR and SUBDOCDIR have a value before trying to do
anything with it.
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:
If we need to specify a -R flag for dynamic libraries (like, in the
case when we specify --with-hdf4), then this flag needs to be added
to the linking line so that it will show up in the generated library
and other programs linking to that library will be able to find the
relevant libraries.
Solution:
Added the DYNAMIC_DIRS macro to the link line.
Platforms tested:
Arabica
Update
Description:
Changed the way .depend and Dependencies files were being generated.
Instead of gathering all files which are ``#included'', we only pick
out the ones which are local to us.
Solution:
Changed -M flag to -MM and changed
#include <hdf5_files.h>
to
#include "hdf5_files.h"
in the source code.
Platforms tested:
Linux
Hack
Description:
Need to install the files in the examples/java directory, however
they include installing a Makefile. This was causing havoc with our
Makefile/configure system.
Solution:
Changed so that you can specify a "SUBDOCDIR" which will create a
subdirectory for you and fill it with files specified in PUB_SUBDOCS.
Platforms tested:
Linux
Bug Fix
Description:
Added logic so that all the various make options would recursively be
done in their subdirectories.
Solution:
Added a for-loop to iterate through the subdirectories.
Platforms tested:
Linux
Fix
Description:
The "make *clean" options weren't recursing through the
subdirectories (if they exist).
Solution:
Force it to recurse through the subdirectories listed in SUBDIRS
Platforms tested:
Linux
Update
Description:
Incorporated all the changes made to powerpc-ibm-aix4.2.1.0
and powerpc-ibm-aix4.3.2.0 into powerpc-ibm-aix4.x.
Removed the other two "sub-files" now that powerpc-ibm-aix4.x
can cover them too.
Platforms tested:
IBM SP2 at LLNL BLUE, both parallel and serial.
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)
Fix for install-doc feature
Description:
I fixed the install-doc feature so that it actually works! (Imagine
:-).
Solution:
It manually checks if the DOCDIR exists. If not, then it mkdir's it.
Then it does the install of the appropriate docs.
Platforms tested:
Linux, Solaris
Config cleanup
Description:
In production environments, the optimization flag for gcc was set to
-O6, which has some code-generation problems in certain environments.
Solution:
Turned optimizations down to -O2, which is still pretty bleeding edge.
Platforms tested:
FreeBSD 4.2 (hawkwind)
New platform
Description:
Support the Cray SV1 machine. (config file is identical to unicosmk file
right now).
Platforms tested:
Cray SV1 (killeen.nersc.gov)
Feature Fix
Description:
This checks before printing the warning message about hsizet type if
the user specified --disable-hsizet on the command line.
Platforms tested:
Linux
Bug fix
Description:
install method was cached as 'cp -r'. It did not work
in --srcdir option as the configure set the method to ../cp -r.
Solution:
Removed the cached entry. Let it look for install or use install-sh.
Platforms tested:
LLNL Blue (found and used /usr/local/gnu/bin/install).
Bug fix
Description:
TFLOPS was configured to use '-g' flag even when --enable-production
option was used. It was because configure hard set CFLAGS to '-g'
if it is a valid C compiler option and if $CFLAGS is not set yet.
This is not noticed in other platforms because the config/* files
they all set CFLAGS in one form or another.
Solution:
This is a bug in configure but it is risky to change it so close
to code release. Instead, just set CFLAGS in this file to bypass
the configure bug which should be squashed after code release.
Platform tested:
Tflops with parallel, both debug and production modes.
Improvement
Description:
During configure, it tries to find the size of various basic
C data types (int, int8, fast_int8, ...) by running a small
program for each data type. But Pecific blue uses a batch queue
system to launch all jobs and the whole process takes couple
minutes. With over 20 basic types to test, that takes "forever"
for the configure to complete.
Solution:
Let the configure complete, then save all those valid values in
the config.cache file into the specific config file for Pac. Blue.
With the values cached, configure does not need to run those little
problems.
Platform Tested:
Pacific blue with mpicc.
Purpose:
Bugfix
Description:
The gcc linker couldn't resolve any socket routine symbols
if the Stream VFD was configure.
Solution:
Add the socket library to the LIBS makefile variable not just
when compiling with the native cc compiler
but also if using GNU tools (such as on Solaris x86 systems).
Platforms tested:
SunOS 5.5 with GNU cc (hatteras),
SunOS 5.6 with native cc (thor.sistec.kp.dlr.de)
Bug Fix
Description:
configure on Cray T3E is looking for a differently named config file,
so at it under that name.
Platforms tested:
Cray T3E (mcurie)
Buglet
Description:
If we compiled with -all-static, then the compiler could complain
about not being able to find dlopen and friends.
Solution:
Used the ``-dlopen self'' libtool command.
Platforms tested:
Linux
Bug Fix
Description:
Some platforms don't have support for dlopen and friends when the
library is static.
Solution:
This is part of the attempt to correct this "feature". libtool
wants AC_LIBTOOL_DLOPEN in the configure.in file and -dlopen on
this line...
Platforms tested:
(untested)
Bug fix
Description:
make reconfigure complained syntax error.
Solution:
The for loop previous added contained a typo. Replaced $$test
with $$sub.
Platforms tested:
modi4-64.
Fix
Description:
Changed so that only *.c files are run through the tracing
program. This is so the fortran stuff won't return spurious
warnings.
Platforms tested:
Linux
Purpose:
Set compiler flag to force BSD compliance.
Description:
In order to set a socket descriptor into non-blocking mode
via ioctl(2) the Stream driver uses the FIONBIO constant.
Under Solaris this is defined only when compiled as BSD code.
I hope this doesn't break anything.
Platforms tested:
Solaris 5.7
Bug fix
Description:
During a `reconfigure', it wasn't traversing the
subdirectories...
Solution:
Added a loop to the reconfigure logic to do just that.
Platforms tested:
NOT tested...
Bug Fix
Description:
On some platforms, if you don't have . in your PATH, it won't
find the test program it's supposed to run.
Solution:
Changed instead to ./$$test so that it picks up the program in
the current directory.
Platforms tested:
Opus and Linux
Site specific configure files
Description:
Some machines need to specify things during the configure
but they aren't necessary for all machines of that type. Those
site-specific changes should go here. The format of the filename
is:
host-$hostname
where $hostname is the output from the `hostname' command.
Needless to say, this is optional to those sites which don't need
it.
Fix Irix pmake bugs
Description:
Build fails on Irix when builddir != srcdir
Solution:
* acconfig.h
* src/H5config.h.in [REGENERATED]
Added definition for HAVE_STREAM
* config/conclude.in
* config/depend1.in
* config/depend2.in
* config/depend3.in
* config/depend4.in
The `Dependencies' file is located in the source
tree. This fixes bugs for Irix pmake when compiling
outside the source tree. Hopefully it still preserves
Albert's changes which allow concurrent compilations
to not stomp on each other's Dependencies files.
* examples/Dependencies [REGENERATED]
* src/Dependencies [REGENERATED]
* test/Dependencies [REGENERATED]
* tools/Dependencies [REGENERATED]
Regenerated for testing purposes.
Platforms:
i686-pc-linux
mips-sgi-irix6.5
sparc-sun-solaris2.6
Feature
Description:
Most tests are done inside a for-loop. Whenever a test exits
with error, the for-loop does a "exit 1" to exit the make.
"make -i" could not catch and ignore the error status.
Solution:
Replaced "exit 1" with break. At the end of the for-loop,
test if all tests have been run. If not, the for-loop is
ended by the break command, thus raise an error. Now,
'make -i' can catch and ignor it.
Also added the test of variable HDF5_Make_Ignore inside the
for-loop to indicate the desire to ignore errors when the
HDF5_Make_Ignore is set to a non-null/blank string.
Platforms:
Tested on modi4 and eirene.
in the configure script, basically replacing all -L/<path> constructs
with -R/<path> ones so that libtools will pass it along to the compiler
correctly.
Feature "improvement".
Problem:
The Makefile target triggers gmake to redo the whole auto-configure
process if it sees any autoconfigure related files changed. It causes
couple problems. One is that when multiple machines using --srcdir
are running make, they may detect the changes and launch the autoconf
at the same time. These end up as multiple hosts updating the same
srcdir area together--bad things can happen. Another one is that
when one modifies some Makefile.in, then try "make distclean" before
launching the configure process. Instead of cleaning things, it
started a configure, recreate all Makefiles and other files, then
finally come around to do the distclean--who knows what it cleans
by now since the Makefile is changed too. Last problem was that
this auto-process will launch even for command "gmake -n ...".
Solution:
Renamed Makefile target to reconfigure so that the auto-checking
is still available but must be launched explicitedly. If one
wishes to have the auto-checking as default, one may do
alias gmake "\gmake -i reconfigure; gmake \!* ".
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)
The Dependencies files were generated in $srcdir even when
--srcdir is used. It caused conflicts if multiple hosts
are doing make sharing the same $srcdir. It also violated
the rule that --srcdir would not modify the content of $srcdir
which could be on a read-only media like a CD-ROM.
Solution:
Dependencies files are generated in the "current" directory.
Platform tested:
dangermouse (linux), modi4 (IRIX64).
** 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
** bin/rpmsync
** config/depend1.in
Tweaks for versions of `make' that can't search directories.
** examples/Dependencies
** src/Dependencies
** test/Dependencies
** testpar/Dependencies
** tools/Dependencies
Regenerated all these with more complete path names.
----------------------
./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.
----------------------
./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.
ltconfig used just an empty source file to test the share lib
compiler options. SUNSpro CC returns succeed though it issues
a warning too. ltconfig did not like the warning.
Changed it to test with a file containing a simple dummy program.
Platform tested: solaris 2.6 and 2.7
config/solaris2.x:
Changed default compiler to "cc" now that Sunpro CC can produce
static and shared codes correctly.
Also added -s to PROD_CFLAGS to produce leaner binary files.
Problems:
libtool generated compiler linking commands with dependency_libs
appended to any dynamic library used but only "-lz -lmfhdf ..." were
appended but "-L...", if used, are not appended. So, the "-lz ..."
information is incomplete and solaris cc does not allow even if the
"-L..." information is provide in later part of the command.
Solution:
Included $LDFLAGS in the building of $(LIB).
irix5.x:
irix6.x:
Added "-s" to PROD_CFLAGS so that production code are striped for
smaller sizes.
Platform Tested:
Solaris 2.6
----------------------
This extensive change is the virtual file layer implementation. I've
ported and tested the sec2, family, and core drivers and only ported
the mpio driver (Albert will test it). So if you need MPIO I would
recommend sticking with the previous version for a while.
You will get a few compile warnings about split and stdio drivers not
being implemented and possibly tracing information not inserted in
some of the drivers. You can safely ignore them but I plan to fix
them.
I'm still working on the split driver because I just realized that it
needs a part of the VFL that isn't written yet.
Documentation is being updated also because there were some minor
changes (mostly just name changes). It should be available on my web
site later this week.
./MANIFEST
./src/Makefile.in
./src/hdf5.h
./src/H5Flow.c [REMOVED]
./src/H5Fstdio.c [REMOVED]
./src/H5Fsec2.c [REMOVED]
./src/H5Fsplit.c [REMOVED]
./src/H5Fmpio.c [REMOVED]
./src/H5Ffamily.c [REMOVED]
./src/H5Fcore.c [REMOVED]
./src/H5MFpublic.h [REMOVED]
./src/H5FD.c [NEW]
./src/H5FDcore.c [NEW]
./src/H5FDcore.h [NEW]
./src/H5FDfamily.c [NEW]
./src/H5FDfamily.h [NEW]
./src/H5FDmpio.c [NEW]
./src/H5FDmpio.h [NEW]
./src/H5FDprivate.h [NEW]
./src/H5FDpublic.h [NEW]
./src/H5FDsec2.c [NEW]
./src/H5FDsec2.h [NEW]
Removed/added files for virtual file layer.
./bin/trace
./src/H5.c
Removed unused public datatypes and added new VFL public
datatypes.
Changed an error message.
./config/BlankForm
./config/dec-flags
./config/gnu-flags
./config/hpux10.20
./config/hpux9.03
./config/irix5.x
./config/irix6.x
./config/solaris2.x
./config/unicosmk
Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the
configuration since they're no longer applicable. The default
file driver is always the sec2 driver and it always optimizes
calls to lseek() or lseek64().
./config/depend.in
C preprocessor errors generated during automatic dependency
building are sent to /dev/null to prevent them from appearing
twice in the make output.
./src/H5AC.c
./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5Oattr.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Oshared.c
./src/H5T.c
./src/H5detect.c
./test/ohdr.c
Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent
with the `haddr_t' datatype which is now a public type.
./src/H5D.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Tconv.c
./test/cmpd_dset.c
./test/dsets.c
./test/overhead.c
./test/tselect.c
./test/tvltypes.c
The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER
because the properties apply to all types of I/O operations,
not just datasets.
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dpublic.h
./src/H5F.c
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Fpublic.h
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5HG.c
./src/H5HL.c
./src/H5O.c
./src/H5R.c
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Smpio.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/big.c
./test/h5test.c
./test/istore.c
./testpar/t_dset.c
./testpar/t_file.c
./tools/h5debug.c
./tools/h5ls.c
Modified to work with the virtual file layer by calling H5FD_*
functions instead of H5F_low_* functions and by passing file
access and data transfer properties by object ID instead of
pointer.
Changed H5D_transfer_t to H5FD_mpio_xfer_t since the
COLLECTIVE vs. INDEPENDENT transfer mode is specific to the
MPIO file driver.
Moved MPIO-specific stuff into the MPIO driver.
./src/H5B.c
./src/H5D.c
./src/H5Fprivate.h
The H5F_mpio_* private functions were renamed and placed in
the H5FDmpio driver except those which appeared in H5Smpio.c.
./src/H5E.c
./src/H5Epublic.h
Added major error number H5E_VFL for virtual file layer
related errors.
./src/H5F.c
./src/H5Fprivate.h
Changed the logic that controls whether the boot block is
written. Instead of assuming that the first call to write the
boot block is only to allocate space, I've added a function
argument which makes this explicit.
Changed the way files are compared so that a driver-defined
comparison function can be called. Files which belong to
different drivers are always considered different.
Removed H5F_driver_t since file drivers are now identified by
object ID instead of a special non-user-extendible datatype.
Removed all the hard-coded low-level file properties which
have been replaced by the various file drivers.
./src/H5I.c
./src/H5Iprivate.h
Added the H5I_inc_ref() which was removed a few months ago
since we finally have a use for it.
./src/H5Ipublic.h
Added the H5I_VFL object ID type to identify file drivers in
the virtual file layer.
./src/H5MF.c
./src/H5MFprivate.h
Moved all the allocation/deallocation code into the virtual
file layer which allows file drivers to override much of it.
./src/H5P.c
./src/H5Ppublic.h
Moved file driver-specific code into the various file driver
files.
The H5Pcopy() and H5Pclose() functions make calls into the
virtual file driver to manage the memory for driver-specific
file access and data transfer properties.
./src/H5private.h
./src/H5public.h
The `haddr_t' type is now public.
./test/tfile.c
Added a few more comments.
----------------------
NOTE: These bug fixes but have been applied only to the 1.3 branch per
Albert's request.
./config/gnu-flags [1.3]
Added support for gcc-2.95 by adding full optimization and
debugging flags and applied a patch from Marcus Daniels.
./src/Makefile.in [1.3]
Removes the `libhdf5.settings' file for `make clean'.
----------------------
./Makefile.in [1.3]
./examples/Makefile.in [1.3]
./pablo/Makefile.in [1.3]
./src/Makefile.in [1.3]
./test/Makefile.in [1.3]
./testpar/Makefile.in [1.3]
./tools/Makefile.in [1.3]
./config/commence.in [1.3]
./config/conclude.in [1.3]
./config/depend.in [1.3]
Added a `.PATH' target for Irix pmake which is identical to
the VPATH used by most other `make' programs. Irix 6.5 (or
6.4?) and later `make' ignores VPATH.
Started all beginning-of-line comments with `##' instead of
just `#' because Irix `pmake' barfs on things like the
following because it sees the `# if' as a directive:
# make will barf on the following line
# if running Irix pmake
./config/commence.in [1.3]
Added empty definitions for optional `make' macros because
Irix pmake complains if it sees a macro which has never been
defined. The main body of the Makefiles can redefine these
macros to whatever they need.
----------------------
./configure.in
./configure [REGENERATED]
./src/libhdf5.settings.in [NEW]
./config/conclude.in
./INSTALL
./MANIFEST
A file called `libhdf5.settings' is installed along with the
libraries and it contains a list of various things that might
be of interest to someone using the library (such as what
compiler/options were used and what other libraries might need
to be linked to satisfy external references). We can add more
things as it becomes necessary. Here's a sample...
SUMMARY OF THE HDF5 CONFIGURATION
=================================
HDF5 Version: hdf5-1.1.106
Configured on: Tue Jun 8 11:38:52 EDT 1999
Configured by: matzke@llnl.gov at Spizella Software
Configure mode: development
Host system: i686-pc-linux-gnulibc1
Byte sex: little-endian
Libraries: static, shared
Parallel support: mpicc
Installation point: /usr/local
Compiler: mpicc (egcs-2.91.66)
Compiler switches: -Wall -g
Extra libraries: -lmfhdf -ldf -lz -ljpeg -lm
Archiver: ar
Ranlib: ranlib
Debugged Packages: d,e,f,g,hg,i,mm,o,p,s,v,z
API Tracing: yes
File addresses: large
known so far do not need a "launching command" to run shell script.
(If a future system needs it, maybe we should use a new VARIABLE
called RUNSHELL, default to /bin/sh, to do the launching.)
Then inside the test shell script, it needs to know how to launch
serial or parallel executions. So, pass the RUNSERIAL and RUNPARALLEL
variables to the /bin/sh command.
----------------------
./tools/h5ls.c
Added a `--address' (`-a') switch which causes h5ls to display
file addresses for raw data. For contiguous datasets it's just
a nice simple number, but for chunked datasets it's a list of
logical dataset coordinates, file addresses, filter masks, and
storage sizes.
Changed `--dump' switch to `--data'.
./src/H5D.c
./src/H5F.c
./src/H5Fprivate.h
Enhanced the indexed-storage B-tree iterator so it can dump
raw data addresses (and other info) to the standard error
stream.
Added H5Ddebug() so h5ls has a way to dump addresses for
datasets. I'm not sure what else this API function should do,
so I think we should discuss it before we document it. So far,
h5ls is the only thing that uses it, and we can easily change
that.
./src/H5Tconv.c
./test/dtypes.c
Finally had a chance to verify Paul's H5T_conv_s_s (general
string to string conversions) bug fixes and incorporate them
into H5T_conv_f_f (general floating-point to floating-point
conversions) and H5T_conv_i_i (general integer to integer
conversons). Thanks Paul.
./src/H5D.c
./src/H5S.c
./src/H5Sprivate.h
Added performance timers around data space read and write
callbacks. They were already there for the gather/scatter
callbacks.
The timings for read/write callbacks are displayed along with
gather/scatter when data space debugging is turned on.
./bin/iostats
Updated to print totals. Added a `--fast' option that doesn't
do any output except the totals and is much faster.
./bin/trace
Changed __unused__ to UNUSED to match source code.
./config/gnu-flags
Updated error message for pgcc. I've sent bug reports to the
pgcc people but the new version still has the same bug.
./configure.in
./config/conclude.in
./config/depend.in
Fixed dependencies for non-GNU makes when run in a directory
other than the hdf5 source tree.
Updated GNU `make dep' rules to copy the distributed
dependencies for non-GNU makes into the source tree when run
in some other directory.
----------------------
./tools/h5tools.c
./tools/h5tools.h
Finally fixed a long-standing bug that caused core dumps if
a compound datum rendered to more than some number of
characters (we kept bumping up the limit at the risk of
violating stack size limits on some machines). The fix works
only on systems that have the vsnprintf() function (otherwise
a 4kB limit is imposed, which if violated probably dumps
core). If vsnprintf() is present then the library dynamically
allocates space for the output string.
Also made it possible to control how compound data is rendered
across multiple lines of output by allowing the caller to
specify where optional line-breaks get inserted. The output
functions split up the value at one or more optional
line-breaks to prevent it from wrapping around the screen.
If a datum doesn't fit on the current line but would fit on
the next line then it is printed on the next line regardless
of whether optional line-breaks would have prevent wrapping
around the screen. This makes it easier to find the beginnings
of compound data values. This feature is disabled by default
but can be enabled by the application.
If a datum doesn't fit on the current line and the previous
datum also occupied more than one line then we move to the
next line before printing. This makes it easier to find the
beginnings of compound data values but prevents the output
from looking fragmented if there are only a few long values
among mostly short values. This feature is disabled by
default but can be enabled by the application.
The application can control the printf() formats used for all
the native data types. The defaults are what the library used
to use: %g, %ld, %lu, %d, and %u
./tools/h5ls.c
Compound datatype values can now be split across multiple
lines of output instead of just wrapping. Also, when lots of
compound values are too long they all start at the beginning
of a line. This only required about 10 lines of changes in the
setup for tools library calls (I didn't modify the h5dump
program because it uses its own version of the tools library
that forked off long ago).
Added code for Win32 which is unable to cast `unsigned long
long' to `double'. If the dataset size exceeds (2^63)-1 then
the percent utilization is not displayed (this is easily
possible with chunked datasets). This is untested yet.
./configure.in
./src/H5config.h.in
./src/H5.c
./src/H5private.h
Check for vsnprintf() and provide a simple, stupid definition
if it isn't available. The stupid definition just calls
vsprintf() and ignores the second argument. This can result in
buffer overflows in h5ls and h5dump since vsprintf() is an
unsafe function (and anyone can create an hdf5 file that runs
an arbitrary command from h5ls and h5dump in that case)!
./config/conclude.in
Remove more *.o files for `make clean'
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
Cleaned up a memory leak during H5_term_library() by allowing
H5I_clear_group() to skip items that couldn't be freed. This
allows the item to remain in the group until we can free it
later.
./src/H5F.c
The H5F_close_all() function fails if a file cannot be closed.
----------------------
./config/commence.in
./examples/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
Fixed some dependency problems in Makefiles. If the library
version is updated then everything gets recompiled.
./src/H5G.c
./src/H5R.c
Failure return value for object type functions is now
H5G_UNKNOWN as documented.
./src/H5Shyper.c
./src/H5Spoint.c
Fixed an unused argument warning.
./tools/h5debug.c
Fixed a call to H5F_block_read() since the 4th argument is
different now.
./tools/h5ls.c
Added a space between the object name and class to make the
output readable when the object name is longer than 24
characters.
C