Bug fix
Description:
Changed configure.in to use an environment variable TR to set the path
to the tr utility.
Solution:
There are two kind of tr on Solaris with slightly different syntax.
HDF5's configure relies on the "standard" tr. Traditionally, HDF5ers
have needed to make sure that the "right" tr was found before the
wrong one in their path; now they can use an environment variable.
Platforms tested:
mir, shanti, sol
Misc. update:
Forgot to update release notes. Off to do that now.
Makefile bug fix
Description:
Previously, automake didn't output rules to build perform/mpi-perf or
the test/gen_* programs.
Now these can be built by typing 'make mpi-perf' (or 'make foo') or by
configuring with --enable-build-all.
Solution:
Automake doesn't like having rules for programs it doesn't build. Tricked
it by having these programs built "sometimes"--whenever the user enables
--build-all. This should be used mostly for testing and to ensure that
these helper programs compile.
***IMPORTANT***
These programs do *not* currently compile. When --enable-build-all is used
(not the default), gen_new_fill fails because it uses an old API. This is
an existing "bug" that has simply been exposed by this checkin.
Platforms tested:
sleipnir, modi4, sol
Misc. update:
Bug fix
Description:
Some platforms complain that tcp.h is present but cannot be compiled.
Solution:
This is because tcp.h needs in.h to be included.
Checked for netinet/in.h and included it when netinet/tcp.h is being
checked.
Platforms tested:
mir, cu11
Bug fix
Description:
Using the -xarch=v9 flag to specify 64-bit compilation breaks C++ shared
libraries.
Disable shared C++ libraries if this flag is used.
Solution:
Instead of trying to disable compilers which recognize the -xarch flag,
grep for it in CXX, CXXFLAGS, etc.
Platforms tested:
modi4, shanti, sleipnir
Misc. update:
Update to RELEASE and build instructions will be forthcoming once
shared Fortran/C++ libraries are regularly passing the Daily Tests.
Feature
Description:
Added H5_CFLAGS, etc. to 1.7 branch.
Now compilation flags can be put in H5_*FLAGS and they'll be used when
building hdf5 but not in h5cc.
Platforms tested:
mir, sleipnir, modi4
Misc. update:
Bug fix
Description:
Disabled C++ shared libraries for Sun Workshop compiler.
Solution:
This bug only seems to happen when using the -xarch=v9 flag to compile in
64-bit mode, but disabling shared libraries entirely for this compiler is
an easier fix (I don't know how to detect 64 bit mode from the command line).
The framework for disabling shared libraries for other C++ compilers is
in place.
Platforms tested:
sol, mir, sleipnir, modi4
Bug fix/feature
Description:
Disabled shared libraries for a number of Fortran compilers that don't
support them.
This allows other compilers to support shared Fortran libraries.
Solution:
Added a conditional, SHARED_FORTRAN_CONDITIONAL, which is true if
Fortran supports shared libraries. It is set in configure.in.
Platforms tested:
mir, sleipnir, colonelk, heping
Bug fix
Description:
Building with --disable-static seems to have been broken on several platforms.
Fixed this.
Configure will now disable shared libraries automatically when using pgf90
or when building on Cygwin.
Solution:
To avoid errors when using shared libraries with pgf90 (which I had not
realized were compiler-specific), I had manually set convenience libraries
to use the -static linking flag. Apparently, this is not necessary, and
caused these libraries to be created as empty archives when --disable-static
was used.
Also, some libraries were including other libraries, which was not
necessary.
I also fixed code in configure.in to correctly detect whether shared
or static libraries are enabled, and moved code that disables shared libraries
to before libtool is created (rather than editing libtool after the fact).
Despite repeated warnings that only one shared library can be linked at a
time, I have yet to have shared libraries break the linking of tests on
any system. We'll see if the Daily Tests turn up anything.
Platforms tested:
mir (fortran, C++), sleipnir (C++), modi4 (fortran, C++, parallel),
sol (fortran, C++), cygwin
Bug fix
Description:
Configure should now throw an error when C++ or threadsafe is enabled
and a parallel compiler is being used.
Platforms tested:
sleipnir and modi4
Tested
--enable-cxx --enable-parallel --disable-cxx
--enable-cxx --disable-parallel
cases in particular.
Misc. update:
Bug fix.
Description:
The incompatibility of enable-parallel and enable-cxx was not correctly
coded. It would complained even for the case of
./configure --enable-cxx --disable-parallel.
Solution:
Changed it to use "$enable_XYZ" = "yes". Fixed the same for the
enable-threadsafe checking too.
Platforms tested:
tested in heping.
Misc. update:
Bug fix
Description:
configure used 'uname -o' to detect Cygwin. This command is fine on
Cygwin, but causes errors on some other platforms (sol).
Fixed this.
Solution:
Used 'uname' with no -o option to identify Cygwin.
Platforms tested:
mir, cygwin (on finrod)
Feature: checking configure flags (bug #90)
Description:
Some configure flags don't work together. Configure now exits with
a sensible error message if one of these combinations is specified.
Solution:
The following flags will throw errors:
--enable-cxx and --enable-parallel
--enable-cxx and --enable-threadsafe
--enable-threadsafe and --enable-parallel
--enable-fphdf5 and --enable-fortran
Platforms tested:
mir, modi4, heping
Misc. update:
Description: Changed configure's default disable-dconv-exception and
disable-dconv-accuracy back to enable-dconv-exception and
enable-dconv-accuracy. The test has been finished.
Platforms tested: fuss - tested before.
Description: made --disable-dconv-accuracy default to let daily test
check every systems. Will change it back to --enable-dconv-accuracy
afterwards.
Platforms tested: h5committest
Description: made --disable-dconv-exception default for configuration
to let daily test run on every system. The default was
--enable-dconv-exception.
Platforms tested: h5committest and fuss.
Description: Changed the configuration options --enable-exception and
--enable-accuracy checked in yesterday to --enable-dconv-exception and
--enable-dconv-accuracy to be more descriptive.
Platforms tested: fuss - simple change.
Description: Added 2 new configure options, --enable-exception and --enable-accuracy.
--enable-exception lets the library check whether user's exception handling
functions are present during compiler data conversions and use them if they are.
When it's disabled, this step is skipped to improve conversion speed. This
step isn't implemented yet for soft conversions because there would be little
gain in speed.
--enable-accuracy guarantees data accuracy during data conversions. It means
the library will choose compiler conversions only if the accurate data is
secured. Otherwise, the library will go for the library's own conversions. If
this option is disabled, the library uses compiler conversions in favor of
their speed as long as they work even if data can be incorrect.
Platforms tested: h5committest and fuss. Some systems may fail after this
checkin.
Description: When converting floating-point numbers to integers and the values of
floating-point number are greater than the maximal value of integer, Cray X1 generates
floating exception.
Solution: Added a test in configure to detect Cray X1's exception. Set a flag to
indicate the machine that can handle overflow converting all floating-point to all
integer types. This flag should be set for all machines, except for Cray X1 where
floating exception is generated when the floating-point value is greater than the
maximal integer value.
Platforms tested: Cray X1 and h5committest.
Bug fix
Description:
Update Makefiles now that docs are no longer in main hdf5 tree.
Solution:
Changed root-level Makefile.am not to recurse into docs tree.
Removed docs Makefiles from configure.in.
Removed config/commence-doc.am, since it is no longer used.
Platforms tested:
mir (change to Makefiles only)
Bug fixes
Description:
A number of minor changes to Makefiles. Some files will now be cleaned
properly, some comments are more informative, etc.
Platforms tested:
heping, mir, modi4
Description: pgcc version 6.0x have optimization (-O, -O2, or -O3) problem.
It caused multi driver test to fail. The problem happened in a macro
definition.
Solution: Detect these versions and add option "-Mx,28,0x8" to the compiler
to avoid the problem if optimization is enable.
Platforms tested: mir and fuss - simple change.
Purpose:
Configuration feature
Description:
Added 'alias' for host names in configure. Typing ./configure --host=tflops
will now configure with tflops as a host. Previously, this required typing
./configure --host=i386-intel-osfl.
Solution:
Added a section in configure.in which will replace 'tflops' with
'i386-intel-osfl'.
Platforms tested:
sleipnir, mir, heping
Misc. update:
Removing configuration warnings on cygwin.
Description:
winsock.h cannot be compiled by cygwin and that generates configuration warnings.
Remove checking winsock.h on cygwin.
Solution:
Platforms tested:
Misc. update:
Description: See details from Bug #213. Family member file size wasn't saved
anywhere in file. When family file is opened, the first member size determine
the member size.
Solution: This is the fourth step of checkin. A test suit is added for h5repart,
including a program to generate the test files, a script file to run h5repart,
and a program to verify repartitioned files can be opened by the library.
There's a change from the first step of checkin. Family name template is no
longer saved in the superblock because different pathname can make the name
different.
In the third step of checkin, h5repart has been modified. If h5repart is used
to change the size of family member file, the new size(actual member size) is saved
in the superblock.
In the second step of checkin, multi driver is checked against the driver
name saved in superblock. Wrong driver will result in a failure with an error message indicating
multi driver should be used. This change includes split driver because it's a special case for multi
driver.
In the first step of checkin. Family member size and name template(unused at this stage) are saved
in file superblock. When file is reopened,the size passed in thrin superblock. A different size
will trigger a failure with an error message indicating the right size. Wrong driver to open family
file will cause a failure, too.
Platforms tested: h5committest and fuss.
Misc. update: MANIFEST
Configuration feature
Description:
Formerly, bin/reconfigure needed to invoke Automake with the --foreign
flag or it would fail. It turns out that there is a clever way to
specify this flag inside configure.in so that it doesn't need to
be explicitly invoked.
This should make it easier for people not using machines connected
to AFS (e.g., the netCDF folks) to invoke Automake on HDF5.
Platforms tested:
mir and heping
Description: Cygwin compiler doesn't do rounding correctly when converting
"unsigned long long" to "long double".
Solution: Added test case to variable detection of
"hdf5_cv_ullong_to_ldouble_precision_works".
Platforms tested: sleipnir, fuss, and shanti - mainly to test configuration,
don't need to run h5committest.
Output tweak
Description:
In configure.in, users must link to zlib library, but configure then
informs them that "deflate" filter is enabled. Changed output slightly
to indicate that these are the same filter.
Platforms tested:
mir (very minor change)
Portability feature
Description:
The random() and srandom() functions are not available on all machines.
Set up the configure script to automatically detect them, rather than
requiring their presence or absence to be hardcoded.
Solution:
Added AC_CHECK_FUNCS macro to configure.in and replaced
#ifdef WIN32 conditionals with #ifdef H5_HAVE_RANDOM conditionals.
Platforms tested:
sleipnir, Windows
Bug fix
Description:
Kent reminded me that switching the logic wasn't enough, we really needed
to add the definition to the configure script.
Solution:
Do that.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Configuration feature
Description:
Fortran integer types (not reals) are now automatically detected at
build-time.
Solution:
Two helper programs are used, one to detect what types the Fortran compiler
has access to, and one to generate header files for C and Fortran matching
up types.
Platforms tested:
mir, copper, modi4, pommier (last week)
Misc. update:
MANIFEST updated, H5f90fortran_types.f90 removed from configure.in, since
it is not longer generated by configure.
Description: Removed support for SRB driver
Solution: Removed or modified appropriate files; ran reconfigure
to regenerate Makefile.in and configure files.
Platforms tested: heping and shanti
Misc. update: ran bin/chkmanifest on heping
Configuration feature
Description:
Different Fortran compilers mangle function names in different ways
(upper case, lower case, adding underscores). To link between
Fortran and C functions, we need to know what a given function's
name is under a given compiler.
Solution:
Use autoconf's FC_WRAPPERS check to determine the Fortran
naming scheme and define the FC_FUNC_ macro to name our
functions (in H5f90proto.h). Removed references to
our old FNAME macro, as well as flags that indicated whether
function names were upper or lower case.
Platforms tested:
mir, pommier, modi4, copper, more
Feature - conditional compilation
Description:
SRB file driver and tests are now compiled only when SRB is enabled
(using --with-srb during configure).
Solution:
Added an automake conditional in configure.in, altered Makefiles.am in
src and test directories to depend on that conditional.
This should make a nice example for posterity to add conditionally
compiled sources.
Platforms tested:
heping (only configure change)
Purpose:
Added C++ wrapper for Packet Table API.
Description:
Added macro for high-level C++ library (LIBH5CPP_HL), which changes every
Makefile.in.
Added directories for high-level C++ library (though currently only Packet
Table API is supported).
Added both C++ source and tests.
Platforms tested:
sleipnir, mir, modi4
Misc. update:
Configure feature
Description:
On some platforms with some compilers, automake's dependency tracking
is silently disabled. This can be confusing for developers.
Solution:
Set configure to enable dependencies all the time unless the user
explicitly disables them (using the configure flag
--disable-dependency-tracking) or a site file overrides the default
(as is the case on IRIX).
Platforms tested:
sleipnir, mir