Revert part of r21275 (F2003 configure change) which unintentionally
removed a line from configure.in that sets FC=no when fortran
is not enabled. This ensures that configure doesn't run
compiler checks on a fortran compiler when it won't be used.
(and can cause failures in configure when no fortran compiler is
present as well as issues with the resulting src/Makefile when
building DLLs on Cygwin)
Tested:
h5committest; manually on jam & bangan (Cygwin).
Removed hard-coded check of compatible Fortran 2003 compilers; replaced
with simple check program for required F2003 features. Does not check for
known bugs in compilers, tests will fail for those compilers.
Tested: jam (gnu 4.1, 4.5, intel, pgi)
linew (default)
Tested on Linux, FreeBSD, Solaris, MacOSX to ensure they are found correctly and everything builds. No code currently relys on clock_gettime().
- Brought Windows and VMS H5pubconf.h files into sync with the Linux file.
Tested on Windows. Ray will test on VMS when this is pushed to the 1.8.x branch.
Changed the minimum required version for the pgi compiler to be 11.7, 11.3 version fails in tH5P_F03.f90 when the option -fast is used (i.e. production mode)
f_ptr = C_LOC(rd_c)
CALL H5Pget_fill_value_f(dcpl, comp_type_id, f_ptr, error)
it returns all zeros, version 11.7 does not have this problem.
tested: jam koala (pgi, 11.3 and 11.7)
1) --enable-fortran2003 will enable only F2003 features. It is not a replacement for --enable-fortran. If compiler is not F2003 compliant configure should fail.
2) if --enable-fortran2003 is specified with out --enable-fortran configure fails
3) Configure help indicates that --enable-fortran2003 is in addition to --enable-fortran
Updated the version checks of different compilers.
Tested: jam (gcc 4.1 4.6, intel 10.1 11.1 12.0, pgi)
Ran bin/reconfigure to update the Makefile.in in directories not part of the fortran directory check=in. Updates Makefile.in due to changes made in configure.in for the Fortran 2003 additions.
Tested on all platforms run under daily tests.
Items merged: fortran directory,
src/libhdf5.settings.in
configure.in configure
MANIFEST
Tested: (all platforms used by daily tests, both with --enable-fortran and --enable-fortran2003)
Purpose:
Remove H5_MPI_SPECIAL_COLLECTIVE_IO_WORKS and
H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS #defines from source.
Description:
Two advanced parallel functionalities, special collective IO and
complex derived datatypes, are not supported by older
implementations of mpi, and thus our code limits the use of these
features with #ifdefs and has checks in configure to set them (or
not). Unfortunately, configure can't actually run a parallel check
to see if these features are working (nor not) so it resorts to
looking in the config files where they are explicity enabled or
disabled based on versions of mpi, sytems being built on, or for
no documented reason at all (i.e. just set to on or off as some
'default'). Overriding these settings is easy if need be, provided
it is known that it needs to be done to get improved performance,
and oftentimes it is not.
Most new MPI implementations successfully handle the functionality
requested when these #defines are set, and many of the "turn these
features off" cases in the config files are for old (> 5 years)
versions of MPI and retired systems (such as NCSA's tungsten).
Therefore, the decision has been made to remove the support for
these old versions of MPI and systems that cannot handle these
behaviors. The #ifdefs and supporting setup in the config/ files
and configure script has been removed, and the code executed when
these options were not set removed from the source.
In passing, this commit also cleans up some whitespace issues in
both t_mpi.c and H5Dmpio.c. Furthermore, in t_mpi.c, the special
collective IO test was not getting regularly run due to it being
written to work only with four processes (we regularly test with
six, previously with three), and thus it failed when actually run
due to an out of bounds data buffer assignment. It has been
modified to run at any number of processes greater than four, and
the memory problem has been fixed so the test passes.
Tested:
jam, h5committest, ember
Fix HDFFV-7522
"--enable-production=xxx will produce incorrect configure summary"
Description:
Fixed a typo in configure.in that resulted in "-enableval" being
displayed by the configure summary (and set in the CONFIG_MODE
makefile variable) if the production mode was set to anything other
than yes, no, or profile. The summary and CONFIG_MODE variable will
now be set to the value specified by the user.
Tested:
jam, h5committest
Updates configure definitions on linux.
Description:
We only define _POSIX_SOURCE which only allows for the lowest level of
POSIX support (IEEE 1003.1), which is unsuitable for clock_gettime() functionality on modern linux systems. This symbol was changed to _POSIX_C_SOURCE=199506L, which gives the 1996 version of POSIX support and allows clock_gettime() and CLOCK_MONOTONIC to be found.
We do not link to the BSD compatibility library, even though we define
_BSD_SOURCE. -lbsd-compat was added to AM_LDFLAGS in accordance with GNU
recommendations. This does not appear to change anything in the current
library.
Tested on:
jam(linux32-LE) This was tested with various configure settings including
parallel, threadsafe, C++ and FORTRAN enabled.
Adds a check for the mach_time header file.
Description:
The mach time header file is needed for the monotonic timer / log VFD
work. No code in the trunk depends on this file at this time.
Tested on:
jam(linux32-LE) tejeda(darwin32 LE) local darwin64 (snow leopard)
Changes configure/configure.in to use the same CFLAGS and CPPFLAGS in the configure tests that are used to build the library.
Description:
Only AM_CPPFLAGS was propagated to the CPPFLAGS that were used to build the library. Now H5_CPPFLAGS, AM_CFLAGS and H5_CFLAGS are used in the configure tests.
Tested on:
jam(linux32-LE) freedom(bsd63-LE) linew(solaris-BE) tejeda(darwin32 LE)
Switch from using 'pthread_create' to 'pthread_self' when trying to
detect the pthread library, so that the Intel C compiler is happier with the
prototype.
Tested on:
Linux/64 2.6 (koala) w/Intel C
(h5committested on duty, jam & linew)