Commit Graph

140 Commits

Author SHA1 Message Date
Dana Robinson
cba993c349 Minor normalizations with develop 2020-08-16 12:25:09 -07:00
Allen Byrne
d20d355b79 OESS-29 Update HD prefix and compare against develop 2019-08-23 14:09:20 -05:00
Allen Byrne
8f103a935b HDFFV-10594, 10332, 10531 2018-09-26 16:04:34 -05:00
Jerome Soumagne
81f4245a7c Fix evaluation of __has_attribute(no_sanitize_address) on older GCC versions 2018-07-26 17:19:24 -05:00
Binh-Minh Ribler
e57234b027 Fixed HDFFV-10404
Description:
    Applied the typo fixes from user's report.
    The previous pull request couldn't be merged because it was too old,
    and it was too complicated for me to resolve conflicts.
Platform tested:
    Linux/64 (jelly) - very minor
2018-07-26 17:19:03 -05:00
Jerome Soumagne
1268499234 Fix H5detect to use no_sanitize_address attribute and support GCC sanitizers 2018-07-26 17:16:15 -05:00
Allen Byrne
e96ef71034 HDFFV-9739 and cmake improvements merge from develop 2018-05-22 10:23:16 -05:00
Allen Byrne
20ee50c5b9 HDFFV-10345 splelling and whitespace corrections 2018-02-05 12:48:01 -06:00
Allen Byrne
36ddc71735 HDFFV-10398 add sanitize attribute 2018-02-05 08:51:46 -06:00
lrknox
25ec07450a Change copyright headers to replace url referring to file to be removed
and replace it with new url for COPYING file.

Fix 2 lines in java error test expected output file where messages
include line numbers changed by reducing the copyright header by 2
lines.
2017-04-14 11:54:16 -05:00
Quincey Koziol
83724bd787 [svn-r30113] Description:
Clean up warnings (from 2774 -> 1560, with my standard debug build)

Tested on:
    MacOSX/64 10.11.5 (amazon) w/serial, parallel & production
    (h5committest forthcoming)
2016-06-28 16:53:48 -05:00
Quincey Koziol
1023374492 [svn-r27768] Description:
Complete revamp of package initialization/shutdown mechanism in the library.
Each package now has a single init/term routine.

    This new way should avoid packages being re-initialized during library
shutdown and is also be _much_ more proactive about giving feedback for
resource leaks internal to the library.

    Introduces a new "module" header file for packages in the library
(e.g src/H5Fmodule.h) which sets up some necessary package configuration macros
for the FUNC_ENTER/LEAVE macros.  (The VFL drivers have their own slightly
modified version of this header, src/H5FDdrvr_module.h)

    Also cleaned up a bunch of resources leaks all across the library and tests,
along with addressing many warnings, as I encountered them.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    Linux/64 3.10.x (kituo) w/serial & parallel
    Linux/64 2.6.x (ostrich) w/serial
2015-09-13 22:58:59 -05:00
Mohamad Chaarawi
fc45d5fcb0 [svn-r27133] - Add a new attribute function characterstic for format:
* H5_ATTR_FORMAT(X,Y,Z)  __attribute__((format(X, Y, Z)))
- Rename UNUSED attribute characterstic to H5_ATTR_UNUSED.
- Rename NORETURN attribute characterstic to H5_ATTR_NORETURN

tested with h5committest.
2015-06-01 14:38:09 -05:00
Scot Breitenfeld
ae82b5232a [svn-r27114] Fixed spelling and which file is created with the program.
Tested: none -- comments only.
2015-05-27 15:31:39 -05:00
Jerome Soumagne
8f82c9b8be [svn-r27031] Fix warnings in H5detect and clean up code, use unsigned variables
Use H5_GCC_DIAG_ON/OFF to suppress larger-than and float-equal warnings

Variables used with sigsetjmp/siglongjmp must be declared as volatile

Remove unnecessary use of volatile after r24171 fix and fix prototypes

Tested in release mode on:
- jam (CentOS 5.11 i386 GCC 4.1.2)
- ostrich (RHEL 6.6 ppc64 GCC 4.4.7)
- local linux (OpenSuSE 13.2 x86_64 GCC 4.8.3)
- local linux (Fedora 21 x86_64 GCC 4.9.2)
- local linux (Fedora 21 x86_64 ICC 15.0.2)
- local windows (Windows 8.1 x86_64 MSVC 2013 update 4)
- lemur (MacOSX 10.10.3 x86_64 clang-602.0.49 Xcode 6.3.1)
- ibm p95a07 (Ubuntu 14.10 ppc64le GCC 4.9.1)
- ibm p95a07 (Ubuntu 14.10 ppc64le IBM XL C V13.1.1)
- bluewaters (Cray PE 2.2.1 x86_64 GCC 4.8.2)
- bluewaters (Cray PE 2.2.1 x86_64 Cray C 8.3.3)
- bluewaters (Cray PE 2.2.1 x86_64 PGCC 14.2)
2015-05-06 18:44:50 -05:00
Jerome Soumagne
5c8ecdd14a [svn-r27029] Fix bad comment in H5detect, this was preventing PGCC from compiling correctly.
Tested on: bluewaters
2015-05-06 18:22:48 -05:00
Jerome Soumagne
19fa03d5a8 [svn-r26375] Print number of times sigill_handler is called in H5detect.
Part of: HDFFV-8857
2015-03-05 17:46:07 -05:00
Dana Robinson
d8e3d8e908 [svn-r26333] Eliminates gcc warnings due to -Wunsuffixed-float-constants.
- Adds 'F' suffixes for most float constants.

- A few constants MUST be of type double. These now receive the long
  double L suffix and are then cast to double. I do this via a new
  H5_DOUBLE() macro which was added to H5private.h.

Fixes: HDFFV-9148

Tested on: h5committest
2015-03-01 13:48:54 -05:00
Neil Fortner
e367f64e24 [svn-r24757] Change assertion to condition check/error return. Should fix periodic
assertion failure in fheap test (in test that is expected to fail cleanly).

Fix type in H5detect.c

Tested: ostrich, platypus (h5committest - jam and koala having issues)
2014-03-03 17:54:14 -05:00
Raymond Lu
2eb24b16da [svn-r24368] Issue 8147 - clang's -fcatch-undefined-behavior exposed undefined behavior in the alignment detection algorithm for integers in H5detect.c. Quincey decided to solve it in two steps. First, catch illegal instruction signal in the original algorithm. Second, use POSIX __alignof function to detect alignment if it's available. This checkin is the first step.
Tested on wren, jam, ostrich, platypas, and koala.
2013-10-28 16:25:46 -05:00
Dana Robinson
e9203a73e2 [svn-r24333] Added a few volatile keywords to H5detect.c to quiet Visual Studio warnings. Also added a void to a Windows-specific function.
These are both trivial changes that don't affect behavior.

Tested on: Visual Studio 2010 on 64-bit Windows 7
2013-10-19 18:43:06 -05:00
Neil Fortner
be3a331550 [svn-r24171] Purpose: Fix problem with gcc 4.8
Description:
With optimization enabled, gcc 4.8 inserts garbage into the padding bytes of
floating point types when assigning from a literal constant.  This caused
problems when H5detect.c scanned the bits in floating point types to determine
their properties.

Modified H5detect.c to scan for padding before further analyzing the type, and
to ignore all information in the padding areas.  Also removed code that
temporarily disabled optimization.

Tested: jam, koala, ostrich, platypus (h5committest)
2013-09-19 13:57:41 -05:00
Neil Fortner
309f3e7a23 [svn-r24139] Remove "will never be exectued" warnings in H5detect.c
Tested: jam, koala, ostrich (h5committest)
2013-09-13 16:49:39 -05:00
Raymond Lu
a1fe10691c [svn-r24098] Issue 8500 - H5detect.c has trouble to find info for long double with GCC 4.8. A user in the forum found the
problem in H5detect.c (uninitialized buffer) and provided the solution.  I checked it in yesterday.  But it 
turned out to be a false fix.  So I'm back it out.

Tested on jam - reverse of changes.
2013-09-04 17:09:23 -05:00
Raymond Lu
d50c061d38 [svn-r24095] Issue 8500 - H5detect.c has trouble to find info for long double with GCC 4.8. A user in the forum found the
problem in H5detect.c (uninitialized buffer) and provided the solution.  Allen and I verified it.

Tested with h5committest and CMake on jam, koala, ostrich, playtus, and Allen's virtual machine.
2013-09-03 14:39:34 -05:00
Quincey Koziol
424a41f878 [svn-r23713] Description:
Clean up warnings, switch library code to use Standard C/POSIX wrapper
macros, remove internal calls to API routines, update checkapi and checkposix
scripts.

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
    Big-Endian Linux/64 (ostrich)
2013-05-21 12:30:54 -05:00
Quincey Koziol
a20adf6924 [svn-r23048] Description:
Bring r20456 from Coverity branch to trunk:

fixed coverity 678, 679

Tested on:
    Mac OSX/64 10.8.2 (amazon) w/debug
    (too minor to require h5committest)
2012-11-21 17:25:46 -05:00
Quincey Koziol
a07c8f9247 [svn-r22287] Description:
Clean up more FUNC_ENTER/FUNC_LEAVE macros and move H5D & H5T code toward
the final design (as exemplified by the H5EA & H5FA code).

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug & parallel
2012-04-16 16:20:26 -05:00
Quincey Koziol
9c9ee2008c [svn-r21919] Description:
Refactor function name macros and simplify the FUNC_ENTER macros, to clear
away the cruft and prepare for further cleanups.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
2012-02-08 22:13:27 -05:00
Quincey Koziol
e4c6ef2f06 [svn-r20480] Description:
Remove global variable for the path name in the group traversal code.  Also
clean up a bunch of compiler warnings.

Tested on:
    Mac OS X/32 10.6.7 (amazon) w/debug & production
    FreeBSD/32 6.3 (duty) w/debug
    FreeBSD/64 6.3 (liberty) w/debug
    Solaris/32 2.7 (linew) w/debug
2011-04-12 11:59:33 -05:00
Quincey Koziol
ff334a5952 [svn-r18871] Description:
Clean up compiler warnings (on Windows, I hope) by marking some routines
as taking 'volatile' parameters.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor for h5committest)
2010-05-21 13:53:42 -05:00
Quincey Koziol
1b103bc875 [svn-r18799] Description:
Added note about use of volatile for variables.

Tested on:
    None - trivial change to comment.
2010-05-13 18:05:49 -05:00
Albert Cheng
ad4f1dc17d [svn-r18677] Just mopped up some looseends by using the macro HDxyz instead the xyz function
names.

Tested: Jam only since this is trivial.
2010-04-29 17:40:10 -05:00
Quincey Koziol
83175cb191 [svn-r18660] Description:
Tweak H5detect to be even more careful about its actions, to allow
gcc 4.5 to use '-O3'.  Also, minor code cleanups in H5Tfloat.c

Tested on:
	FreeBSD/64 6.3 (liberty) w/gcc 4.5 & production mode
	(h5committest not necessary/appropriate)
2010-04-28 15:56:55 -05:00
Albert Cheng
2bf52ee03e [svn-r18659] Bug: 1764
Description:
longjmp do not necessary restore signal that is blocked during the signal
handling. This caused the Alignment test to fail quietly, resulting in wrong
alignment information which will cause failures later.

Solution:
One can use sigsetjmp/siglongjmp to restore signal handling but not all systems
such as Cray XT or VMS supports sigsetjmp.  Backup solution is to use
sigprocmask to reset the signal. Again, some systems may not support it either.
Added code to try the first and then the second solution. Also added tests
to verify if the signal_handler routines are working properly.  Finally, added
code to print results of the verification (in form of comments) to H5Tinit.c
for inspection in case of failure.
(Note that many platforms do not have alignment limits at all and ALIGNMNET
code never raise the SIGBUS or SIGSEGV errors.  In those cases, it does not
matter whether the signal handlers work or not. Again, this can be deduced
from the results comments near the end of the H5Tinit.c. If the sum of signal
handlers called equals the total of verify, it means ALIGNMENT does not raise
any signals.)

For configure.in and configure:
Added the test for setjmp, sigsetjmp, sigprocmask which are used by the
H5detec.c.

Tested:
htcommittested, jam(serial).
2010-04-28 14:56:29 -05:00
Quincey Koziol
79a3ae8b6a [svn-r18627] Description:
More progress toward addressing Bz#1398: add 'volatile' keyword to floating-
point types when detecting their properties.  Also, minor code formatting
cleanups.

Tested on:
    FreeBSD/32 6.3 (duty) in debug mode
    FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
    Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
        w/C++ & FORTRAN, w/threadsafe, in debug mode
    Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
        w/C++ & FORTRAN, in production mode
    Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
        w/szip filter, in production mode
    Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
        in production mode
    Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
    Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
    Mac OS X/32 10.6.3 (amazon) in debug mode
    Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
2010-04-24 19:51:54 -05:00
Albert Cheng
d891ae1997 [svn-r18492] Bug fix:
Testlibinfo.sh failed again.

Solution:
Removed the const from H5libhdf5_settings definition, again.
Revamp the whole setting so that H5lib_settings.c is compiled
individually, just like H5Tinit.c.  Hope this will take care
of the problem once for all.

Tested:
Jam using --disable-shared with --enable and --disable-embedded-libinfo.
Will test this on the AIX platform after commit (cannot run bin/reconfigure
in the AIX platform and it is too clumsy to try to ssh files back and forth
and incurred "svn merge inconsistency" later too.
Pretty confident this fix should work in all other platforms.
2010-04-01 15:58:22 -05:00
Quincey Koziol
0a7809a659 [svn-r18415] Description:
Move the libhdf5.settings information out of src/H5Tinit.c and into a
separate header file (src/H5lib_settings.h), which is generated at build time
(not configure time) with the src/H5make_libsettings generator program.

Tested on:
    Linux/32 2.6 (jam)
    Mac OS X/32 10.6.2 (amazon)
2010-03-17 21:44:26 -05:00
Quincey Koziol
9b2c4bea02 [svn-r18011] Description:
Bring Coverity changes into the trunk: (also other minor cleanups)

r17991:
Fix Coverity items 175 and 176.  Fixed memory leak on error in print_enum in
H5LT.c.

r17993: (r17992 was not a Coverity change)
Close Coverity issue #206: inconsistently checking whether dt->shared was
non-NULL after H5T_alloc() returned a valid 'dt' value (which should guarantee
that dt->shared is valid).

r17994:
Fix Coverity item 149.  Fixed file handle leak on error in H5FD_stdio_open.

r17995:
Fixed Coverity issues 154 to 161:

 Added H5MP_close routine to error handling in the event *mp has not been
 freed before error.

r17996:
Close Coverity issue #126: potentially leaking merged_spans on routine failure.

r17997:
Fix Coverity items 147 and 148.  Fixed resource leaks on error in H5FDloc.c.

r17998:
Coverity issue 269-272:
    Added integer result variable to functions that could return negative.
        Assigned to unsigned after checking.
    Added H5E_BEGIN_TRY block around H5Tclose and removed H5E_THROW in the
        catch block.
    Checked buffer is NULL before free. Changed HGOTO_ERROR outside of the if
        block to H5E_THROW.

r17999:
Close Coverity issue #127: release temporary spans in more generic manner.
(Also add error checking to previous fix)

r18000:
Resolved Coverity issues 211 and 212 in H5T.c. Added comments to ignore
Coverity warning regarding not checking pointer for NULL, as we are using
an assert which catches the issue.

r18001:
Fix Coverity item 146.  Fixed resource leak on error in H5O_layout_copy.

r18002:
Fix Coverity items 143 and 145.  Fixed resource leaks on error in
H5D_compact_copy and H5D_contig_copy.

r18003:
Close Coverity issue #192: close file on error

r18004:
Fix Coverity issue #125: release temporary spans on error

r18005:
Resolved Coverity issues 5, 25, and 83 (in H5T.c):

    Separated embedded functions in order to check for NULL on return of
        H5I_object before passing into H5T_copy.

    Check to see if new_dt is NULL within error handling before
        dereferencing it.

    Ignore Coverity's dead code warnings as the checks that lead to the code
        are machine dependent.

r18006:
Coverity 63,70,73:  Checked result of function before assigning to an unsigned
variable.

r18007:
Coverity 78,79:   added continue statement if H5Pget_filter2 returns negative.

r18008:
Fixed Coverity issue # 138:

    Added support in error handling to free dst pointer (if allocated) on error.

r18009:
Whitespace & coding style cleanup
2009-12-13 00:28:30 -05:00
Quincey Koziol
30a52dd1a2 [svn-r17838] Description:
Further refactoring of v2 B-tree code, moving toward being able to pass
a context information to a client's encode/decode callbacks.

	Also, clean up of other minor compiler warnings and code formatting
issues.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.6.1 (amazon) in debug mode
        Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-11-05 08:45:35 -05:00
Albert Cheng
1d2bf10ae7 [svn-r17502] Purpose:
Stage 2 implementation of embedded library information feature.

H5.c: added code to print the embedded library information when there is
a library versions mis-match occurs. This ensures the library information
string is included in the executable.
Also modifies the code so that the Library mismatch warning string is
included only once in the executable.

H5private.h:
Added a global reference to the libinfo string variable to prepare
for possible stage 3 implementation of a public API.

test/testlibinfo.sh.in:
A new test added to verify the library information is indeed included
in the executables.

configure.in:
configure:
Added entry to auto-generate test/testlibinfo.sh.

H5detect.c:
Modified the libhdf5settings generating code to allow it to insert the
strings to a file other than stdout.  This maybe needed in stage 3
implementation.

MANIFEST:
updated with the newly added file of testlibinfo.sh.in.

Tested:
h5committest passed. Additional tests:
jam serial; jam --disable-embedded-libinfo; jam --disable-shared. All passed.
2009-09-21 00:28:44 -05:00
Albert Cheng
37906de73c [svn-r16829] Bug fix.
In Up (AIX system), the insert_libhdf5_settings() infinite looped because
it never found EOF.  Man getc in another system said:
   "If  the  integer  value returned by getc() is stored into a variable of
   type char and then compared against the integer constant EOF, the  com-
   parison may never succeed, because sign-extension of a variable of type
   char on widening to integer is implementation-defined."

Solution:
Changed inchar from type char to int fixed the problem.
Morale of the story: RTFM or HTCW (heed the compiler warnings).

Tested:
Up (AIX 5.3).
2009-04-21 18:28:58 -05:00
Albert Cheng
9bca9d684b [svn-r16814] New feature(Bug 230):
Embed the content of libhdf5.settings into the hdf5 executables so that an
"orphaned" executables can display (via the Unix strings command, for example)
the library settings used to build the executables.

This is a prototype implementation. Much improvement is needed.

configure.in:
    Added the --disable-embedded-libinfo option to disable this feature.
configure:
src/H5config.h.in:
    Generated by autotools like automake.
src/H5detect.c:
    Implement insert_libhdf5_settings() to insert the contents of
    libhdf5.settings into the library as an extern string variable so that it
    is included in all HDF5 executable.  Much improvement is needed.
fortran/src/Makefile.in:
    Auto-generated by bin/reconfigure. (i.e., I did make any changes to cause
    its direct regeneration).

Tested:
Jam serial, using default and --disable-embedded-libinfo, configure options.
2009-04-20 21:02:46 -05:00
Allen Byrne
5d69e87ff0 [svn-r16489] Fixed bug #1459 by eliminating the macro long_long and replacing all instances with long long.
Tested:
   h5comittest
   fedora 10 x64
   Vista 32, VS2005, IVF101
   XP32, Cygwin
2009-02-18 15:02:05 -05:00
Quincey Koziol
c465e18a68 [svn-r15609] Description:
Omnibus compiler warning cleanup & some reformatting also.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-09-10 14:10:41 -05:00
Neil Fortner
a59d91d192 [svn-r15485] Purpose: Allow library to shut down properly when objects have reference count
> 1.

Description: Added a new field 'app_count' to H5I_id_info_t struct, to track
    the reference count on an id due to the application.  the old 'count' field
    tracks the total.  Generally any id visible to the application gets placed
    in app_count.  Added app_ref boolean parameter to H5I_inc_ref, H5I_dec_ref,
    H5I_register, H5I_clear_type, and a few other functions, to specify whether
    the operation(s) being performed on the id(s) are due to the application
    (TRUE) or not (FALSE).  Test added for this case.

Tested: kagiso, smirom, linew (h5committest)
2008-08-19 11:35:16 -05:00
Scott Wegner
ebd6e8a9c6 [svn-r15096] Purpose: Windows Project Cleanup-- Unify Windows h5tinit
Description:
Previously, there was Windows-dependent code inside H5detect.c, because not all projects could access the gethostname() function.  However, we standardize our project-files to link with WS2_32.lib, so now this function is available.  Thus, the Windows-specific code has been removed from H5detect.c.

Tested:
VS2005 on WinXP
VS.NET on WinXP
no need to test other platforms, Windows-specific source change
2008-05-29 14:19:30 -05:00
Scott Wegner
b91e17b6cf [svn-r14067] Purpose: Revise usage of H5_HAVE_SIGLONGJMP
Description:
The way I had integrated H5_HAVE_SIGLONGJMP previously, we conditionally removed far more functionality than we needed.  As a result, Windows type alignment was lost.  This commit localizes the ifdef so it only surrounds the actual call to siglongjmp.  This is equivalent to what we've done in the past-- simply comment out the line.

Tested:
VNET on WinXP
2007-08-10 14:07:06 -05:00
Scott Wegner
88c194fd78 [svn-r14056] Purpose: Take advantage of new H5_HAVE_SIGLONGJMP flag in H5detect.c
Description:
Visual Studio does not have the function siglongjmp.  Therefore, we have created a new configure flag H5_HAVE_SIGLONGJMP that tests for this.  We use this within H5detect.c.

Tested:
VS.NET
h5committest
2007-08-08 17:51:43 -05:00
Scott Wegner
87a41d4286 [svn-r13766] In Visual Studio 2005 for 64-bit, _WIN32 is defined, but not WIN32, so I've standardized all #ifdef's to use _WIN32. This should not affect any other platform.
Tested:
Visual Studio (32- and 64-bit) on Win XP
2007-05-18 10:14:43 -05:00