configure fixes for HDFFV-9068,9069,9096,9097,9135 from autotools_rework branch:
- Remove Infering parallel compilers (C and Fortran) from configure.ac
- Remove restriction to build shared with parallel
- Cleanup parallel sections in configure.ac
- remove large file support checks
- MPE fixes.
HDFFV-9046: reorganize hdf5/perform, step 2
Last changes had caused problems with Windows platform:
1. H5private.h in io_timer.h is not accessible in the distributed shared library of tools.
Need to move it to io_timer.c.
2. debug_start_stop_time() would not be available outside of h5perf. Some favor of compiler
does not like it. Screened it out for now.
3. mere "extern" is not good enough for Windows shared library. Must mark them as DLL. Need to mark them as
"H5TOOLS_DLL".
4. STANDALONE mode is broken. Screened out the code for now.
Tested: h5committest.
HDFFV-9046: reorganize hdf5/perform, step 2
Move timing measurement routines used by h5perf and h5perf_serial to tools/lib
so that they can be used by other tools too.
tools/lib/io_timer.c
tools/lib/io_timer.h
tools/perform/io_timer.c
tools/perform/io_timer.h
renamed perform/io_timer.[ch] to lib/io_timer.[ch]
tools/lib/Makefile.am
tools/lib/Makefile.in
tools/lib/CMakeLists.txt
tools/perform/Makefile.in
tools/perform/Makefile.am
tools/perform/CMakeLists.txt
MANIFEST
updated due to the move.
Tested; h5committest and jam (serial)
Merge changes that correspond to the 64-bit ID changes (without the actual
switch to 64-bit IDs) to the 1.8 release branch. (Plus a few minor cleanups
and alignments with the trunk that aren't on the branch)
Tested on:
Mac OSX/64 10.9.4 (amazon) w/C++ & FORTRAN
(h5committested on branch already for a week)
- remove configure checks for MPI_File_get_size and Big MPI_File_set_size as they are supported by MPIO implementations today.
- fix bug in t_mpi.c (HDFFV-8856)
tested with h5committest.
Bring r25215 from trunk to 1.8 branch:
Bring changes from Coverity branch back to trunk:
r20914:
Use HDstrncpy and HDstrncat! --gh
r20915:
Use HDstrncpy and HDstrncat! --gh
Tested on:
MacOSX/64 10.9.3 (amazon) w/gcc 4.9, FORTRAN, C++, multi-threads & parallel
(h5committested on the trunk)
Bring r25197 from trunk to 1.8 branch:
Bring changes from hdf5_1_8_coverity branch back to trunk:
r20878:
Issue 76: Check if H5Tget_nmembers(type) fails and simply return(FALSE). Also move printf to after check.
r20880:
Issue 192: Create ret_val var set to -1. Add out label for failures to jump to, return ret_val at bottom.
r20882:
Fixes for coverity:
1) bug #1679: remove dead code in test/mf.c
2) bug #1680: remove dead code in tools/lib/h5diff_dset.c
r20883:
Fix coverity issue 585
Description:
Changed variable "c" in processStrData in h5import.c to an int, to match fgetc
return value, and removed call to feof, instead checking if c == EOF.
Tested on:
MacOSX/64 10.9.3 (amazon) w/C++, FORTRAN & parallel
(too minor to require h5committest)
Added instead configure variable hardcode_into_lib=no. This removes rpath from lib files on Linux and solaris machines.
Tested with h5committest on jam, koala, ostrich and platypus (cmake), and on emu and kite.
h5diff issues "unable to read attribute" error message when comparing
two files
Description:
h5diff did not handle attributes of variable length strings
correctly. It created the wrong memory type if one but not both
compared attributes are of the variable strings type. It ended in
H5Aread() failure.
Solution:
We decided to treat the case when one type is variable length string
and the other is not as incomparable. That bypassed the above error.
We still need to figure out the proper way, if possible, to compare
variable string with non-variable string types.
Tested: h5committested plus tested in Swallow (OS X 10.8).
Merge of r24937 from the trunk
Adds H5free_memory to the API. This function should be used to free
memory allocated by the library (e.g., returned values from
H5Tget_tag, H5Pget_class_name, etc.).
This is mainly to help Windows applications deal with multiple CRT
instances, but can also be helpful when a debug memory manager is
being used or when the HDF5 API is being wrapped for managed languages
like Python and Java.
Tested on:
32-bit LE linux (jam) with fortran and C++
64-bit BE linux (ostrich)
64-bit LE linux (koala)
h5diff segfaults with user's files
Solution:
Added a variable to indicate if real data are in the buffer and will call H5Dvlen_reclaim()
only when real data are in the buffer.
Tested: with the user provided data files and no more segmentaion fault.
Also h5committ tested.
Bring r24864 from trunk to 1.8 branch:
Remove all traces of MPI-POSIX VFD and GPFS detection/code.
Remove remaining traces of stream VFD.
Remove testpar/t_posix_compliant test (it's not actually verifying anything).
Clean up H5D__mpio_opt_possible() further.
Moved environment variable that disables MPI collective operations into
MPI-IO VFD (instead of it being in src/H5S.c).
A few other small code cleanups.
Tested on:
Mac OSX/64 10.9.2 (amazon) w/parallel & serial
(daily tested on trunk)
Bring r24803 & r24804 from trunk to 1.8 branch:
r24804:
Brought changes from Coverity branch back to trunk, and cleaned up misc.
other warnings & formatting issues:
r20833:
Fixed Coverity 667 and 668 with real integer overflow tests this time.
r20834:
Use HDstrncpy and HDstrncat. --gh
r20835:
Change to use strncpy - use base_len + 1 for line 156, use HDstrlen(path) + 1 for line 159
r20836:
Fixed coverity 585 by casting output of fgetc() to a char.
r20837:
Changed sprintf calls to snprintf with size 1 less than the allocated buffer to address coverity issue #967.
r24803:
Rename GCC_DIAG_OFF/ON macros to H5_GCC_DIAG_OFF/ON and move from
src/H5private.h to src/H5public.h. Wrap typedef of hsize_t and hssize_t
in DIAG_OFF(long-long) macros.
Clean up a bunch of "macro '-' is unused" warnings.
Tested on:
Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & parallel
(too minor to require h5committest)
Bring r24726 & r24727 from trunk to 1.8 branch:
Description:
Revert some earlier usage of strncpy, which was incorrect.
Bring Coverity changes from branch back to trunk:
r20821:
Use HDstrncpy. --gh
(Fixed already, with strdup)
r20822:
(Not merged, incorrect use of HDstrncpy())
r20823:
(Not merged, incorrect use of HDstrncpy())
r20824:
Maintenance: Bug fix: addressed CID 666.
Value stored at *expression_len should be used in the call to
HD5packFstring to avoid overflow (and unnecessary arithmetic
calculation and casting)
r20825:
Issue 642: Added check for error and handler with print to stderr and exit.
r20826:
Undo revision 20818, as that issue has already been fixed in the 1.8 branch
and trunk (but not coverity branch)
r20827:
(Not merged, incorrect use of HDstrncpy())
r20828:
Use HDstrncpy. --gh
(Corrected use of strncpy())
r20829:
Check return of H5Lget_val(print_udata->fid, path, targbuf,
linfo->u.val_size + 1, H5P_DEFAULT) and if error set trgbuf[0] to 0.
Check if H5Lunpack_elink_val(targbuf, linfo->u.val_size, NULL,
&filename, &objname) was successful and allow print. Otherwise filename
and objname are not created. (init those to NULL)
r20830:
resolved coverity issues 939, 940, 941, 944, and 947.
all were complaints about use of sprintf, and in all cases, the
buffers used were large enough for all eventualities.
Resolved issue by replacing calls to sprintf with calls
to snprintf.
r20831:
Maintenance: Addressed CID 852
Replaced sprintf with snprintf
r20832:
Purpose: Fix valgrind issues with hl/examples/ex_image2
Description:
Modified hl/examples/ex_image2 to free global "gbuf" before exit.
Tested on:
Mac OSX/64 10.9.1 (amaon) w/C++, FORTRAN & Threadsafety
(too minor to require h5committest)
Fix ph5diff worker command handling so it can correctly respond to
situations where there's no work to perform. Also, a few minor code cleanups.
Tested on:
Mac OSX/64 10.9.0 (amazon) w/parallel
Bring r24101 & 24111 from trunk to 1.8 branch:
r24101:
=======
Description:
Clean up warnings, enable new compiler warning flag(s) and bring back
changes from Coverity branch:
r20813:
Remove the dead code as listed for coverity bug #1722. h5committested.
r20814:
Issue 69: Check return value and throw error if negative return. Also free datatype id on error
r20815:
Use HDstrncpy. --gh
r20816:
Replaced one last HDstrcat call with HDstrncat to resolve coverity issue 832.
r20817:
Use HDstrncpy and HDstrncat. --gh
r20818:
Purpose: Fix valgrind issues with h5jam
Description:
Modified h5jam to free strings strdup'd in parse_command_line before exit. Note
that they may still not be freed in case of error, due to the widespread use of
exit().
r20819:
Issue 80: change loop to use int as loop index.
r20820:
Maintenance: Fixed the bug found by coverity CID 788
There were two problems with this function:
1) it tried to unnecessary free NULL pointer
2) it tried to allocate c_name buffer that is done by H5Pget_class_name
r24111:
=======
Description:
Restrict GCC diagnostic pragmas to only gcc 4.6+
Tested on:
Mac OSX 10.8.4 (amazon) w/gcc 4.8.1, C++ & FORTRAN
(too minor to require h5committest)
Bring r24030 from trunk to 1.8 branch:
Clean up more compiler warnings.
Tested on:
Mac OSX/64 10.8.4 (amazon) w/gcc, C++ & FORTRAN
(too minor to require h5committest)
Found and removed two more "//" comments.
Tested: in Koala by
$ env CFLAGS="-ansi" ../hdf5/bin/buildhdf5 -fortran -cxx -config # enable fortran and cxx, configure only
$ make AM_CFLAGS=-ansi # compile all source file by setting HDF5 build CFLAGS as "-ansi" only
Bring r23695 from trunk to 1.8 branch:
Clean up warnings in H5Tconv.c (down to _only_ 9000 lines of output now!)
Merge changes from Coverity branch back to trunk:
r20684:
Fix for coverity bug #1721 which was due to the fix for coverity bug #943.
r20685:
Use HDstrncpy. --gh
r20761:
Purpose: Fix valgrind issues
Description:
Free image_data and data as appropriate in test_image.
r20762:
Purpose: Fix coverity issue 600
Description:
Add check for return value of H5O_close in H5Ocopy. Also cleaned up various
warnings.
r20763:
Purpose: Fix valgrind issues with h5stat
Description:
Modified h5stat to free "iter" before exit, and free "hand" before exit if
parse_command_line exits directly.
r20764:
fixed coverity issues:
69, 327, 614, 684, 685, 696, 697, 1681, 967, 826, 660, 80
r20765:
Fixed coverity bug 668
Pulled x * y * z multiply out of malloc operand into a separate n_elements variable to quiet integer overflow warning.
No actual integer overflow tests are performed since it's just a test program but I did add a check that n_elements is >= 1.
I also changed an error condition from doing its own close and returning -1 to "goto out;" like the rest of the program.
r20766:
Fixed coverity bug 667
Pulled x * y * z multiply out of malloc operand into a separate n_elements variable to quiet integer overflow warning.
No actual integer overflow tests are performed since it's just a test program.
Tested on:
Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
(h5committest upcoming)
HDFFV-7643 - h5diff - incorrect exit-code returns for extra attribute exist
Description:
h5diff: Fixed to return correct exit code 1 when detect unique
attribute. Prior to this fix, h5diff returned exit code 0 indicating
two files are identical.
Merged from HDF5 trunk r23304.
Tested:
jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), fred (mac64-LE), emu (solaris-BE), Windows (32-LE cmake), cmake (jam)
Bring r23219 from trunk to 1.8 branch:
Bring reviewed changes from Coverity branch back to trunk (QK & JK):
r20457:
Coverity issue 691: return of H5duo could be negative. Fixed by using
STDOUT_FILENO and redesign parse_command_line and main to cleanup file
allocations. The output_file var is null when using stdout. In cleanup do not
close output_file if NULL.
r20510:
Initialize ufid = -1 and predicate HDclose call on ufid != -1
r20511:
Purpose: Fix coverity issue 1715
Description: Free "file" and nested data on failure in H5FD_core_open.
r20512:
Initialize ifid = -1 and predicate HDclose call on ifid != -1
r20514:
Initialize h5fid = -1 and predicate HDclose call on h5fid != -1
r20516:
Added else branch to the if (ret_value < 0) check.
r20522:
Addressed coverity issues 930-933, 850, 836, 835, 1307. All minor
potential buffer overwrite bugs, or coverity errors. Fixed by replacing
strcpy and sprintf with strncpy and snprintf.
r20523:
fixed coverity issues 68, 1120, 1116i
r20524:
Check H5Z_SZIP->encoder_present < 1 assuming 0 represents absence.
r20601:
Purpose: Fix coverity issues 1703-1705
Description: Modified the cleanup code in test_free in accum.c to reset
allocated buffers to NULL after they are freed, and modified the error cleanup
code to check if these buffers are NULL before freeing them. Also fixed some
unrelated warnings in accum.c.
r20602:
Use HDsnprintf and HDstrncat
r20603:
Purpose: Fix coverity issues 808-809
Description: Modified test_core in vfd.c to check the returns from malloc, and
keep track of whether points and check are allocated by setting them to NULL
when they are not. Added code to free points and check on error if they are
not NULL. Also fixed unrelated warnings in vfd.c.
r20604:
Use HDstrncpy.
r20605:
Use HDstrncpy and HDstrncat.
r20606:
Purpose: Fix coverity issue 807
Description: Modified long_compact in stab.c to keep track of whether objname is
allocated by setting it to NULL when it is not. Added code to free objname on
error if it is not NULL.
r20607:
Changed string function calls to use versions that specify the string length
to fix coverity issues 832 and 839.
Tested on:
Mac OSX/64 10.8.2 (amazon)
(Too minor to require h5committest)
Bring r22998 from trunk to 1.8 branch:
Clean up warnings and bring changes from Coverity branch back to trunk:
r20451:
Fixed coverity 810
r20454:
Purpose: Fix coverity issue 816
Description: Modified various file drivers to always check the return value from
H5P_get_driver_info.
r20455:
Purpose: Cleanup fix for coverity issue 816
Description: Removed redundant check for "fa" in H5FD_core_open.
Tested on:
Mac OSX/64 10.8.2 (amazon) w/debug
(Too minor to require h5committest)
HDFFV-8145 h5diff slowness with version >= 1.8.7
Description:
Improved speed when comparing HDF5 files with lots of attributes. Much slower performance was identified with release version from 1.8.7 to 1.8.10 compared to 1.8.6.
Merged from HDF5 trunk r22933.
Tested:
jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), cmake (jam)