summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2017-01-11 20:24:09 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2017-01-11 20:24:09 (GMT)
commitee485247b7028bea18251ee0b22c918618652bec (patch)
treedd126712b61bfa9e56bdc020be1ab01f56edc60c
parent7fb991e8edd9cef200f4769bbd22e7eff2b9e27f (diff)
parent8b4c9f848d63351c85cab3a5b2034f8e7e1a29db (diff)
downloadhdf5-ee485247b7028bea18251ee0b22c918618652bec.zip
hdf5-ee485247b7028bea18251ee0b22c918618652bec.tar.gz
hdf5-ee485247b7028bea18251ee0b22c918618652bec.tar.bz2
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit '8b4c9f848d63351c85cab3a5b2034f8e7e1a29db': h5format_convert was not built (missing from subdirs in tools/src and tools/test Makefile.ams) but created dependencies that were not cleaned up by make clean and make distclean. Create h5repack convenience library for common code used by h5repack tool and h5repacktst. Fixes broken distclean. Added an --enable-developer-warnings option to configure so users can ignore -Wsuggest-attribute warnings and other noise that doesn't indicate poor code quality.
-rw-r--r--config/gnu-flags40
-rw-r--r--configure.ac42
-rw-r--r--tools/src/Makefile.am3
-rw-r--r--tools/src/h5format_convert/Makefile.am3
-rw-r--r--tools/src/h5repack/Makefile.am23
-rw-r--r--tools/test/Makefile.am4
-rw-r--r--tools/test/h5format_convert/Makefile.am2
-rw-r--r--tools/test/h5format_convert/h5fc_gentest.c1
-rw-r--r--tools/test/h5repack/Makefile.am10
9 files changed, 84 insertions, 44 deletions
diff --git a/config/gnu-flags b/config/gnu-flags
index 0b5283c..c0c8368 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -94,7 +94,7 @@ 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 -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
+ H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs"
# Production
# NDEBUG is handled explicitly by the configure script
@@ -125,6 +125,10 @@ case "$cc_vendor-$cc_version" in
esac
#DEBUG_CFLAGS="-fsanitize=undefined"
+ # Developer warnings (suggestions from gcc, not code problems)
+ NO_DEVELOPER_WARNING_CFLAGS="-Wno-suggest-attribute=const -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn -Wno-suggest-attribute=format -Wno-inline"
+ DEVELOPER_WARNING_CFLAGS="-Wsuggest-attribute=const -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Winline"
+
# Symbols
NO_SYMBOLS_CFLAGS="-s"
SYMBOLS_CFLAGS="-g"
@@ -223,13 +227,10 @@ case "$cc_vendor-$cc_version" in
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
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
# Append more extra warning flags that only gcc 4.9+ know about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
@@ -297,13 +298,10 @@ case "$cc_vendor-$cc_version" in
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
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
# Append more extra warning flags that only gcc 4.9+ know about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
@@ -368,13 +366,10 @@ case "$cc_vendor-$cc_version" in
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
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
# Append more extra warning flags that only gcc 4.9+ know about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
@@ -436,13 +431,10 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init"
# Append more extra warning flags that only gcc 4.6+ know about
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
;;
gcc-4.7*)
@@ -502,10 +494,10 @@ case "$cc_vendor-$cc_version" in
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
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
;;
gcc-4.6*)
@@ -561,7 +553,7 @@ case "$cc_vendor-$cc_version" in
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
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
;;
gcc-4.5*)
diff --git a/configure.ac b/configure.ac
index 82ad020..9f84b0f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2055,6 +2055,48 @@ case "X-$ASSERTS" in
esac
## ----------------------------------------------------------------------
+## Check if developer warnings should be turned on
+## These are warnings that provide suggestions like gcc's -Wsuggest-attribute.
+## They do not indicate code problems.
+##
+## Note that developers don't need to build with these regularly. They
+## are just handy to check once in a while (before releases, etc.).
+##
+AC_MSG_CHECKING([enable developer warnings])
+AC_ARG_ENABLE([developer-warnings],
+ [AS_HELP_STRING([--enable-developer-warnings],
+ [Determines whether developer warnings will be
+ emitted. These are usually performance suggestions
+ (e.g. -Wsuggest-attribute) and do not flag poor code
+ quality.
+ [default=no]
+ ])],
+ [DEV_WARNINGS=$enableval])
+
+## Set default
+if test "X-$DEV_WARNINGS" = X- ; then
+ DEV_WARNINGS=no
+fi
+
+## Allow this variable to be substituted in
+## other files (src/libhdf5.settings.in, etc.)
+AC_SUBST([DEV_WARNINGS])
+
+case "X-$DEV_WARNINGS" in
+ X-yes)
+ H5_CFLAGS="$H5_CFLAGS $DEVELOPER_WARNING_CFLAGS"
+ AC_MSG_RESULT([yes])
+ ;;
+ X-no)
+ H5_CFLAGS="$H5_CFLAGS $NO_DEVELOPER_WARNING_CFLAGS"
+ AC_MSG_RESULT([no])
+ ;;
+ *)
+ AC_MSG_ERROR([Unrecognized value: $DEV_WARNINGS])
+ ;;
+esac
+
+## ----------------------------------------------------------------------
## Check if the compiler should use profiling flags/settings
##
AC_MSG_CHECKING([profiling])
diff --git a/tools/src/Makefile.am b/tools/src/Makefile.am
index 0cea969..358ac6b 100644
--- a/tools/src/Makefile.am
+++ b/tools/src/Makefile.am
@@ -24,6 +24,7 @@ include $(top_srcdir)/config/commence.am
CONFIG=ordered
# All subdirectories
-SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat
+SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy \
+ h5format_convert h5stat
include $(top_srcdir)/config/conclude.am
diff --git a/tools/src/h5format_convert/Makefile.am b/tools/src/h5format_convert/Makefile.am
index e2d1acf..35f9e68 100644
--- a/tools/src/h5format_convert/Makefile.am
+++ b/tools/src/h5format_convert/Makefile.am
@@ -25,6 +25,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
# These are our main targets, the tools
bin_PROGRAMS=h5format_convert
+bin_SCRIPTS=
# Add h5format_convert specific linker flags here
h5format_convert_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
@@ -32,4 +33,6 @@ h5format_convert_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
# All programs rely on hdf5 library and h5tools library
LDADD=$(LIBH5TOOLS) $(LIBHDF5)
+CLEANFILES=
+
include $(top_srcdir)/config/conclude.am
diff --git a/tools/src/h5repack/Makefile.am b/tools/src/h5repack/Makefile.am
index e6e5a56..31d368d 100644
--- a/tools/src/h5repack/Makefile.am
+++ b/tools/src/h5repack/Makefile.am
@@ -23,20 +23,25 @@ include $(top_srcdir)/config/commence.am
# Include src, test, and tools/lib directories
AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib
+# A convenience library for the h5repack tool and the h5repack tests
+noinst_LTLIBRARIES=libh5repack.la
+
+libh5repack_la_SOURCES=h5repack.c h5repack_copy.c h5repack_filters.c \
+ h5repack_opttable.c h5repack_parse.c h5repack_refs.c \
+ h5repack_verify.c
+libh5repack_la_LDFLAGS = $(AM_LDFLAGS)
+libh5repack_la_LIBADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
+
+
# Our main target, h5repack tool
bin_PROGRAMS=h5repack
+h5repack_SOURCES=h5repack_main.c
+
# Add h5repack specific linker flags here
h5repack_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
-# Depend on the hdf5 library, the tools library, the test library
-LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
-
-# Source files
-COMMON_SOURCES=h5repack.c h5repack_copy.c h5repack_filters.c \
- h5repack_opttable.c h5repack_parse.c h5repack_refs.c \
- h5repack_verify.c
-
-h5repack_SOURCES=$(COMMON_SOURCES) h5repack_main.c
+# Depend on the hdf5 library, the tools library, the h5repack library
+h5repack_LDADD=libh5repack.la $(LIBH5TOOLS) $(LIBHDF5)
include $(top_srcdir)/config/conclude.am
diff --git a/tools/test/Makefile.am b/tools/test/Makefile.am
index 62193ba..db09003 100644
--- a/tools/test/Makefile.am
+++ b/tools/test/Makefile.am
@@ -24,7 +24,7 @@ include $(top_srcdir)/config/commence.am
CONFIG=ordered
# All subdirectories
-SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat \
- perform
+SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy \
+ h5format_convert h5stat perform
include $(top_srcdir)/config/conclude.am
diff --git a/tools/test/h5format_convert/Makefile.am b/tools/test/h5format_convert/Makefile.am
index 5779d4d..f67b2ce 100644
--- a/tools/test/h5format_convert/Makefile.am
+++ b/tools/test/h5format_convert/Makefile.am
@@ -31,6 +31,8 @@ check_PROGRAMS=$(TEST_PROG) h5fc_chk_idx
check_SCRIPTS=$(TEST_SCRIPT)
SCRIPT_DEPEND=../../src/h5format_convert/h5format_convert$(EXEEXT)
+CLEANFILES=
+
# Tell automake to clean h5redeploy script
CHECK_CLEANFILES+=*.h5
diff --git a/tools/test/h5format_convert/h5fc_gentest.c b/tools/test/h5format_convert/h5fc_gentest.c
index 520e5bf..fea7eed 100644
--- a/tools/test/h5format_convert/h5fc_gentest.c
+++ b/tools/test/h5format_convert/h5fc_gentest.c
@@ -296,7 +296,6 @@ error:
H5Dclose(did2);
H5Gclose(gid);
H5Fclose(fcpl);
- H5Fclose(fapl);
H5Fclose(fid);
} H5E_END_TRY;
diff --git a/tools/test/h5repack/Makefile.am b/tools/test/h5repack/Makefile.am
index 6c045c4..5c284b3 100644
--- a/tools/test/h5repack/Makefile.am
+++ b/tools/test/h5repack/Makefile.am
@@ -37,16 +37,12 @@ endif
check_SCRIPTS=$(TEST_SCRIPT)
-# Depend on the hdf5 library, the tools library, the test library
-LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
+# Depend on the h5repack library, the hdf5 library, the tools library, the test library
+LDADD=../../src/h5repack/libh5repack.la $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
testh5repack_detect_szip_SOURCES=testh5repack_detect_szip.c
-# Source files
-COMMON_SOURCES=../../src/h5repack/h5repack.c ../../src/h5repack/h5repack_copy.c ../../src/h5repack/h5repack_filters.c \
- ../../src/h5repack/h5repack_opttable.c ../../src/h5repack/h5repack_parse.c ../../src/h5repack/h5repack_refs.c \
- ../../src/h5repack/h5repack_verify.c
-h5repacktst_SOURCES=$(COMMON_SOURCES) h5repacktst.c
+h5repacktst_SOURCES=h5repacktst.c
if HAVE_SHARED_CONDITIONAL