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:
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.
Hard coded against intN_t types. They are not supported
by Intel Red but configure thinks they are by default for
cross-compiler. (Need a better solution for this.)
----------------------
./INSTALL
Added instructions about specifying a path for GNU zlib and
HDF4 headers and library.
Added comments for each of the tool names. Added h5toh4 as a
tool name.
./configure.in
./conigure [REGENERATED]
./src/H5config.h.in [REGENERATED]
The config/* scripts get invoked with $CC_BASENAME set the
base name of the compiler in order to make it easier to handle
setting compiler flags for different compilers in a big case
statement. For instance, if $CC has the value
/usr/local/mpi/bin/mpicc -ansi -64
then $CC_BASENAME will be `mpicc'. The $CC_BASENAME is not
set if $CC is not set.
Fixed alignment in `configure --help'.
An include and/or library path can be specified for GNU zlib
if configure can't find it in normal places. The "normal"
means wherever your compiler normally searches, including
search paths you've added through environment variables like
CPPFLAGS and LDFLAGS. The INSTALL file has instructions.
The `-ljpeg' library is detected.
If `ssize_t' is not found then a #define is added to
H5config.h similar to what we already do for `size_t'.
We detect the hdf5 header file `mfhdf.h' and libraries
`-lmfhdf' and `-ldf' and if found define the H5TOH4 and
TESTH5TOH4 Makefile variables. The user can specify an
include and/or library path. The INSTALL file has
instructions.
The `RUNTEST' variable has been split into `RUNSERIAL' and
`RUNPARALLEL' because these are different commands. The
makefile still uses `RUNTEST', which defaults to the RUNSERIAL
value. The new testpar/Makefile.in sets RUNTEST to the
RUNPARALLEL value. The default RUNSERIAL value is empty and
the default RUNPARALLEL value is `mpirun -np 2'. These can
both be overridden in the config/* files. To make the value
the empty string set it like `RUNPARALLEL=none' in the
config/* file.
The new testpar/Makefile is generated from testpar/Makefile.in
./config/commence.in
Added the RUNSERIAL and RUNPARALLEL makefile definitions.
./src/Makefile.in
The `H5detect' program is run with RUNSERIAL, which is empty
on all platforms except intel-osf1 (ASCI/Red)
./config/conclude.in
Removed the `.c.a:' implicit rule -- we don't use it any more.
./config/BlankForm
./config/alpha-dec
./config/alpha-dec-osf4.0
./config/freebsd2.2.7
./config/hpux10.20
./config/hpux9.03
./config/intel-osf1
./config/irix5.3
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
All of these files have been updated to hande multiple
compilers. Most of them assume `cc' if CC is not set. The
documentation in `BlankForm' has been updated and
documentation in the other files refer to `BlankForm'.
The intel-osf1 uses LDFLAGS instead of LIBS to specify the extra
library search paths.
./examples/Makefile.in
./test/Makefile.in
./tools/Makefile.in
Simplified by grouping some dependency information together
more succinctly.
The tools Makefile.in has been modified to work with the
`h5toh4' and `testh5toh4' programs. Until Paul checks these
in you may have problems compiling. If so, just create files
h5toh4.c and testh5toh4.c that contain:
#include <stdio.h>
int main(int argc, char *argv[]) {
fprintf(stderr, "%s: not implemented\n", argv[0]);
return 1;
}
./src/H5public.h
Removed definition for `ssize_t' since this is now handled by
configure in H5config.h with a #define.
./MANIFEST
./testpar/Makefile.in [NEW]
Added a makefile for parallel tests. As soon as we get this
working properly we can remove the other four makefiles in
that directory and maintain just one.
Bug fix
Problem:
On the ASCI Red machine, the configure step is executed from the platform
cross compiler, so that the configure test for "long long int" format support
was inconclusive.
Solution:
It was necessary to uncomment the line
#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
in config/intel-osf1 to force "long long int" format support.
Platform tested:
TFLOPS Application server, Intel TFLOPS
./configure.in
./config/BlankForm
./src/H5.c
Configure tries to figure out how to print `long long' types
and then defines PRINTF_LL_WIDTH to be `ll' or `q' or
something. It does this by running little sprintf() programs
with various formats until it gets one that works. If this
causes problems when cross compiling (like with parallel
machines) then you may add the following to the appropriate
config file:
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} or
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='q'} or
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='l'}
./config/intel-osf1
./config/irix5.3
Updated these config files to match the others. This allows
the `--enable-production' configure flag to work properly.
Documentation (mostly!)
Solution:
This change in the hdf5/config/intel-osf1 file makes the $(RUNTEST)
variable used in the Makefiles explicitly list the number of processors
used during execution (the change is: yod -> yod -sz 1).
Platform tested:
Intel TFLOPS (ASCI Red)
To resolve a reference.
Problem:
Reference to routine 'getrusage()' is unresolved during link step.
Solution:
In the site config file, hdf5/config/intel-osf1, the line
LIBS="-L./ -L../"
has been extended to include ...
LIBS="-L./ -L../ -lnoop_stubs",
a reference to a library which includes the 'getrusage()' routine.
Platform tested:
sasn100
New feature
Problem:
No support of sequential HDF5 on ASCI Red machine.
Solution:
Set-up site config file for the ASCI Red platform.
Set environmental varibles CC, AR, RANLIB, RUNTEST,
and default value for CCFLAGS if not already set.
Platform tested:
TFLOPS Application Server: sasn100
ASCI Red machine: janus