See HELPDESK-643 issue in JIRA.
NAG Fortran compiler doesn't like the current tH5E_F03.f90 file that has only comments
and no executable statements. Removed tH5E_F03.f90 from the list of modules to build.
Tested on jam with Intel compiler using --enable-fortran2003 flag.
- Fixed a typo in return value of the nh5dread_f_c function ( was 1
instead of 0 on success); fixed the return value to make it consistent
with other Fortran functions; cleaned the code from debug statements.
Platforms tested: jam with GNU and Intel compilers, fortran 2003 feature.
HDFFV-398: h5cc doesn't work with automake
Description:
Fixed compiler wrapper scripts to correctly detect compilation when
-MT preprocessor flag is provided, fixing a bug in which its *.o
argument was added to link_objs but not compile_args.
This previously broke usage of h5cc as the provided compiler in
configure scripts (like with h5edit) as automake may supply the -MT
option to the compiler via the makefiles.
Tested:
Tested using h5edit and h5committested.
Changed, INTENT of flag to be OUT instead of IN for h5dget_space_status_f, the value gets changed so it should have intent(OUT), it
is correct in the documentation.
Tested: jam (gnu, intel, pgi)
Removed using INT() on an already INTEGER variable on the input argument to the verify routine, which was causing wrong verify results for the two integers on a Mac.
Tested: fred (gnu) in production mode.
> make failed:
> "../../../hdf5/fortran/test/fortranlib_test_1_8.f90", line 642.15:
> 1513-041 (S) Arguments of the wrong type were specified for the
> INTRINSIC procedure "mod".
Fixed by defining both arguments in MOD as integer size_t
Tested: jam (gfortran, intel)
*Hostname: nsipada0X:
"../../../hdf5/fortran/src/H5Ef.c", line 301.40: 1506-280 (E)
Function argument
assignment between types "int(*)(int,void*)" and "int(*)(int,struct
{...}*)" is
not allowed.
Fixed by casting has H5E_auto2_t.
tested: jam (gfortran, intel)
Removed line:
$(RM) $(DESTDIR)$(includedir)/H5f90i*.h
These *.h files are needed for HL_NPOESS and should not be removed when make clean is specified.
The Daily Test installs the file using the deploy script, but then
runs make clean which removes the file, so the files are not there when we try to compile HL_NPOESS
causing an error.
Fortran wrappers.
Solutions: The calls were not needed and were removed from the C stubs h5open_c and h5close_c for the correspnding
Fortran subroutines h5open_f and h5close_f.
Platforms tested: jam with gcc and gfortran, PGI and Intel
koala with PGI and Intel
linew with the standard Sun compilers
F2003, Note 15.9
"The C international standard specifies that the representations for
nonnegative signed integers ar ethe same as the corresponding
values for signed integers. Because Fortran does not provide direct
support for unsigned kinds of integers, the ISO_C_BINDING module
does not make accessible named constants for their kind type
parameter values. Instead, a user can use the signed kinds of
integers to interoperate with the unsigned types and all their
qualified versions as well...."
Tested: (jam, intel)
Removed duplicate h5p, h5a, and h5d, double precision functions in _F90 and _F03 files
that are already defined in H5_DBLE_InterfaceInclude
Tested: jam (gcc 4.5, intel 12.0)
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)
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)
Switch from H5P_DATASET_ACCESS_DEFAULT to H5P_DEFAULT for calls to
H5Rdereference2().
Tested on:
Mac OS X/32 10.6.8 (amazon) w/debug
(too minor to require h5committest)
Changed the length of the fortran string passed to HD5packFstring in the function nh5pget_external_c. The 3rd
argument should be the fortran length of the string, not the C length of the string (which includes the null).
Tested: jam (intel and gnu), also checked the example h5ex_d_extern.f90 which detected the problem on Amazon c2
machine (reported by Larry).
General shared library improvements for CYGWIN / AIX
Description:
Shared libraries are disabled on both CYGWIN and AIX due
to inability to build them correctly. Part of the problem
in both of these situations is the lack of the libtool
flag -no-undefined, which tells libtool that all needed
symbols are defined at link time (a requirement on these
systems) and that it's okay to build shared libraries.
Another problem are lack of dependencies between wrapper
libraries and core C HDF5 library.
This patch addresses both of these by fixing configure to
add in -no-undefined flag for libtool during linking and
adds automake dependencies in the Makefile.am files.
After testing, both CYGWIN and AIX now generate shared
libraries, but there are still some test failures in each.
(cache_api, dt_arith, and testerror.sh on CYGWIN, and
fortran tests on AIX).
Even though the shared libraries are not quite perfect,
this is a general improvement to what we had before, so
I'm applying the patch anyways. Note that default behavior
of shared libraries on these systems being disabled has
NOT been changed and requires the use of the
--enable-unsupported to attempt to build them.
We will need to address the test failures in each
architecture prior to formally supporting shared
libraries on each.
Tested:
h5committested & CYGWIN tested (on bangan)
(AIX tested by Albert on bp-login2)
Add "silent make" mode configure option.
Description:
Automake 1.11 has a new option available that allows for a
silent make mode. This functionality needs to be explicitly
enabled in configure.in via the use of the automake macro
AM_SILENT_RULES, which is what this commit is adding.
This introduces a new configure option:
--{en|dis}able-silent-rules
This option is on by default, and simplies compile and link
line outputs when building the library. Disabling this option
will print full "verbose" output (i.e., full compile and
linking lines for each target).
Tested:
This was tested on jam & h5committested
r20440 and r20469:
1. The dataspace code has another bug - when the maximal dimension isn't passed in for H5Sset_extent_simple, it
is supposed to be same as the dimension. The current library sets NULL to it. I corrected it and added a
test case to it.
2. I corrected the tests of Fortran and C++ for this problem.
Tested on heiwa, jam, and amani.
Fixed issue HDFFV-5866 (BZ 2156). Changed scripts to run examples to use specific names for compiled executable files instead of a.out, which did not work on Cywin as it produces a.exe by default. Removed issue from known problems section of RELEASE.txt.
Tested with Cygwin 1.7.8 on Windows 7.
This line, and those below, will be ignored--
M release_docs/RELEASE.txt
M hl/c++/examples/run-hlc++-ex.sh.in
M hl/fortran/examples/run-hlfortran-ex.sh.in
M hl/examples/run-hlc-ex.sh.in
M c++/examples/run-c++-ex.sh.in
M fortran/examples/run-fortran-ex.sh.in
M examples/run-c-ex.sh.in
- Revise shared Fortran library disabling scenarios in configure
- Improve configure output summary
Description:
Shared Fortran libraries are not supported on Mac, but were being
disabled by configure in a way that also forced the C libraries
to be static-only. This has been fixed, so now only shared Fortran
is disabled while shared C can remain.
This prompted two additional changes:
1. While working on the check that addresses whether or not
shared Fortran libraries are allowed, removed old and no
longer needed check(s) that disable shared Fortran
libraries with HP, Intel 8, PGI, and Absoft compilers.
(Essentially, Mac is the only situation in which Fortran
shared are disabled by configure.)
2. Having two different states of libraries (i.e. shared C
library with static-only Fortran library) was not apparent
in the configure summary, which labeled all libraries as
either shared and/or static. I've added lines to both the
C++ and Fortran output sections to list shared/static-ness
of these libraries specifically.
Additionally, I've made sure that the new --enable-unsupported
configure option correctly overrides configure if it tries to
disable a shared library.
Tested:
jam, fred, & h5committest
Bring changes from Coverity branch to trunk:
r19930:
Fix memory leaks involving VL attributes in h5repack and h5diff. The buffers in
copy_attr and diff_attr were not checked for the presence of a vlen before being
freed, and vlen storage was never reclaimed. Added checks and calls to
H5D_vlen_reclaim().
r19933:
Purpose: Fix memory leak in H5L_move_cb()
Description: H5L_move_cb copied the source link using H5O_msg_copy() but freed
it manually using H5MM_xfree(). Since H5O_link_copy allocates the link using
H5FL_MALLOC, this causes the link to be allocated from the free list but is
never put back on the free list when it is freed. This prevents the link free
list from shutting down properly. Modified H5L_move_cb() and H5L_move_dest_cb()
to free the link properly using H5O_msg_free().
r19973:
Fix resource leaks by freeing string created by HD5f2string
r19974:
Issue #345: Inialize buf variable to null
Tested on:
Mac OS X/32 10.6.6 (amazon) w/debug & production
(h5committested on Coverity branch)