mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-17 16:10:24 +08:00
Merge of recent develop work to 1.10 branch:
* H5FD_FEAT_DEFAULT_VFD_COMPATIBLE VFD feature flag (HDFFV-10214) * H5FDdriver_query() API call (HDFFV-10215) * Fix to skip SWMR tests that when the current VFD is not compatible with the default VFD (HDFFV-10197) * Removed obsolete compiler versions from config/gnu-flags (HDFFV-9937) * Many warning fixes
This commit is contained in:
parent
ef60bcd50e
commit
fb5c13d59c
@ -34,8 +34,8 @@ fi
|
||||
if test "X-" = "X-$FC"; then
|
||||
case $CC_BASENAME in
|
||||
gcc*|pgcc*)
|
||||
FC=gfortran40
|
||||
FC_BASENAME=gfortran40
|
||||
FC=gfortran
|
||||
FC_BASENAME=gfortran
|
||||
;;
|
||||
icc*)
|
||||
FC=ifort
|
||||
|
@ -71,7 +71,7 @@ if test "X-gfortran" = "X-$f9x_vendor"; then
|
||||
#esac
|
||||
|
||||
# General
|
||||
FC_BASENAME=gfortran40
|
||||
FC_BASENAME=gfortran
|
||||
F9XSUFFIXFLAG=""
|
||||
FSEARCH_DIRS=""
|
||||
H5_FCFLAGS="$H5_FCFLAGS -pedantic -Wall -Wextra -Wunderflow -Wimplicit-interface -Wsurprising"
|
||||
|
695
config/gnu-flags
695
config/gnu-flags
@ -91,13 +91,27 @@ case "$cc_vendor-$cc_version" in
|
||||
;;
|
||||
esac
|
||||
|
||||
# General
|
||||
H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs"
|
||||
# General flags
|
||||
#
|
||||
# Note that some of the flags listed here really should be developer
|
||||
# flags (listed in a separate variable, below) but we put them here
|
||||
# because they are not raised by the current code and we'd like to
|
||||
# know if they do start showing up.
|
||||
#
|
||||
# NOTE: Don't add -Wpadded here since we can't/won't fix the (many)
|
||||
# warnings that are emitted. If you need it, add it from the
|
||||
# environment variable at configure time.
|
||||
H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -Wextra -Wbad-function-cast -Wc++-compat -Wcast-align"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked -Wpointer-arith"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wswitch-enum"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings"
|
||||
|
||||
# Production
|
||||
# NDEBUG is handled explicitly by the configure script
|
||||
case "$cc_vendor-$cc_version" in
|
||||
gcc-[34].*)
|
||||
gcc-4.*)
|
||||
PROD_CFLAGS=
|
||||
;;
|
||||
gcc-[56].*)
|
||||
@ -112,7 +126,7 @@ case "$cc_vendor-$cc_version" in
|
||||
|
||||
# Debug
|
||||
# NDEBUG is handled explicitly by the configure script
|
||||
# -g is hanled by the symbols flags
|
||||
# -g is handled by the symbols flags
|
||||
case "$cc_vendor-$cc_version" in
|
||||
gcc-[56].*)
|
||||
DEBUG_CFLAGS="-ftrapv -fno-common"
|
||||
@ -121,11 +135,10 @@ case "$cc_vendor-$cc_version" in
|
||||
DEBUG_CFLAGS=
|
||||
;;
|
||||
esac
|
||||
#DEBUG_CFLAGS="-fsanitize=undefined"
|
||||
|
||||
# Developer warnings (suggestions from gcc, not code problems)
|
||||
DEVELOPER_WARNING_CFLAGS="-Winline -Waggregate-return"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="-Wno-inline -Wno-aggregate-return"
|
||||
DEVELOPER_WARNING_CFLAGS="-Winline -Waggregate-return -Wmissing-format-attribute -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="-Wno-inline -Wno-aggregate-return -Wno-missing-format-attribute -Wno-missing-noreturn"
|
||||
|
||||
# Symbols
|
||||
NO_SYMBOLS_CFLAGS="-s"
|
||||
@ -136,7 +149,7 @@ case "$cc_vendor-$cc_version" in
|
||||
|
||||
# Optimization
|
||||
case "$cc_vendor-$cc_version" in
|
||||
gcc-[34].*)
|
||||
gcc-4.*)
|
||||
HIGH_OPT_CFLAGS="-O3"
|
||||
DEBUG_OPT_CFLAGS=
|
||||
;;
|
||||
@ -151,10 +164,6 @@ case "$cc_vendor-$cc_version" in
|
||||
esac
|
||||
NO_OPT_CFLAGS="-O0"
|
||||
|
||||
# Try out the new "stack protector" feature introduced in gcc 4.1
|
||||
# (We should also think about adding some of the other memory protection options)
|
||||
#DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
|
||||
|
||||
# Flags are set
|
||||
cc_flags_set=yes
|
||||
;;
|
||||
@ -170,375 +179,169 @@ case "$cc_vendor-$cc_version" in
|
||||
# include and break it out into it's own section, like the other versions
|
||||
# below. -QAK
|
||||
gcc-6*)
|
||||
# Append warning flags
|
||||
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
|
||||
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
|
||||
# from GCC's assert macro
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wnormalized"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
# (none, or incorporated in -Wall / -Wextra now)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
# Append warning flags that only gcc 4.5+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
# Append warning flags that only gcc 4.6+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.7+ know about
|
||||
# Append warning flags that only gcc 4.7+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.8+ know about
|
||||
# Append warning flags that only gcc 4.8+ knows about
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.9+ know about
|
||||
# Append warning flags that only gcc 4.9+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
|
||||
|
||||
# Append more extra warning flags that only gcc 5.x+ know about
|
||||
# Append warning flags that only gcc 5.x+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 6.x+ know about
|
||||
# Append warning flags that only gcc 6.x+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa"
|
||||
;;
|
||||
|
||||
gcc-5*)
|
||||
# Append warning flags
|
||||
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
|
||||
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
|
||||
# from GCC's assert macro
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wnormalized"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
# (none, or incorporated in -Wall / -Wextra now)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
# Append warning flags that only gcc 4.5+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
# Append warning flags that only gcc 4.6+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.7+ know about
|
||||
# Append warning flags that only gcc 4.7+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.8+ know about
|
||||
# Append warning flags that only gcc 4.8+ knows about
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.9+ know about
|
||||
# Append warning flags that only gcc 4.9+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
|
||||
|
||||
# Append more extra warning flags that only gcc 5.x+ know about
|
||||
# Append warning flags that only gcc 5.x+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat"
|
||||
;;
|
||||
|
||||
gcc-4.9*)
|
||||
# Append warning flags
|
||||
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
|
||||
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
|
||||
# from GCC's assert macro
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
# (none, or incorporated in -Wall / -Wextra now)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
# Append warning flags that only gcc 4.5+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
# Append warning flags that only gcc 4.6+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.7+ know about
|
||||
# Append warning flags that only gcc 4.7+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.8+ know about
|
||||
# Append warning flags that only gcc 4.8+ knows about
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.9+ know about
|
||||
# Append warning flags that only gcc 4.9+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
|
||||
;;
|
||||
|
||||
gcc-4.8*)
|
||||
# Append warning flags
|
||||
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
|
||||
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
|
||||
# from GCC's assert macro
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
# (none, or incorporated in -Wall / -Wextra now)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
# Append warning flags that only gcc 4.5+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
# Append warning flags that only gcc 4.6+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.7+ know about
|
||||
# Append warning flags that only gcc 4.7+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.8+ know about
|
||||
# Append warning flags that only gcc 4.8+ knows about
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format"
|
||||
;;
|
||||
|
||||
gcc-4.7*)
|
||||
# Append warning flags
|
||||
# Don't use the '-Wtraditional' flag, we're way past having K&R C code
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional"
|
||||
# Don't use the '-Wtraditional-conversion' flag, there's too many warnings
|
||||
# from GCC's assert macro
|
||||
# H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
# (this warning was removed in gcc 4.5+)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
# (none, or incorporated in -Wall / -Wextra now)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
# Append warning flags that only gcc 4.5+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
# Append warning flags that only gcc 4.6+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.7+ know about
|
||||
# Append warning flags that only gcc 4.7+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn"
|
||||
@ -548,57 +351,22 @@ case "$cc_vendor-$cc_version" in
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
# (this warning was removed in gcc 4.5+)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
# (none, or incorporated in -Wall / -Wextra now)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
# Append warning flags that only gcc 4.5+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
# Append warning flags that only gcc 4.6+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const"
|
||||
@ -608,54 +376,19 @@ case "$cc_vendor-$cc_version" in
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
# (this warning was removed in gcc 4.5+)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
# (none, or incorporated in -Wall / -Wextra now)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
# Append warning flags that only gcc 4.5+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
|
||||
;;
|
||||
|
||||
@ -663,50 +396,16 @@ case "$cc_vendor-$cc_version" in
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
# Append warning flags that only gcc 4.4+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
|
||||
;;
|
||||
|
||||
@ -714,44 +413,15 @@ case "$cc_vendor-$cc_version" in
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
# Append warning flags that only gcc 4.1+ knows about
|
||||
# -Wvolatile-register-var was later incorporated into -Wall and
|
||||
# needs to be specified explicitly for gcc 4.1-4.3.
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning appears to be reliable now...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.3+ know about
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
#
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... -QAK
|
||||
@ -762,41 +432,12 @@ case "$cc_vendor-$cc_version" in
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
# Append warning flags that only gcc 4.1+ knows about
|
||||
# -Wvolatile-register-var was later incorporated into -Wall and
|
||||
# needs to be specified explicitly for gcc 4.1-4.3.
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning does not appear to be reliable yet...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.2+ know about
|
||||
# Append warning flags that only gcc 4.2+ knows about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
|
||||
;;
|
||||
|
||||
@ -804,172 +445,12 @@ case "$cc_vendor-$cc_version" in
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# Enable more format checking flags, beyond the basic -Wformat included
|
||||
# in -Wall
|
||||
H5_CFLAGS="$H5_CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning does not appear to be reliable yet...
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.1+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
|
||||
# Append warning flags that only gcc 4.1+ knows about
|
||||
# -Wvolatile-register-var was later incorporated into -Wall and
|
||||
# needs to be specified explicitly for gcc 4.1-4.3.
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var"
|
||||
;;
|
||||
|
||||
gcc-4.0*)
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# The "format=2" warning generates too many warnings about valid
|
||||
# usage in the library.
|
||||
#CFLAGS="$CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning does not appear to be reliable yet...
|
||||
#CFLAGS="$CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append warning flags from gcc-3.4* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
|
||||
# Append more extra warning flags that only gcc 4.0+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
|
||||
;;
|
||||
|
||||
gcc-3.4*)
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# The "format=2" warning generates too many warnings about valid
|
||||
# usage in the library.
|
||||
#CFLAGS="$CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning does not appear to be reliable yet...
|
||||
#CFLAGS="$CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append warning flags from gcc-3.3* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
|
||||
# Append more extra warning flags that only gcc3.4+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
|
||||
|
||||
# Replace old -W flag with new -Wextra flag
|
||||
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
|
||||
;;
|
||||
|
||||
gcc-3.3*)
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append warning flags from gcc-3.2* case
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# The "format=2" warning generates too many warnings about valid
|
||||
# usage in the library.
|
||||
#CFLAGS="$CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning does not appear to be reliable yet...
|
||||
#CFLAGS="$CFLAGS -Wunreachable-code"
|
||||
|
||||
# Append more extra warning flags that only gcc3.3+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
|
||||
;;
|
||||
|
||||
gcc-3.2*)
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append warning flags from gcc-3* case
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
|
||||
# Append more extra warning flags that only gcc3.2+ know about
|
||||
H5_CFLAGS="$H5_CFLAGS -Wpacked -Wdisabled-optimization"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wmissing-noreturn"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-missing-noreturn"
|
||||
|
||||
# The "format=2" warning generates too many warnings about valid
|
||||
# usage in the library.
|
||||
#CFLAGS="$CFLAGS -Wformat=2"
|
||||
|
||||
# The "unreachable code" warning does not appear to be reliable yet...
|
||||
#CFLAGS="$CFLAGS -Wunreachable-code"
|
||||
;;
|
||||
|
||||
gcc-3*)
|
||||
# Disable warnings about using 'long long' type
|
||||
H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
|
||||
|
||||
# Append some extra warning flags that only gcc3+ know about
|
||||
# (don't use -Wpadded flag for normal builds, many of the warnings its
|
||||
# issuing can't be fixed and they are making it hard to detect other,
|
||||
# more important warnings)
|
||||
#H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Clear cc info if no flags set
|
||||
|
@ -47,7 +47,7 @@
|
||||
#define CHUNK_NX 4
|
||||
#define CHUNK_NY 4
|
||||
|
||||
#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12)
|
||||
#define DEFLATE_SIZE_ADJUST(s) (HDceil(((double)(s))*H5_DOUBLE(1.001))+H5_DOUBLE(12.0))
|
||||
|
||||
/* Temporary filter IDs used for testing */
|
||||
#define H5Z_FILTER_BOGUS1 305
|
||||
|
@ -928,64 +928,60 @@ error: /* An error has occurred. Clean up and exit. */
|
||||
* 2016/01/27 -BMR
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t verify_accessors(hid_t fid, const char *table_name, herr_t expected_value)
|
||||
static herr_t verify_accessors(hid_t fid, const char *table_name, hbool_t uses_vlen_type)
|
||||
{
|
||||
hid_t ptable=H5I_INVALID_HID; /* Packet table identifier */
|
||||
hid_t dset_id=H5I_INVALID_HID; /* Dataset associated with the pt */
|
||||
hid_t dtype_id=H5I_INVALID_HID; /* Dataset identifier */
|
||||
hid_t ptable = H5I_INVALID_HID; /* Packet table identifier */
|
||||
hid_t dset_id = H5I_INVALID_HID; /* Dataset associated with the pt */
|
||||
hid_t dtype_id = H5I_INVALID_HID; /* Dataset identifier */
|
||||
char buf[NAME_BUF_SIZE];
|
||||
ssize_t name_size;
|
||||
herr_t is_varlen = 0;
|
||||
herr_t ret = FAIL; /* Returned status from a callee */
|
||||
htri_t vlen_check_result = -1;
|
||||
|
||||
/* Open the named packet table. */
|
||||
ptable = H5PTopen(fid, table_name);
|
||||
if (ptable < 0)
|
||||
goto error;
|
||||
if((ptable = H5PTopen(fid, table_name)) < 0)
|
||||
goto error;
|
||||
|
||||
/* Get the associated dataset ID. */
|
||||
dset_id = H5PTget_dataset(ptable);
|
||||
if (dset_id < 0)
|
||||
goto error;
|
||||
if((dset_id = H5PTget_dataset(ptable)) < 0)
|
||||
goto error;
|
||||
|
||||
/* Check if the packet table's name matches its associated dataset's. */
|
||||
*buf = '\0';
|
||||
name_size = H5Iget_name(dset_id, (char*)buf, NAME_BUF_SIZE);
|
||||
if (name_size < 0)
|
||||
goto error;
|
||||
if((name_size = H5Iget_name(dset_id, (char*)buf, NAME_BUF_SIZE)) < 0)
|
||||
goto error;
|
||||
VERIFY(HDstrcmp(buf, table_name), "Names of dataset and packet table don't match");
|
||||
|
||||
/* Get the packet table's datatype ID */
|
||||
dtype_id = H5PTget_type(ptable);
|
||||
if (dtype_id < 0)
|
||||
goto error;
|
||||
if((dtype_id = H5PTget_type(ptable)) < 0)
|
||||
goto error;
|
||||
|
||||
/* Check if the type class matches that of the packet table. */
|
||||
is_varlen = H5Tdetect_class(dtype_id, H5T_VLEN);
|
||||
if (is_varlen == FAIL) /* failure occurred */
|
||||
goto error;
|
||||
else if (is_varlen == expected_value) /* length types match */
|
||||
ret = SUCCEED;
|
||||
else /* length types don't match */
|
||||
{
|
||||
/* Give lengthtype "fixed-length" or "variable-length" depending on the
|
||||
expected_value passed in, then print the error message. */
|
||||
char lenthtype[20];
|
||||
HDstrcpy(lenthtype, "fixed-length");
|
||||
if (expected_value == 1)
|
||||
HDstrcpy(lenthtype, "variable-length");
|
||||
fprintf(stderr, "\nThe dataset '%s' should be %s but is not\n", table_name, lenthtype);
|
||||
ret = FAIL;
|
||||
if((vlen_check_result = H5Tdetect_class(dtype_id, H5T_VLEN)) < 0)
|
||||
goto error;
|
||||
|
||||
/* Check if length types match */
|
||||
if (vlen_check_result != (htri_t)uses_vlen_type) {
|
||||
/* Give lengthtype "fixed-length" or "variable-length" depending on the
|
||||
* expected_value passed in, then print the error message.
|
||||
*/
|
||||
char lenthtype[20];
|
||||
if (uses_vlen_type == TRUE)
|
||||
HDstrcpy(lenthtype, "variable-length");
|
||||
else
|
||||
HDstrcpy(lenthtype, "fixed-length");
|
||||
HDfprintf(stderr, "\nThe dataset '%s' should be %s but is not\n", table_name, lenthtype);
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* Close the packet table */
|
||||
if (H5PTclose(ptable) < 0)
|
||||
goto error;
|
||||
goto error;
|
||||
|
||||
return SUCCEED;
|
||||
|
||||
error: /* An error has occurred. Clean up and exit. */
|
||||
if (H5PTis_valid(ptable) > 0) H5PTclose(ptable);
|
||||
if (H5PTis_valid(ptable) > 0)
|
||||
H5PTclose(ptable);
|
||||
H5_FAILED();
|
||||
return FAIL;
|
||||
} /* verify_accessors */
|
||||
@ -1010,25 +1006,26 @@ static int test_accessors(void)
|
||||
/* Open the file */
|
||||
fid = H5Fopen(TEST_FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT);
|
||||
if (fid < 0)
|
||||
goto error;
|
||||
goto error;
|
||||
|
||||
ret = verify_accessors(fid, PT_VLEN_ATOMIC, TRUE);
|
||||
if (ret < 0)
|
||||
goto error;
|
||||
goto error;
|
||||
|
||||
ret = verify_accessors(fid, PT_FIXED_LEN, FALSE);
|
||||
if (ret < 0)
|
||||
goto error;
|
||||
goto error;
|
||||
|
||||
/* Close the file */
|
||||
if (H5Fclose(fid) < 0)
|
||||
goto error;
|
||||
goto error;
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
|
||||
error: /* An error has occurred. Clean up and exit. */
|
||||
if (fid > 0) H5Fclose(fid);
|
||||
if (fid > 0)
|
||||
H5Fclose(fid);
|
||||
H5_FAILED();
|
||||
return FAIL;
|
||||
} /* test_accessors */
|
||||
|
@ -38,24 +38,24 @@ static herr_t extend_dset_one(const char *file, char *dname, int action);
|
||||
|
||||
/* Data structures for datasets with compound data type */
|
||||
typedef struct sub22_t {
|
||||
unsigned int a;
|
||||
unsigned int b;
|
||||
unsigned int c;
|
||||
int a;
|
||||
int b;
|
||||
int c;
|
||||
} sub22_t;
|
||||
|
||||
typedef struct sub2_t {
|
||||
unsigned int a;
|
||||
int a;
|
||||
sub22_t b;
|
||||
unsigned int c;
|
||||
int c;
|
||||
} sub2_t;
|
||||
|
||||
typedef struct sub4_t {
|
||||
unsigned int a;
|
||||
unsigned int b;
|
||||
int a;
|
||||
int b;
|
||||
} sub4_t;
|
||||
|
||||
typedef struct set_t {
|
||||
unsigned int field1;
|
||||
int field1;
|
||||
sub2_t field2;
|
||||
double field3;
|
||||
sub4_t field4;
|
||||
@ -78,7 +78,7 @@ extend_dset_two(const char *file, char *dname, int action1, int action2)
|
||||
hid_t sid = -1; /* dataspace id */
|
||||
hid_t dtid = -1; /* dataset's datatype id */
|
||||
int ndims; /* # of dimension sizes */
|
||||
unsigned i, j; /* local index variable */
|
||||
unsigned i; /* local index variable */
|
||||
hsize_t ext_dims[2]; /* new dimension sizes after extension */
|
||||
hsize_t cur_dims[2]; /* current dimension sizes */
|
||||
size_t dtype_size; /* size of the dataset's datatype */
|
||||
@ -144,23 +144,23 @@ extend_dset_two(const char *file, char *dname, int action1, int action2)
|
||||
goto error;
|
||||
|
||||
num_elmts = 1;
|
||||
for(j = 0; j < (unsigned)ndims; j++)
|
||||
num_elmts *= (unsigned)ext_dims[j];
|
||||
for(i = 0; i < (unsigned)ndims; i++)
|
||||
num_elmts *= (unsigned)ext_dims[i];
|
||||
|
||||
/* Compound type */
|
||||
if(!HDstrcmp(dname, DSET_CMPD_TWO)) {
|
||||
|
||||
HDmemset(cbuf, 0, TEST_BUF_SIZE * sizeof(set_t));
|
||||
for(j = 0; j < num_elmts; j++) {
|
||||
cbuf[j].field1 = action1;
|
||||
cbuf[j].field2.a = action1;
|
||||
cbuf[j].field2.c = action1;
|
||||
cbuf[j].field2.b.a = action1;
|
||||
cbuf[j].field2.b.b = action1;
|
||||
cbuf[j].field2.b.c = action1;
|
||||
cbuf[j].field3 = action1;
|
||||
cbuf[j].field4.a = action1;
|
||||
cbuf[j].field4.b = action1;
|
||||
for(i = 0; i < num_elmts; i++) {
|
||||
cbuf[i].field1 = action1;
|
||||
cbuf[i].field2.a = action1;
|
||||
cbuf[i].field2.c = action1;
|
||||
cbuf[i].field2.b.a = action1;
|
||||
cbuf[i].field2.b.b = action1;
|
||||
cbuf[i].field2.b.c = action1;
|
||||
cbuf[i].field3 = action1;
|
||||
cbuf[i].field4.a = action1;
|
||||
cbuf[i].field4.b = action1;
|
||||
} /* end for */
|
||||
|
||||
/* Write to the dataset */
|
||||
@ -169,8 +169,8 @@ extend_dset_two(const char *file, char *dname, int action1, int action2)
|
||||
|
||||
} else { /* Integer type */
|
||||
HDmemset(ibuf, 0, TEST_BUF_SIZE * sizeof(int));
|
||||
for(j = 0; j < num_elmts; j++)
|
||||
ibuf[j] = action1;
|
||||
for(i = 0; i < num_elmts; i++)
|
||||
ibuf[i] = action1;
|
||||
|
||||
/* Write to the dataset */
|
||||
if(H5Dwrite(did, dtid, H5S_ALL, H5S_ALL, H5P_DEFAULT, ibuf) < 0)
|
||||
@ -225,7 +225,7 @@ extend_dset_one(const char *file, char *dname, int action)
|
||||
hid_t dtid = -1; /* dataset's datatype id */
|
||||
hid_t sid = -1; /* dataspace id */
|
||||
hid_t mid = -1; /* memory space id */
|
||||
unsigned i, j; /* local index variable */
|
||||
int i; /* local index variable */
|
||||
hsize_t cur_dims[1]; /* current dimension sizes */
|
||||
hsize_t ext_dims[1]; /* new dimension sizes after extension */
|
||||
hsize_t offset[1]; /* starting offsets of appended data */
|
||||
@ -304,18 +304,18 @@ extend_dset_one(const char *file, char *dname, int action)
|
||||
if(!HDstrcmp(dname, DSET_CMPD) || !HDstrcmp(dname, DSET_CMPD_ESC)) {
|
||||
|
||||
HDmemset(cbuf, 0, TEST_BUF_SIZE * sizeof(set_t));
|
||||
for(j = 0; j < (unsigned)action; j++) {
|
||||
cbuf[j].field1 = j + 1;
|
||||
cbuf[j].field2.a = j + 2;
|
||||
cbuf[j].field2.b.a = j + 2;
|
||||
cbuf[j].field2.b.b = j + 2;
|
||||
cbuf[j].field2.b.c = j + 2;
|
||||
cbuf[j].field2.c = j + 2;
|
||||
for(i = 0; i < action; i++) {
|
||||
cbuf[i].field1 = i + 1;
|
||||
cbuf[i].field2.a = i + 2;
|
||||
cbuf[i].field2.b.a = i + 2;
|
||||
cbuf[i].field2.b.b = i + 2;
|
||||
cbuf[i].field2.b.c = i + 2;
|
||||
cbuf[i].field2.c = i + 2;
|
||||
|
||||
cbuf[j].field3 = j + 3;
|
||||
cbuf[i].field3 = i + 3;
|
||||
|
||||
cbuf[j].field4.a = j + 4;
|
||||
cbuf[j].field4.b = j + 4;
|
||||
cbuf[i].field4.a = i + 4;
|
||||
cbuf[i].field4.b = i + 4;
|
||||
} /* end for */
|
||||
|
||||
/* Write to the extended region of the dataset */
|
||||
@ -324,8 +324,8 @@ extend_dset_one(const char *file, char *dname, int action)
|
||||
} else { /* Integer type */
|
||||
|
||||
HDmemset(ibuf, 0, TEST_BUF_SIZE * sizeof(int));
|
||||
for(j = 0; j < (unsigned)action; j++)
|
||||
ibuf[j] = (int)j;
|
||||
for(i = 0; i < action; i++)
|
||||
ibuf[i] = (int)i;
|
||||
|
||||
/* Write to the extended region of the dataset */
|
||||
if(H5Dwrite(did, dtid, mid, sid, H5P_DEFAULT, ibuf) < 0)
|
||||
|
@ -58,24 +58,24 @@
|
||||
|
||||
/* Data structures for datasets with compound types */
|
||||
typedef struct sub22_t {
|
||||
unsigned int a;
|
||||
unsigned int b;
|
||||
unsigned int c;
|
||||
int a;
|
||||
int b;
|
||||
int c;
|
||||
} sub22_t;
|
||||
|
||||
typedef struct sub2_t {
|
||||
unsigned int a;
|
||||
int a;
|
||||
sub22_t b;
|
||||
unsigned int c;
|
||||
int c;
|
||||
} sub2_t;
|
||||
|
||||
typedef struct sub4_t {
|
||||
unsigned int a;
|
||||
unsigned int b;
|
||||
int a;
|
||||
int b;
|
||||
} sub4_t;
|
||||
|
||||
typedef struct set_t {
|
||||
unsigned int field1;
|
||||
int field1;
|
||||
sub2_t field2;
|
||||
double field3;
|
||||
sub4_t field4;
|
||||
|
@ -54,11 +54,53 @@ New Features
|
||||
|
||||
Configuration:
|
||||
-------------
|
||||
- Removed version-specific gcc/gfortran flags for version 4.0 (inclusive)
|
||||
and earlier
|
||||
|
||||
The config/gnu-flags file, which is sourced as a part of the configure
|
||||
process, adds version-specific flags for use when building HDF5. Most of
|
||||
these flags control warnings and do not affect the final product.
|
||||
|
||||
Flags for older versions of the compiler were consolidated into the
|
||||
common flags section. Moving these flags simplifies maintenance of
|
||||
the file.
|
||||
|
||||
The upshot of this is that building with ancient versions of gcc
|
||||
(<= 4.0) will possibly no longer work without hand-hacking the file
|
||||
to remove the flags not understood by that version of the compiler.
|
||||
Nothing should change when building with gcc >= 4.1.
|
||||
|
||||
Also, as a part of this work, the string 'gfortran40' was changed to
|
||||
'gfortran' in the config/gnu-fflags file.
|
||||
|
||||
(HDFFV-9937, DER, 2017/05/31)
|
||||
|
||||
-
|
||||
|
||||
Library:
|
||||
--------
|
||||
-
|
||||
- H5FDdriver_query() API call added to the C library.
|
||||
|
||||
This new library call allows the user to query a virtual file driver
|
||||
(VFD) for the feature flags it supports (listed in H5FDpublic.h).
|
||||
This can be useful to determine if a VFD supports SWMR, for example.
|
||||
|
||||
Note that some VFDs have feature flags that may only be present
|
||||
after a file has been created or opened (e.g.: the core VFD will
|
||||
have the H5FD_FEAT_POSIX_COMPAT_HANDLE flag set if the backing
|
||||
store is switched on). Since the new API call queries a generic VFD
|
||||
unassociated with a file, these flags will never be returned.
|
||||
|
||||
(HDFFV-10215, DER, 2017/05/31)
|
||||
|
||||
|
||||
- H5FD_FEAT_DEFAULT_VFD_COMPATIBLE VFD feature flag added to the C library.
|
||||
|
||||
This new feature flag indicates that the VFD is compatible with the
|
||||
default VFD. VFDs that set this flag create single files that follow
|
||||
the canonical HDF5 file format.
|
||||
|
||||
(HDFFV-10214, DER, 2017/05/31)
|
||||
|
||||
Parallel Library:
|
||||
-----------------
|
||||
|
178
src/H5Dint.c
178
src/H5Dint.c
@ -3004,10 +3004,10 @@ H5D__format_convert(H5D_t *dataset, hid_t dxpl_id)
|
||||
{
|
||||
H5D_chk_idx_info_t new_idx_info; /* Index info for the new layout */
|
||||
H5D_chk_idx_info_t idx_info; /* Index info for the current layout */
|
||||
H5O_layout_t newlayout; /* The new layout */
|
||||
hbool_t init_new_index = FALSE; /* Indicate that the new chunk index is initialized */
|
||||
H5O_layout_t *newlayout = NULL; /* The new layout */
|
||||
hbool_t init_new_index = FALSE; /* Indicate that the new chunk index is initialized */
|
||||
hbool_t delete_old_layout = FALSE; /* Indicate that the old layout message is deleted */
|
||||
hbool_t add_new_layout = FALSE; /* Indicate that the new layout message is added */
|
||||
hbool_t add_new_layout = FALSE; /* Indicate that the new layout message is added */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_PACKAGE_TAG(dxpl_id, dataset->oloc.addr, FAIL)
|
||||
@ -3017,121 +3017,127 @@ H5D__format_convert(H5D_t *dataset, hid_t dxpl_id)
|
||||
|
||||
switch(dataset->shared->layout.type) {
|
||||
case H5D_CHUNKED:
|
||||
HDassert(dataset->shared->layout.u.chunk.idx_type != H5D_CHUNK_IDX_BTREE);
|
||||
HDassert(dataset->shared->layout.u.chunk.idx_type != H5D_CHUNK_IDX_BTREE);
|
||||
|
||||
/* Set up the current index info */
|
||||
idx_info.f = dataset->oloc.file;
|
||||
idx_info.dxpl_id = dxpl_id;
|
||||
idx_info.pline = &dataset->shared->dcpl_cache.pline;
|
||||
idx_info.layout = &dataset->shared->layout.u.chunk;
|
||||
idx_info.storage = &dataset->shared->layout.storage.u.chunk;
|
||||
if(NULL == (newlayout = (H5O_layout_t *)H5MM_calloc(sizeof(H5O_layout_t))))
|
||||
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "unable to allocate buffer")
|
||||
|
||||
/* Copy the current layout info to the new layout */
|
||||
HDmemcpy(&newlayout, &dataset->shared->layout, sizeof(H5O_layout_t));
|
||||
/* Set up the current index info */
|
||||
idx_info.f = dataset->oloc.file;
|
||||
idx_info.dxpl_id = dxpl_id;
|
||||
idx_info.pline = &dataset->shared->dcpl_cache.pline;
|
||||
idx_info.layout = &dataset->shared->layout.u.chunk;
|
||||
idx_info.storage = &dataset->shared->layout.storage.u.chunk;
|
||||
|
||||
/* Set up info for version 1 B-tree in the new layout */
|
||||
newlayout.version = H5O_LAYOUT_VERSION_3;
|
||||
newlayout.storage.u.chunk.idx_type = H5D_CHUNK_IDX_BTREE;
|
||||
newlayout.storage.u.chunk.idx_addr = HADDR_UNDEF;
|
||||
newlayout.storage.u.chunk.ops = H5D_COPS_BTREE;
|
||||
newlayout.storage.u.chunk.u.btree.shared = NULL;
|
||||
/* Copy the current layout info to the new layout */
|
||||
HDmemcpy(newlayout, &dataset->shared->layout, sizeof(H5O_layout_t));
|
||||
|
||||
/* Set up the index info to version 1 B-tree */
|
||||
new_idx_info.f = dataset->oloc.file;
|
||||
new_idx_info.dxpl_id = dxpl_id;
|
||||
new_idx_info.pline = &dataset->shared->dcpl_cache.pline;
|
||||
new_idx_info.layout = &newlayout.u.chunk;
|
||||
new_idx_info.storage = &newlayout.storage.u.chunk;
|
||||
/* Set up info for version 1 B-tree in the new layout */
|
||||
newlayout->version = H5O_LAYOUT_VERSION_3;
|
||||
newlayout->storage.u.chunk.idx_type = H5D_CHUNK_IDX_BTREE;
|
||||
newlayout->storage.u.chunk.idx_addr = HADDR_UNDEF;
|
||||
newlayout->storage.u.chunk.ops = H5D_COPS_BTREE;
|
||||
newlayout->storage.u.chunk.u.btree.shared = NULL;
|
||||
|
||||
/* Initialize version 1 B-tree */
|
||||
if(new_idx_info.storage->ops->init &&
|
||||
(new_idx_info.storage->ops->init)(&new_idx_info, dataset->shared->space, dataset->oloc.addr) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize indexing information")
|
||||
init_new_index = TRUE;
|
||||
/* Set up the index info to version 1 B-tree */
|
||||
new_idx_info.f = dataset->oloc.file;
|
||||
new_idx_info.dxpl_id = dxpl_id;
|
||||
new_idx_info.pline = &dataset->shared->dcpl_cache.pline;
|
||||
new_idx_info.layout = &(newlayout->u).chunk;
|
||||
new_idx_info.storage = &(newlayout->storage).u.chunk;
|
||||
|
||||
/* If the current chunk index exists */
|
||||
if(H5F_addr_defined(idx_info.storage->idx_addr)) {
|
||||
/* Initialize version 1 B-tree */
|
||||
if(new_idx_info.storage->ops->init && (new_idx_info.storage->ops->init)(&new_idx_info, dataset->shared->space, dataset->oloc.addr) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize indexing information")
|
||||
init_new_index = TRUE;
|
||||
|
||||
/* Create v1 B-tree chunk index */
|
||||
if((new_idx_info.storage->ops->create)(&new_idx_info) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create chunk index")
|
||||
/* If the current chunk index exists */
|
||||
if(H5F_addr_defined(idx_info.storage->idx_addr)) {
|
||||
|
||||
/* Iterate over the chunks in the current index and insert the chunk addresses
|
||||
* into the version 1 B-tree chunk index */
|
||||
if(H5D__chunk_format_convert(dataset, &idx_info, &new_idx_info) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_BADITER, FAIL, "unable to iterate/convert chunk index")
|
||||
} /* end if */
|
||||
/* Create v1 B-tree chunk index */
|
||||
if((new_idx_info.storage->ops->create)(&new_idx_info) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create chunk index")
|
||||
|
||||
/* Delete the old "current" layout message */
|
||||
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
|
||||
/* Iterate over the chunks in the current index and insert the chunk addresses
|
||||
* into the version 1 B-tree chunk index
|
||||
*/
|
||||
if(H5D__chunk_format_convert(dataset, &idx_info, &new_idx_info) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_BADITER, FAIL, "unable to iterate/convert chunk index")
|
||||
} /* end if */
|
||||
|
||||
delete_old_layout = TRUE;
|
||||
/* Delete the old "current" layout message */
|
||||
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
|
||||
|
||||
/* Append the new layout message to the object header */
|
||||
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &newlayout, dxpl_id) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update layout header message")
|
||||
delete_old_layout = TRUE;
|
||||
|
||||
add_new_layout = TRUE;
|
||||
/* Append the new layout message to the object header */
|
||||
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, newlayout, dxpl_id) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update layout header message")
|
||||
|
||||
/* Release the old (current) chunk index */
|
||||
if(idx_info.storage->ops->dest && (idx_info.storage->ops->dest)(&idx_info) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
|
||||
add_new_layout = TRUE;
|
||||
|
||||
/* Copy the new layout to the dataset's layout */
|
||||
HDmemcpy(&dataset->shared->layout, &newlayout, sizeof(H5O_layout_t));
|
||||
/* Release the old (current) chunk index */
|
||||
if(idx_info.storage->ops->dest && (idx_info.storage->ops->dest)(&idx_info) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
|
||||
|
||||
break;
|
||||
/* Copy the new layout to the dataset's layout */
|
||||
HDmemcpy(&dataset->shared->layout, newlayout, sizeof(H5O_layout_t));
|
||||
|
||||
case H5D_CONTIGUOUS:
|
||||
break;
|
||||
|
||||
case H5D_CONTIGUOUS:
|
||||
case H5D_COMPACT:
|
||||
HDassert(dataset->shared->layout.version > H5O_LAYOUT_VERSION_DEFAULT);
|
||||
dataset->shared->layout.version = H5O_LAYOUT_VERSION_DEFAULT;
|
||||
if(H5O_msg_write(&(dataset->oloc), H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &(dataset->shared->layout), dxpl_id) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "unable to update layout message")
|
||||
break;
|
||||
HDassert(dataset->shared->layout.version > H5O_LAYOUT_VERSION_DEFAULT);
|
||||
dataset->shared->layout.version = H5O_LAYOUT_VERSION_DEFAULT;
|
||||
if(H5O_msg_write(&(dataset->oloc), H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &(dataset->shared->layout), dxpl_id) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "unable to update layout message")
|
||||
break;
|
||||
|
||||
case H5D_VIRTUAL:
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "virtual dataset layout not supported")
|
||||
case H5D_VIRTUAL:
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "virtual dataset layout not supported")
|
||||
|
||||
case H5D_LAYOUT_ERROR:
|
||||
case H5D_NLAYOUTS:
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid dataset layout type")
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid dataset layout type")
|
||||
|
||||
default:
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "unknown dataset layout type")
|
||||
default:
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "unknown dataset layout type")
|
||||
} /* end switch */
|
||||
|
||||
done:
|
||||
if(ret_value < 0 && dataset->shared->layout.type == H5D_CHUNKED) {
|
||||
/* Remove new layout message */
|
||||
if(add_new_layout)
|
||||
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
|
||||
HDONE_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
|
||||
/* Remove new layout message */
|
||||
if(add_new_layout)
|
||||
if(H5O_msg_remove(&dataset->oloc, H5O_LAYOUT_ID, H5O_ALL, FALSE, dxpl_id) < 0)
|
||||
HDONE_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete layout message")
|
||||
|
||||
/* Add back old layout message */
|
||||
if(delete_old_layout)
|
||||
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &dataset->shared->layout, dxpl_id) < 0)
|
||||
HDONE_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to add layout header message")
|
||||
/* Add back old layout message */
|
||||
if(delete_old_layout)
|
||||
if(H5O_msg_create(&dataset->oloc, H5O_LAYOUT_ID, 0, H5O_UPDATE_TIME, &dataset->shared->layout, dxpl_id) < 0)
|
||||
HDONE_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to add layout header message")
|
||||
|
||||
/* Clean up v1 b-tree chunk index */
|
||||
if(init_new_index) {
|
||||
if(H5F_addr_defined(new_idx_info.storage->idx_addr)) {
|
||||
/* Check for valid address i.e. tag */
|
||||
if(!H5F_addr_defined(dataset->oloc.addr))
|
||||
HDONE_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "address undefined")
|
||||
/* Clean up v1 b-tree chunk index */
|
||||
if(init_new_index) {
|
||||
if(H5F_addr_defined(new_idx_info.storage->idx_addr)) {
|
||||
/* Check for valid address i.e. tag */
|
||||
if(!H5F_addr_defined(dataset->oloc.addr))
|
||||
HDONE_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "address undefined")
|
||||
|
||||
/* Expunge from cache all v1 B-tree type entries associated with tag */
|
||||
if(H5AC_expunge_tag_type_metadata(dataset->oloc.file, dxpl_id, dataset->oloc.addr, H5AC_BT_ID, H5AC__NO_FLAGS_SET))
|
||||
HDONE_ERROR(H5E_DATASET, H5E_CANTEXPUNGE, FAIL, "unable to expunge index metadata")
|
||||
} /* end if */
|
||||
/* Expunge from cache all v1 B-tree type entries associated with tag */
|
||||
if(H5AC_expunge_tag_type_metadata(dataset->oloc.file, dxpl_id, dataset->oloc.addr, H5AC_BT_ID, H5AC__NO_FLAGS_SET))
|
||||
HDONE_ERROR(H5E_DATASET, H5E_CANTEXPUNGE, FAIL, "unable to expunge index metadata")
|
||||
} /* end if */
|
||||
|
||||
/* Delete v1 B-tree chunk index */
|
||||
if(new_idx_info.storage->ops->dest && (new_idx_info.storage->ops->dest)(&new_idx_info) < 0)
|
||||
HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
|
||||
} /* end if */
|
||||
/* Delete v1 B-tree chunk index */
|
||||
if(new_idx_info.storage->ops->dest && (new_idx_info.storage->ops->dest)(&new_idx_info) < 0)
|
||||
HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
|
||||
} /* end if */
|
||||
} /* end if */
|
||||
|
||||
if(newlayout != NULL)
|
||||
newlayout = (H5O_layout_t *)H5MM_xfree(newlayout);
|
||||
|
||||
FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL)
|
||||
} /* end H5D__format_convert() */
|
||||
|
||||
|
@ -181,7 +181,6 @@ H5Dread(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
||||
|
||||
if(direct_read) {
|
||||
unsigned u;
|
||||
hsize_t dims[H5O_LAYOUT_NDIMS];
|
||||
hsize_t internal_offset[H5O_LAYOUT_NDIMS];
|
||||
|
||||
if(H5D_CHUNKED != dset->shared->layout.type)
|
||||
|
79
src/H5FD.c
79
src/H5FD.c
@ -62,7 +62,6 @@
|
||||
/********************/
|
||||
static herr_t H5FD_free_cls(H5FD_class_t *cls);
|
||||
static int H5FD_query(const H5FD_t *f, unsigned long *flags/*out*/);
|
||||
static int H5FD_driver_query(const H5FD_class_t *driver, unsigned long *flags/*out*/);
|
||||
|
||||
/*********************/
|
||||
/* Package Variables */
|
||||
@ -790,7 +789,8 @@ H5FD_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
|
||||
HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, NULL, "file driver has no `open' method")
|
||||
|
||||
/* Query driver flag */
|
||||
H5FD_driver_query(driver, &driver_flags);
|
||||
if(H5FD_driver_query(driver, &driver_flags) < 0)
|
||||
HGOTO_ERROR(H5E_VFL, H5E_BADVALUE, NULL, "can't query VFD flags")
|
||||
|
||||
/* Get initial file image info */
|
||||
if(H5P_peek(plist, H5F_ACS_FILE_IMAGE_INFO_NAME, &file_image_info) < 0)
|
||||
@ -1083,42 +1083,6 @@ H5FD_query(const H5FD_t *f, unsigned long *flags/*out*/)
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_query() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5FD_driver_query
|
||||
*
|
||||
* Purpose: Similar to H5FD_query(), but intended for cases when we don't
|
||||
* have a file available (e.g. before one is opened). Since we
|
||||
* can't use the file to get the driver, the driver is passed in
|
||||
* as a parameter.
|
||||
*
|
||||
* Return: Success: non-negative
|
||||
* Failure: negative
|
||||
*
|
||||
* Programmer: Jacob Gruber
|
||||
* Wednesday, August 17, 2011
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
H5FD_driver_query(const H5FD_class_t *driver, unsigned long *flags/*out*/)
|
||||
{
|
||||
int ret_value = 0; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
|
||||
HDassert(driver);
|
||||
HDassert(flags);
|
||||
|
||||
/* Check for the driver to query and then query it */
|
||||
if(driver->query)
|
||||
ret_value = (driver->query)(NULL, flags);
|
||||
else
|
||||
*flags = 0;
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_driver_query() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5FDalloc
|
||||
@ -2076,3 +2040,42 @@ H5FD_set_paged_aggr(H5FD_t *file, hbool_t paged)
|
||||
|
||||
FUNC_LEAVE_NOAPI(SUCCEED)
|
||||
} /* end H5FD_set_paged_aggr() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5FDdriver_query
|
||||
*
|
||||
* Purpose: Similar to H5FD_query(), but intended for cases when we don't
|
||||
* have a file available (e.g. before one is opened). Since we
|
||||
* can't use the file to get the driver, the driver ID is passed
|
||||
* in as a parameter.
|
||||
*
|
||||
* Return: SUCCEED/FAIL
|
||||
*
|
||||
* Programmer: Jacob Gruber
|
||||
* Wednesday, August 17, 2011
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5FDdriver_query(hid_t driver_id, unsigned long *flags/*out*/)
|
||||
{
|
||||
H5FD_class_t *driver = NULL; /* Pointer to VFD class struct */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_API(FAIL)
|
||||
H5TRACE2("e", "ix", driver_id, flags);
|
||||
|
||||
if(NULL == flags)
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "flags parameter cannot be NULL")
|
||||
|
||||
/* Check for the driver to query and then query it */
|
||||
if (NULL == (driver = (H5FD_class_t *)H5I_object_verify(driver_id, H5I_VFL)))
|
||||
HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "not a VFL ID")
|
||||
if (H5FD_driver_query(driver, flags) < 0)
|
||||
HGOTO_ERROR(H5E_VFL, H5E_BADVALUE, FAIL, "driver flag query failed")
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_API(ret_value)
|
||||
} /* end H5FDdriver_query() */
|
||||
|
||||
|
@ -982,9 +982,11 @@ H5FD__core_query(const H5FD_t * _file, unsigned long *flags /* out */)
|
||||
*flags |= H5FD_FEAT_ALLOW_FILE_IMAGE; /* OK to use file image feature with this VFD */
|
||||
*flags |= H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS; /* OK to use file image callbacks with this VFD */
|
||||
|
||||
/* If the backing store is open, a POSIX file handle is available */
|
||||
if(file && file->fd >= 0 && file->backing_store)
|
||||
*flags |= H5FD_FEAT_POSIX_COMPAT_HANDLE; /* VFD handle is POSIX I/O call compatible */
|
||||
/* These feature flags are only applicable if the backing store is enabled */
|
||||
if(file && file->fd >= 0 && file->backing_store) {
|
||||
*flags |= H5FD_FEAT_POSIX_COMPAT_HANDLE; /* get_handle callback returns a POSIX file descriptor */
|
||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||
}
|
||||
} /* end if */
|
||||
|
||||
FUNC_LEAVE_NOAPI(SUCCEED)
|
||||
|
@ -698,6 +698,7 @@ H5FD_direct_query(const H5FD_t H5_ATTR_UNUSED * _f, unsigned long *flags /* out
|
||||
*flags |= H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */
|
||||
*flags |= H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */
|
||||
*flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
|
||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||
}
|
||||
|
||||
FUNC_LEAVE_NOAPI(SUCCEED)
|
||||
|
@ -433,3 +433,38 @@ done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_get_eof() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5FD_driver_query
|
||||
*
|
||||
* Purpose: Similar to H5FD_query(), but intended for cases when we don't
|
||||
* have a file available (e.g. before one is opened). Since we
|
||||
* can't use the file to get the driver, the driver is passed in
|
||||
* as a parameter.
|
||||
*
|
||||
* Return: SUCCEED/FAIL
|
||||
*
|
||||
* Programmer: Jacob Gruber
|
||||
* Wednesday, August 17, 2011
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5FD_driver_query(const H5FD_class_t *driver, unsigned long *flags/*out*/)
|
||||
{
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
|
||||
HDassert(driver);
|
||||
HDassert(flags);
|
||||
|
||||
/* Check for the driver to query and then query it */
|
||||
if(driver->query)
|
||||
ret_value = (driver->query)(NULL, flags);
|
||||
else
|
||||
*flags = 0;
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_driver_query() */
|
||||
|
||||
|
@ -895,8 +895,9 @@ H5FD_log_query(const H5FD_t *_file, unsigned long *flags /* out */)
|
||||
*flags |= H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */
|
||||
*flags |= H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */
|
||||
*flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
|
||||
*flags |= H5FD_FEAT_POSIX_COMPAT_HANDLE; /* VFD handle is POSIX I/O call compatible */
|
||||
*flags |= H5FD_FEAT_POSIX_COMPAT_HANDLE; /* get_handle callback returns a POSIX file descriptor */
|
||||
*flags |= H5FD_FEAT_SUPPORTS_SWMR_IO; /* VFD supports the single-writer/multiple-readers (SWMR) pattern */
|
||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||
|
||||
/* Check for flags that are set by h5repart */
|
||||
if(file && file->fam_to_sec2)
|
||||
|
@ -1150,10 +1150,11 @@ H5FD_mpio_query(const H5FD_t H5_ATTR_UNUSED *_file, unsigned long *flags /* out
|
||||
/* Set the VFL feature flags that this driver supports */
|
||||
if(flags) {
|
||||
*flags=0;
|
||||
*flags|=H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */
|
||||
*flags|=H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
|
||||
*flags|=H5FD_FEAT_HAS_MPI; /* This driver uses MPI */
|
||||
*flags|=H5FD_FEAT_ALLOCATE_EARLY; /* Allocate space early instead of late */
|
||||
*flags |= H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */
|
||||
*flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
|
||||
*flags |= H5FD_FEAT_HAS_MPI; /* This driver uses MPI */
|
||||
*flags |= H5FD_FEAT_ALLOCATE_EARLY; /* Allocate space early instead of late */
|
||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||
} /* end if */
|
||||
|
||||
FUNC_LEAVE_NOAPI(SUCCEED)
|
||||
|
@ -153,6 +153,7 @@ H5_DLL H5FD_t *H5FD_open(const char *name, unsigned flags, hid_t fapl_id,
|
||||
haddr_t maxaddr);
|
||||
H5_DLL herr_t H5FD_close(H5FD_t *file);
|
||||
H5_DLL int H5FD_cmp(const H5FD_t *f1, const H5FD_t *f2);
|
||||
H5_DLL herr_t H5FD_driver_query(const H5FD_class_t *driver, unsigned long *flags/*out*/);
|
||||
H5_DLL haddr_t H5FD_alloc(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type,
|
||||
struct H5F_t *f, hsize_t size, haddr_t *frag_addr, hsize_t *frag_size);
|
||||
H5_DLL herr_t H5FD_free(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type, struct H5F_t *f,
|
||||
|
@ -250,6 +250,14 @@ typedef enum H5F_mem_t H5FD_mem_t;
|
||||
* This is specifically used for the multi/split driver.
|
||||
*/
|
||||
#define H5FD_FEAT_PAGED_AGGR 0x00004000
|
||||
/*
|
||||
* Defining H5FD_FEAT_DEFAULT_VFD_COMPATIBLE for a VFL driver
|
||||
* that creates a file which is compatible with the default VFD.
|
||||
* Generally, this means that the VFD creates a single file that follows
|
||||
* the canonical HDF5 file format.
|
||||
*/
|
||||
#define H5FD_FEAT_DEFAULT_VFD_COMPATIBLE 0x00008000
|
||||
|
||||
|
||||
/* Forward declaration */
|
||||
typedef struct H5FD_t H5FD_t;
|
||||
@ -376,6 +384,9 @@ H5_DLL herr_t H5FDtruncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing);
|
||||
H5_DLL herr_t H5FDlock(H5FD_t *file, hbool_t rw);
|
||||
H5_DLL herr_t H5FDunlock(H5FD_t *file);
|
||||
|
||||
/* Allows querying a VFD ID for features before the file is opened */
|
||||
H5_DLL herr_t H5FDdriver_query(hid_t driver_id, unsigned long *flags/*out*/);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -527,8 +527,9 @@ H5FD_sec2_query(const H5FD_t *_file, unsigned long *flags /* out */)
|
||||
*flags |= H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */
|
||||
*flags |= H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */
|
||||
*flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
|
||||
*flags |= H5FD_FEAT_POSIX_COMPAT_HANDLE; /* VFD handle is POSIX I/O call compatible */
|
||||
*flags |= H5FD_FEAT_POSIX_COMPAT_HANDLE; /* get_handle callback returns a POSIX file descriptor */
|
||||
*flags |= H5FD_FEAT_SUPPORTS_SWMR_IO; /* VFD supports the single-writer/multiple-readers (SWMR) pattern */
|
||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||
|
||||
/* Check for flags that are set by h5repart */
|
||||
if(file && file->fam_to_sec2)
|
||||
|
@ -99,9 +99,7 @@ H5FL_DEFINE(H5FD_free_t);
|
||||
static haddr_t
|
||||
H5FD_extend(H5FD_t *file, H5FD_mem_t type, hsize_t size)
|
||||
{
|
||||
hsize_t orig_size = size; /* Original allocation size */
|
||||
haddr_t eoa; /* Address of end-of-allocated space */
|
||||
hsize_t extra; /* Extra space to allocate, to align request */
|
||||
haddr_t ret_value = HADDR_UNDEF; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT
|
||||
|
@ -555,10 +555,11 @@ H5FD_stdio_query(const H5FD_t *_f, unsigned long /*OUT*/ *flags)
|
||||
*/
|
||||
if(flags) {
|
||||
*flags = 0;
|
||||
*flags|=H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */
|
||||
*flags|=H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */
|
||||
*flags|=H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */
|
||||
*flags|=H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
|
||||
*flags |= H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */
|
||||
*flags |= H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */
|
||||
*flags |= H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */
|
||||
*flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
|
||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -715,10 +715,6 @@ H5F_new(H5F_file_t *shared, unsigned flags, hid_t fcpl_id, hid_t fapl_id, H5FD_t
|
||||
if(!H5F_HAS_FEATURE(f, H5FD_FEAT_SUPPORTS_SWMR_IO) && (H5F_INTENT(f) & (H5F_ACC_SWMR_WRITE | H5F_ACC_SWMR_READ)))
|
||||
HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, NULL, "must use a SWMR-compatible VFD when SWMR is specified")
|
||||
|
||||
/* Require a POSIX compatible VFD to use SWMR feature */
|
||||
/* (It's reasonable to try to expand this to other VFDs eventually -QAK) */
|
||||
if(!H5F_HAS_FEATURE(f, H5FD_FEAT_POSIX_COMPAT_HANDLE) && (H5F_INTENT(f) & (H5F_ACC_SWMR_WRITE | H5F_ACC_SWMR_READ)))
|
||||
HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, NULL, "must use POSIX compatible VFD with SWMR write access")
|
||||
if(H5FD_get_fs_type_map(lf, f->shared->fs_type_map) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, NULL, "can't get free space type mapping from VFD")
|
||||
if(H5MF_init_merge_flags(f) < 0)
|
||||
|
@ -888,7 +888,7 @@ H5I_subst(hid_t id, const void *new_object)
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end if */
|
||||
} /* end H5I_subst() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -920,7 +920,7 @@ H5I_object(hid_t id)
|
||||
} /* end if */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end if */
|
||||
} /* end H5I_object() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
|
@ -156,7 +156,7 @@ herr_t
|
||||
H5MF_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t fs_addr, FILE *stream, int indent, int fwidth)
|
||||
{
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
H5FD_mem_t type; /* Memory type for iteration */
|
||||
H5F_mem_page_t type; /* Memory type for iteration */
|
||||
|
||||
FUNC_ENTER_NOAPI_TAG(dxpl_id, H5AC__FREESPACE_TAG, FAIL)
|
||||
|
||||
@ -168,31 +168,31 @@ H5MF_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t fs_addr, FILE *stream, int ind
|
||||
HDassert(indent >= 0);
|
||||
HDassert(fwidth >= 0);
|
||||
|
||||
for(type = H5FD_MEM_DEFAULT; type < H5FD_MEM_NTYPES; H5_INC_ENUM(H5FD_mem_t, type))
|
||||
if(H5F_addr_eq(f->shared->fs_addr[type], fs_addr)) {
|
||||
if(!f->shared->fs_man[type])
|
||||
for(type = H5F_MEM_PAGE_DEFAULT; type < H5F_MEM_PAGE_NTYPES; H5_INC_ENUM(H5F_mem_page_t, type))
|
||||
if(H5F_addr_eq(f->shared->fs_addr[type], fs_addr)) {
|
||||
if(!f->shared->fs_man[type])
|
||||
if(H5MF_open_fstype(f, dxpl_id, type) < 0)
|
||||
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't initialize file free space")
|
||||
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't initialize file free space")
|
||||
|
||||
if(f->shared->fs_man[type]) {
|
||||
H5MF_debug_iter_ud_t udata; /* User data for callbacks */
|
||||
if(f->shared->fs_man[type]) {
|
||||
H5MF_debug_iter_ud_t udata; /* User data for callbacks */
|
||||
|
||||
/* Prepare user data for section iteration callback */
|
||||
udata.fspace = f->shared->fs_man[type];
|
||||
udata.stream = stream;
|
||||
udata.indent = indent;
|
||||
udata.fwidth = fwidth;
|
||||
/* Prepare user data for section iteration callback */
|
||||
udata.fspace = f->shared->fs_man[type];
|
||||
udata.stream = stream;
|
||||
udata.indent = indent;
|
||||
udata.fwidth = fwidth;
|
||||
|
||||
/* Iterate over all the free space sections */
|
||||
if(H5FS_sect_iterate(f, dxpl_id, f->shared->fs_man[type], H5MF_sects_debug_cb, &udata) < 0)
|
||||
HGOTO_ERROR(H5E_HEAP, H5E_BADITER, FAIL, "can't iterate over heap's free space")
|
||||
/* Iterate over all the free space sections */
|
||||
if(H5FS_sect_iterate(f, dxpl_id, f->shared->fs_man[type], H5MF_sects_debug_cb, &udata) < 0)
|
||||
HGOTO_ERROR(H5E_HEAP, H5E_BADITER, FAIL, "can't iterate over heap's free space")
|
||||
|
||||
/* Close the free space information */
|
||||
if(H5FS_close(f, dxpl_id, f->shared->fs_man[type]) < 0)
|
||||
HGOTO_ERROR(H5E_HEAP, H5E_CANTRELEASE, FAIL, "can't release free space info")
|
||||
} /* end if */
|
||||
break;
|
||||
} /* end if */
|
||||
/* Close the free space information */
|
||||
if(H5FS_close(f, dxpl_id, f->shared->fs_man[type]) < 0)
|
||||
HGOTO_ERROR(H5E_HEAP, H5E_CANTRELEASE, FAIL, "can't release free space info")
|
||||
} /* end if */
|
||||
break;
|
||||
} /* end if */
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL)
|
||||
|
@ -360,7 +360,7 @@ H5MF_sect_valid(const H5FS_section_class_t H5_ATTR_UNUSED *cls,
|
||||
static H5FS_section_info_t *
|
||||
H5MF_sect_split(H5FS_section_info_t *sect, hsize_t frag_size)
|
||||
{
|
||||
H5MF_free_section_t *ret_value; /* Return value */
|
||||
H5MF_free_section_t *ret_value = NULL; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT
|
||||
|
||||
|
@ -323,7 +323,7 @@ H5O__mdci_delete(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, void *_mesg)
|
||||
* time constraints, I don't want to go there now.
|
||||
*/
|
||||
if(H5F_FIRST_ALLOC_DEALLOC(f)) {
|
||||
HDassert(HADDR_UNDEF !=H5F_EOA_PRE_FSM_FSALLOC(f));
|
||||
HDassert(HADDR_UNDEF != H5F_EOA_PRE_FSM_FSALLOC(f));
|
||||
HDassert(H5F_addr_ge(mesg->addr, H5F_EOA_PRE_FSM_FSALLOC(f)));
|
||||
if(H5MF_tidy_self_referential_fsm_hack(f, dxpl_id) < 0)
|
||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "tidy of self referential fsm hack failed")
|
||||
|
@ -85,7 +85,7 @@ H5FL_DEFINE_STATIC(H5O_fsinfo_t);
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static void *
|
||||
H5O_fsinfo_decode(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
|
||||
H5O_fsinfo_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
|
||||
unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
|
||||
{
|
||||
H5O_fsinfo_t *fsinfo = NULL; /* File space info message */
|
||||
|
@ -17,6 +17,8 @@
|
||||
*
|
||||
* Purpose: Tests the dataset interface (H5D)
|
||||
*/
|
||||
#define H5D_FRIEND /*suppress error about including H5Dpkg */
|
||||
#define H5D_TESTING
|
||||
#define H5FD_FRIEND /*suppress error about including H5FDpkg */
|
||||
#define H5FD_TESTING
|
||||
|
||||
@ -24,6 +26,7 @@
|
||||
|
||||
#include "h5test.h"
|
||||
#include "H5srcdir.h"
|
||||
#include "H5Dpkg.h"
|
||||
#include "H5FDpkg.h"
|
||||
#include "H5VMprivate.h"
|
||||
#include "H5Zpkg.h"
|
||||
|
@ -9,6 +9,7 @@
|
||||
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
|
||||
* If you do not have access to either file, you may request a copy from *
|
||||
* help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/*
|
||||
* Programmer: Mike McGreevy
|
||||
|
@ -45,8 +45,10 @@
|
||||
#define TBLOCK_SIZE4 4
|
||||
#define TBLOCK_SIZE5 5
|
||||
#define TBLOCK_SIZE6 6
|
||||
#ifdef PB_OUT
|
||||
#define TBLOCK_SIZE7 7
|
||||
#define TBLOCK_SIZE8 8
|
||||
#endif /* PB_OUT */
|
||||
#define TBLOCK_SIZE10 10
|
||||
#define TBLOCK_SIZE11 11
|
||||
#define TBLOCK_SIZE20 20
|
||||
@ -138,8 +140,10 @@ static unsigned test_mf_fs_gone(const char *env_h5_drvr, hid_t fapl, hbool_t new
|
||||
static unsigned test_mf_strat_thres_gone(const char *env_h5_drvr, hid_t fapl, hbool_t new_format);
|
||||
static unsigned test_mf_fs_persist(const char *env_h5_drvr, hid_t fapl, hbool_t new_format);
|
||||
static unsigned test_mf_strat_thres_persist(const char *env_h5_drvr, hid_t fapl, hbool_t new_format);
|
||||
#ifdef PB_OUT
|
||||
static unsigned test_mf_fs_persist_split(void);
|
||||
static unsigned test_mf_fs_persist_multi(void);
|
||||
#endif
|
||||
static unsigned test_page_alloc_xfree(const char *env_h5_drvr, hid_t fapl);
|
||||
static unsigned test_page_small(const char *env_h5_drvr, hid_t fapl);
|
||||
static unsigned test_page_large(const char *env_h5_drvr, hid_t fapl);
|
||||
@ -6091,6 +6095,7 @@ error:
|
||||
* Verify that the file's free-space manager(s) are persistent for a split-file
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef PB_OUT
|
||||
static unsigned
|
||||
test_mf_fs_persist_split(void)
|
||||
{
|
||||
@ -6716,6 +6721,7 @@ error:
|
||||
} H5E_END_TRY;
|
||||
return(1);
|
||||
} /* test_mf_fs_persist_multi() */
|
||||
#endif /* PB_OUT */
|
||||
|
||||
/*
|
||||
*-------------------------------------------------------------------------
|
||||
|
@ -574,7 +574,9 @@ test_noread_with_filters(hid_t file)
|
||||
|
||||
/* disable filter plugin */
|
||||
if(H5PLget_loading_state(&plugin_state) < 0) TEST_ERROR
|
||||
plugin_state = plugin_state & ~H5PL_FILTER_PLUGIN;
|
||||
|
||||
plugin_state = plugin_state & (unsigned)(~H5PL_FILTER_PLUGIN);
|
||||
|
||||
if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR
|
||||
|
||||
if((dset = H5Dopen2(file, DSET_DYNLIB1_NAME, H5P_DEFAULT)) < 0) TEST_ERROR
|
||||
@ -672,8 +674,8 @@ static herr_t
|
||||
test_groups_with_filters(hid_t file)
|
||||
{
|
||||
herr_t ret_value = -1;
|
||||
hid_t gid;
|
||||
hid_t group;
|
||||
hid_t gid = -1;
|
||||
hid_t group = -1;
|
||||
int i;
|
||||
char gname[256];
|
||||
|
||||
|
33
test/swmr.c
33
test/swmr.c
@ -116,16 +116,37 @@ static int test_multiple_same(hid_t in_fapl, hbool_t new_format);
|
||||
static int
|
||||
test_metadata_read_attempts(hid_t in_fapl)
|
||||
{
|
||||
hid_t fapl; /* File access property list */
|
||||
hid_t file_fapl; /* The file's access property list */
|
||||
hid_t fid, fid1, fid2; /* File IDs */
|
||||
unsigned attempts; /* The # of read attempts */
|
||||
char filename[NAME_BUF_SIZE]; /* File name */
|
||||
herr_t ret; /* Generic return value */
|
||||
hid_t fapl = -1; /* File access property list */
|
||||
hid_t file_fapl = -1; /* The file's access property list */
|
||||
hid_t fid = -1, fid1 = -1, fid2 = -1; /* File IDs */
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
hbool_t compat_w_default_vfd; /* current VFD compat w/ H5P_DEFAULT? */
|
||||
unsigned attempts; /* The # of read attempts */
|
||||
char filename[NAME_BUF_SIZE]; /* File name */
|
||||
herr_t ret; /* Generic return value */
|
||||
|
||||
/* Output message about test being performed */
|
||||
TESTING("H5Pget/set_metadata_read_attempts()");
|
||||
|
||||
/* Check if the driver is compatible with the default VFD.
|
||||
* Most of the tests will attempt to create and open files with both the
|
||||
* VFD specified in the passed-in fapl and the default VFD. Since this
|
||||
* will clearly not work with VFDs that are not compatible with the default
|
||||
* fapl (e.g.: split/multi), we just skip this entire test.
|
||||
*/
|
||||
if ((driver_id = H5Pget_driver(in_fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
compat_w_default_vfd = (driver_flags & H5FD_FEAT_DEFAULT_VFD_COMPATIBLE) ? TRUE : FALSE;
|
||||
|
||||
if (!compat_w_default_vfd) {
|
||||
SKIPPED()
|
||||
HDputs(" The current VFD is not compatible with the default VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Get a copy of the parameter fapl */
|
||||
if((fapl = H5Pcopy(in_fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
|
@ -227,7 +227,7 @@ read_records(const char *filename, unsigned verbose, unsigned long nseconds,
|
||||
|
||||
/* Determine the offset of the symbol, within level 0 symbols */
|
||||
/* (level 0 symbols are the most common symbols) */
|
||||
offset = (unsigned)(HDrandom() % symbol_count[0]);
|
||||
offset = (unsigned)HDrandom() % symbol_count[0];
|
||||
sym_com[v] = &symbol_info[0][offset];
|
||||
|
||||
/* Emit informational message */
|
||||
|
@ -187,7 +187,7 @@ remove_records(hid_t fid, unsigned verbose, unsigned long nshrinks, unsigned lon
|
||||
symbol->nrecords = 0;
|
||||
else
|
||||
symbol->nrecords -= remove_size;
|
||||
dim[1] = symbol->nrecords;
|
||||
dim[1] = symbol->nrecords;
|
||||
if(H5Dset_extent(symbol->dsid, dim) < 0)
|
||||
return -1;
|
||||
|
||||
|
@ -4929,9 +4929,9 @@ test_libver_bounds(void)
|
||||
static void
|
||||
test_libver_macros(void)
|
||||
{
|
||||
unsigned major = H5_VERS_MAJOR;
|
||||
unsigned minor = H5_VERS_MINOR;
|
||||
unsigned release = H5_VERS_RELEASE;
|
||||
int major = H5_VERS_MAJOR;
|
||||
int minor = H5_VERS_MINOR;
|
||||
int release = H5_VERS_RELEASE;
|
||||
|
||||
/* Output message about test being performed */
|
||||
MESSAGE(5, ("Testing macros for library version comparison\n"));
|
||||
|
@ -48,6 +48,8 @@ parse_option(int argc, char * const argv[])
|
||||
{
|
||||
int ret_value=0;
|
||||
int c;
|
||||
int use_swmr; /* Need an int to detect errors */
|
||||
|
||||
/* command line options: See function usage for a description */
|
||||
const char *nagg_options = "f:hi:l:n:s:y:z:";
|
||||
|
||||
@ -96,11 +98,13 @@ parse_option(int argc, char * const argv[])
|
||||
};
|
||||
break;
|
||||
case 's': /* use swmr file open mode */
|
||||
if ((UC_opts.use_swmr = HDatoi(optarg)) < 0) {
|
||||
fprintf(stderr, "swmr value should be 0(no) or 1(yes)\n");
|
||||
usage(progname_g);
|
||||
Hgoto_error(-1);
|
||||
};
|
||||
use_swmr = HDatoi(optarg);
|
||||
if (use_swmr != 0 && use_swmr != 1) {
|
||||
HDfprintf(stderr, "swmr value should be 0(no) or 1(yes)\n");
|
||||
usage(progname_g);
|
||||
Hgoto_error(-1);
|
||||
}
|
||||
UC_opts.use_swmr = (hbool_t)use_swmr;
|
||||
break;
|
||||
case 'y': /* Number of planes per chunk */
|
||||
if ((UC_opts.chunkplanes = HDstrtoul(optarg, NULL, 0)) <= 0) {
|
||||
|
156
test/vfd.c
156
test/vfd.c
@ -86,6 +86,8 @@ test_sec2(void)
|
||||
hid_t fid = -1; /* file ID */
|
||||
hid_t fapl_id = -1; /* file access property list ID */
|
||||
hid_t fapl_id_out = -1; /* from H5Fget_access_plist */
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
char filename[1024]; /* filename */
|
||||
void *os_file_handle = NULL; /* OS file handle */
|
||||
hsize_t file_size; /* file size */
|
||||
@ -99,6 +101,28 @@ test_sec2(void)
|
||||
TEST_ERROR;
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof(filename));
|
||||
|
||||
/* Check that the VFD feature flags are correct */
|
||||
if ((driver_id = H5Pget_driver(fapl_id)) < 0)
|
||||
TEST_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_POSIX_COMPAT_HANDLE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_SUPPORTS_SWMR_IO)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DEFAULT_VFD_COMPATIBLE)) TEST_ERROR
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA
|
||||
| H5FD_FEAT_ACCUMULATE_METADATA
|
||||
| H5FD_FEAT_DATA_SIEVE
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA
|
||||
| H5FD_FEAT_POSIX_COMPAT_HANDLE
|
||||
| H5FD_FEAT_SUPPORTS_SWMR_IO
|
||||
| H5FD_FEAT_DEFAULT_VFD_COMPATIBLE))
|
||||
TEST_ERROR
|
||||
|
||||
if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
@ -174,6 +198,8 @@ test_core(void)
|
||||
hid_t fid = -1; /* file ID */
|
||||
hid_t fapl_id = -1; /* file access property list ID */
|
||||
hid_t fapl_id_out = -1; /* from H5Fget_access_plist */
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
hid_t did = -1; /* dataset ID */
|
||||
hid_t sid = -1; /* dataspace ID */
|
||||
char filename[1024]; /* filename */
|
||||
@ -208,9 +234,34 @@ test_core(void)
|
||||
if(HDaccess(filename, F_OK) != -1)
|
||||
if(HDremove(filename) < 0)
|
||||
FAIL_PUTS_ERROR("unable to remove backing store file");
|
||||
|
||||
/* Create and close file w/ backing store off */
|
||||
if(H5Pset_fapl_core(fapl_id, (size_t)CORE_INCREMENT, FALSE) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Check that the VFD feature flags are correct.
|
||||
* Note that the H5FDdriver_query() API call does not require a file
|
||||
* so backing-store related flags will not be returned here.
|
||||
*/
|
||||
if ((driver_id = H5Pget_driver(fapl_id)) < 0)
|
||||
TEST_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_ALLOW_FILE_IMAGE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS)) TEST_ERROR
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA
|
||||
| H5FD_FEAT_ACCUMULATE_METADATA
|
||||
| H5FD_FEAT_DATA_SIEVE
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA
|
||||
| H5FD_FEAT_ALLOW_FILE_IMAGE
|
||||
| H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS))
|
||||
TEST_ERROR
|
||||
|
||||
if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
if(H5Fclose(fid) < 0)
|
||||
@ -219,7 +270,6 @@ test_core(void)
|
||||
if(HDaccess(filename, F_OK) != -1)
|
||||
FAIL_PUTS_ERROR("file created when backing store set to FALSE");
|
||||
|
||||
|
||||
/************************************************************************
|
||||
* Check basic core VFD operation and properties. This is done with the
|
||||
* backing store on so a file will be created for later use.
|
||||
@ -795,6 +845,8 @@ test_family(void)
|
||||
{
|
||||
hid_t file=-1, fapl=-1, fapl2=-1, space=-1, dset=-1;
|
||||
hid_t access_fapl = -1;
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
char filename[1024];
|
||||
char dname[]="dataset";
|
||||
unsigned int i, j;
|
||||
@ -812,6 +864,22 @@ test_family(void)
|
||||
TEST_ERROR;
|
||||
h5_fixname(FILENAME[2], fapl, filename, sizeof(filename));
|
||||
|
||||
/* Check that the VFD feature flags are correct */
|
||||
if ((driver_id = H5Pget_driver(fapl)) < 0)
|
||||
TEST_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA
|
||||
| H5FD_FEAT_ACCUMULATE_METADATA
|
||||
| H5FD_FEAT_DATA_SIEVE
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA))
|
||||
TEST_ERROR
|
||||
|
||||
if((file=H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
@ -1096,6 +1164,8 @@ test_multi(void)
|
||||
hid_t file=-1, fapl=-1, fapl2=-1, dset=-1, space=-1;
|
||||
hid_t root=-1, attr=-1, aspace=-1, atype=-1;
|
||||
hid_t access_fapl = -1;
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
char filename[1024];
|
||||
int *fhandle2=NULL, *fhandle=NULL;
|
||||
hsize_t file_size;
|
||||
@ -1152,6 +1222,22 @@ test_multi(void)
|
||||
TEST_ERROR;
|
||||
h5_fixname(FILENAME[4], fapl, filename, sizeof filename);
|
||||
|
||||
/* Check that the VFD feature flags are correct */
|
||||
if ((driver_id = H5Pget_driver(fapl)) < 0)
|
||||
TEST_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_USE_ALLOC_SIZE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_PAGED_AGGR)) TEST_ERROR
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_DATA_SIEVE
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA
|
||||
| H5FD_FEAT_USE_ALLOC_SIZE
|
||||
| H5FD_FEAT_PAGED_AGGR))
|
||||
TEST_ERROR
|
||||
|
||||
if((file=H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
@ -1484,6 +1570,8 @@ test_log(void)
|
||||
hid_t file = -1;
|
||||
hid_t fapl = -1;
|
||||
hid_t access_fapl = -1;
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
char filename[1024];
|
||||
int *fhandle = NULL;
|
||||
hsize_t file_size = 0;
|
||||
@ -1499,6 +1587,28 @@ test_log(void)
|
||||
TEST_ERROR;
|
||||
h5_fixname(FILENAME[6], fapl, filename, sizeof filename);
|
||||
|
||||
/* Check that the VFD feature flags are correct */
|
||||
if ((driver_id = H5Pget_driver(fapl)) < 0)
|
||||
TEST_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_POSIX_COMPAT_HANDLE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_SUPPORTS_SWMR_IO)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DEFAULT_VFD_COMPATIBLE)) TEST_ERROR
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA
|
||||
| H5FD_FEAT_ACCUMULATE_METADATA
|
||||
| H5FD_FEAT_DATA_SIEVE
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA
|
||||
| H5FD_FEAT_POSIX_COMPAT_HANDLE
|
||||
| H5FD_FEAT_SUPPORTS_SWMR_IO
|
||||
| H5FD_FEAT_DEFAULT_VFD_COMPATIBLE))
|
||||
TEST_ERROR
|
||||
|
||||
/* Create the test file */
|
||||
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -1571,6 +1681,8 @@ test_stdio(void)
|
||||
hid_t file = -1;
|
||||
hid_t fapl = -1;
|
||||
hid_t access_fapl = -1;
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
char filename[1024];
|
||||
FILE *fhandle = NULL;
|
||||
hsize_t file_size = 0;
|
||||
@ -1584,6 +1696,24 @@ test_stdio(void)
|
||||
TEST_ERROR;
|
||||
h5_fixname(FILENAME[7], fapl, filename, sizeof filename);
|
||||
|
||||
/* Check that the VFD feature flags are correct */
|
||||
if ((driver_id = H5Pget_driver(fapl)) < 0)
|
||||
TEST_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DEFAULT_VFD_COMPATIBLE)) TEST_ERROR
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA
|
||||
| H5FD_FEAT_ACCUMULATE_METADATA
|
||||
| H5FD_FEAT_DATA_SIEVE
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA
|
||||
| H5FD_FEAT_DEFAULT_VFD_COMPATIBLE))
|
||||
TEST_ERROR
|
||||
|
||||
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
@ -1658,6 +1788,8 @@ test_windows(void)
|
||||
hid_t file = -1;
|
||||
hid_t fapl = -1;
|
||||
hid_t access_fapl = -1;
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
char filename[1024];
|
||||
int *fhandle = NULL;
|
||||
hsize_t file_size = 0;
|
||||
@ -1680,6 +1812,28 @@ test_windows(void)
|
||||
TEST_ERROR;
|
||||
h5_fixname(FILENAME[8], fapl, filename, sizeof filename);
|
||||
|
||||
/* Check that the VFD feature flags are correct */
|
||||
if ((driver_id = H5Pget_driver(fapl)) < 0)
|
||||
TEST_ERROR
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_POSIX_COMPAT_HANDLE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_SUPPORTS_SWMR_IO)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DEFAULT_VFD_COMPATIBLE)) TEST_ERROR
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA
|
||||
| H5FD_FEAT_ACCUMULATE_METADATA
|
||||
| H5FD_FEAT_DATA_SIEVE
|
||||
| H5FD_FEAT_AGGREGATE_SMALLDATA
|
||||
| H5FD_FEAT_POSIX_COMPAT_HANDLE
|
||||
| H5FD_FEAT_SUPPORTS_SWMR_IO
|
||||
| H5FD_FEAT_DEFAULT_VFD_COMPATIBLE))
|
||||
TEST_ERROR
|
||||
|
||||
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
|
@ -140,7 +140,7 @@ typedef struct mcomp_t
|
||||
static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id,hid_t region1_id, hid_t region2_id, diff_opt_t *options);
|
||||
static hbool_t all_zero(const void *_mem, size_t size);
|
||||
static int ull2float(unsigned long long ull_value, float *f_value);
|
||||
static hsize_t character_compare(char *mem1,char *mem2,hsize_t i,unsigned u,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph);
|
||||
static hsize_t character_compare(char *mem1,char *mem2,hsize_t i,size_t u,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph);
|
||||
static hsize_t character_compare_opt(unsigned char *mem1,unsigned char *mem2,hsize_t i,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph);
|
||||
static hbool_t equal_float(float value, float expected, diff_opt_t *options);
|
||||
static hbool_t equal_double(double value, double expected, diff_opt_t *options);
|
||||
@ -149,7 +149,7 @@ static hbool_t equal_ldouble(long double value, long double expected, diff_opt_t
|
||||
#endif
|
||||
static int print_data(diff_opt_t *options);
|
||||
static void print_pos(int *ph,int pp,hsize_t curr_pos,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 );
|
||||
static void print_char_pos(int *ph,int pp,hsize_t curr_pos,unsigned u,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 );
|
||||
static void print_char_pos(int *ph,int pp,hsize_t curr_pos,size_t u,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 );
|
||||
static void h5diff_print_char(char ch);
|
||||
static hsize_t diff_datum(void *_mem1,
|
||||
void *_mem2,
|
||||
@ -575,7 +575,7 @@ static hsize_t diff_datum(void *_mem1,
|
||||
{
|
||||
unsigned char *mem1 = (unsigned char*)_mem1;
|
||||
unsigned char *mem2 = (unsigned char*)_mem2;
|
||||
unsigned u;
|
||||
size_t u;
|
||||
hid_t memb_type;
|
||||
size_t type_size;
|
||||
H5T_sign_t type_sign;
|
||||
@ -2813,7 +2813,7 @@ static
|
||||
hsize_t character_compare(char *mem1,
|
||||
char *mem2,
|
||||
hsize_t i,
|
||||
unsigned u,
|
||||
size_t u,
|
||||
int rank,
|
||||
hsize_t *dims,
|
||||
hsize_t *acc,
|
||||
@ -5906,7 +5906,7 @@ static
|
||||
void print_char_pos( int *ph, /* print header */
|
||||
int pp, /* print percentage */
|
||||
hsize_t curr_pos,
|
||||
unsigned u,
|
||||
size_t u,
|
||||
hsize_t *acc,
|
||||
hsize_t *pos,
|
||||
int rank,
|
||||
@ -5944,7 +5944,7 @@ void print_char_pos( int *ph, /* print header */
|
||||
}
|
||||
else
|
||||
{
|
||||
parallel_print("%u", (unsigned)u);
|
||||
parallel_print("%zu", u);
|
||||
}
|
||||
parallel_print("]" );
|
||||
}
|
||||
|
@ -522,7 +522,7 @@ typedef struct h5tools_context_t {
|
||||
hsize_t acc[H5S_MAX_RANK]; /* accumulator position */
|
||||
hsize_t pos[H5S_MAX_RANK]; /* matrix position */
|
||||
hsize_t sm_pos; /* current stripmine element position */
|
||||
struct H5LD_memb_t **cmpd_listv; /* h5watch: vector containing info about the list of compound fields to be printed */
|
||||
const struct H5LD_memb_t * const *cmpd_listv; /* h5watch: vector containing info about the list of compound fields to be printed */
|
||||
} h5tools_context_t;
|
||||
|
||||
typedef struct subset_d {
|
||||
|
@ -1000,10 +1000,11 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
|
||||
|
||||
case H5T_COMPOUND:
|
||||
if(ctx->cmpd_listv) { /* there is <list_of_fields> */
|
||||
int save_indent_level; /* The indentation level */
|
||||
unsigned save_indent_level; /* The indentation level */
|
||||
size_t curr_field; /* Current field to display */
|
||||
int i = 0, x = 0; /* Local index variable */
|
||||
H5LD_memb_t **listv; /* Vector of information for <list_of_fields> */
|
||||
int i = 0; /* Local index variable */
|
||||
unsigned x = 0; /* Local index variable */
|
||||
const H5LD_memb_t * const *listv; /* Vector of information for <list_of_fields> */
|
||||
|
||||
listv = ctx->cmpd_listv;
|
||||
ctx->cmpd_listv = NULL;
|
||||
|
@ -249,7 +249,7 @@ h5repack_verify(const char *in_fname, const char *out_fname, pack_opt_t *options
|
||||
* the same as the input file's strategy.
|
||||
*/
|
||||
if(options->fs_strategy) {
|
||||
if(out_strategy != (options->fs_strategy == (-1) ? 0 : options->fs_strategy)) {
|
||||
if(out_strategy != (options->fs_strategy == (H5F_fspace_strategy_t)-1 ? 0 : options->fs_strategy)) {
|
||||
error_msg("file space strategy not set as unexpected\n");
|
||||
HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "file space strategy not set as unexpected");
|
||||
}
|
||||
|
@ -336,7 +336,7 @@ static void gent_att_compound_vlstr(hid_t loc_id)
|
||||
{
|
||||
typedef struct { /* Compound structure for the attribute */
|
||||
int i;
|
||||
char *v;
|
||||
const char *v;
|
||||
} s1;
|
||||
hsize_t dim[1] = {1}; /* Dimension size */
|
||||
hid_t sid = -1; /* Dataspace ID */
|
||||
|
@ -3632,8 +3632,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
char *str_vlen_repeat; /* vlen string */
|
||||
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
} comp1_t;
|
||||
@ -3645,9 +3645,9 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char *str_vlen_repeat; /* vlen string */
|
||||
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
} comp2_t;
|
||||
|
||||
@ -3660,8 +3660,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
char *str_vlen_repeat; /* vlen string */
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
} comp3_t;
|
||||
|
||||
/* compound4 datatype */
|
||||
@ -3672,16 +3672,16 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char *str_vlen_repeat; /* vlen string */
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
} comp4_t;
|
||||
|
||||
/* compound5 datatype */
|
||||
typedef struct comp5_t
|
||||
{
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_vlen; /* vlen string */
|
||||
@ -3693,9 +3693,9 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
/* compound6 datatype */
|
||||
typedef struct comp6_t
|
||||
{
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_vlen; /* vlen string */
|
||||
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
@ -3708,8 +3708,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
{
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char *str_vlen; /* vlen string */
|
||||
@ -3720,9 +3720,9 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
typedef struct comp8_t
|
||||
{
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
char *str_vlen; /* vlen string */
|
||||
char str_fixlen_repeat[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
@ -3734,8 +3734,8 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
{
|
||||
char str_array_fixlen[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char str_fixlen_array_again[FIXLEN_STR_ARRY_DIM][FIXLEN_STR_ARRY_SIZE]; /* fixed len string array */
|
||||
char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_array_vlen[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
const char *str_vlen_array_again[VLEN_STR_ARRY_DIM]; /* vlen string array */
|
||||
char str_fixlen[FIXLEN_STR_SIZE]; /* fixed len string */
|
||||
int int_data1;
|
||||
hobj_ref_t objref1; /* reference */
|
||||
@ -3768,7 +3768,7 @@ static int test_comp_vlen_strings(const char *fname1, const char *grp_name, int
|
||||
hid_t sid_vlen_str_array=0; /* dataspace ID */
|
||||
hid_t tid_vlen_str_array_pre=0; /* datatype ID */
|
||||
hid_t tid_vlen_str_array=0; /* datatype ID */
|
||||
char *vlen_str_array_buf[VLEN_STR_ARRY_DIM]= {
|
||||
const char *vlen_str_array_buf[VLEN_STR_ARRY_DIM]= {
|
||||
"1 - Variable length string Array",
|
||||
"2 - Testing variable length string array in compound type",
|
||||
"3 - Four score and seven\n years ago our forefathers brought forth on this continent a new nation,"
|
||||
@ -5343,7 +5343,6 @@ static hid_t mkstr(int size, H5T_str_t pad) {
|
||||
*-------------------------------------------------------------------------*/
|
||||
static void test_objs_strings(const char *fname1, const char *fname2)
|
||||
{
|
||||
herr_t status = SUCCEED;
|
||||
hid_t fid1=0;
|
||||
hid_t fid2=0;
|
||||
hid_t dataset=0;
|
||||
@ -5398,7 +5397,6 @@ static void test_objs_strings(const char *fname1, const char *fname2)
|
||||
if (fid1 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname1);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -5407,7 +5405,6 @@ static void test_objs_strings(const char *fname1, const char *fname2)
|
||||
if (fid2 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Fcreate failed.\n", fname2);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -3479,7 +3479,7 @@ static void gent_array8(void)
|
||||
unsigned int i;
|
||||
|
||||
/* Allocate data buffer */
|
||||
wdata = HDmalloc(F64_DIM1 * sizeof(int));
|
||||
wdata = (int *)HDmalloc(F64_DIM1 * sizeof(int));
|
||||
HDassert(wdata);
|
||||
|
||||
/*
|
||||
@ -10318,7 +10318,6 @@ static void gent_udfilter(void)
|
||||
hid_t dcpl; /* dataset creation property list */
|
||||
hid_t dsid; /* dataset ID */
|
||||
hid_t sid; /* dataspace ID */
|
||||
hid_t tid; /* datatype ID */
|
||||
|
||||
hsize_t dims1[RANK] = {DIM1,DIM2};
|
||||
hsize_t chunk_dims[RANK] = {CDIM1,CDIM2};
|
||||
|
@ -266,7 +266,7 @@ int main (void)
|
||||
fname = H5REPACK_FSPACE_FNAMES[j];
|
||||
if(h5repack_init(&pack_options, 0, FALSE) < 0)
|
||||
GOERROR;
|
||||
pack_options.fs_strategy = -1; /* "FSM_AGGR" specified via -S FSM_AGGR */
|
||||
pack_options.fs_strategy = (H5F_fspace_strategy_t)-1; /* "FSM_AGGR" specified via -S FSM_AGGR */
|
||||
pack_options.fs_threshold = -1; /* "0" specified via -T 0 */
|
||||
if(h5repack(fname, FSPACE_OUT, &pack_options) < 0)
|
||||
GOERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user