summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2021-06-16 20:45:58 (GMT)
committerGitHub <noreply@github.com>2021-06-16 20:45:58 (GMT)
commit475cdaf431c9ef5bfef6243dbc26d0005d08c49d (patch)
tree27c436fd67b53dd1698afbe359d7eb43843ee62d
parente25980e7f35b8508db90648409ba80ee36d61c9e (diff)
downloadhdf5-475cdaf431c9ef5bfef6243dbc26d0005d08c49d.zip
hdf5-475cdaf431c9ef5bfef6243dbc26d0005d08c49d.tar.gz
hdf5-475cdaf431c9ef5bfef6243dbc26d0005d08c49d.tar.bz2
Hdf5 1 10 merge warnings changes (#756)
* HDFFV-10865 - merge from dev, HDFArray perf fix. * Remove duplicate setting * Whitespace changes after clang format * Undo version 11 clang format changes * Merge CMake changes from develop * test testing script merge from develop * Update supported platforms * PR#3 merge from develop * Merge gcc 10 diagnostics option from develop * Merge #318 OSX changes from develop * Merge small changes from develop * Minor non-space formatting changes * #386 copyright corrections for java folder * Merges from develop #358 patches from vtk #361 fix header guard spelling * Merge updates #358 patches from vtk #361 fix header guard spelling * format fix * Fix missing underscore and make H5public.h closer to dev * Merges from develop #340 clang -Wformat-security warnings #360 Fixed uninitialized warnings header guard underscore cleanup JNI cleanup * format alignment * Add missing test ref file * Merge #380 from develop * Finish java merges from develop * Fix java issues with tests and javadoc * Correct use of attribute access plist * Remove debug code * Remove unused variable * Change file access to read only for java tests * Split clang format operations. * More javadoc comments * Remove pre-split setting * format source * Change windows TS to use older VS. * Mostly all javadoc fixes, one argument rename. * synch file * Merge of long double fix and compiler flags * HDFFV-11229 merge changes from develop * HDFFV-11229 correct test script * HDFFV-11229 update autotools test script for two ref files * HDFFV-11229 merge dev changes for long double display in tools * Committing clang-format changes * minor whitespace * remove unneeded macro * Committing clang-format changes * Add "option" command for clang options * Rework CMake add_custom to use the BYPRODUCTS argument Update pkgconfig scripts for parallel builds. Fix install COPYING file reference. Remove unused round defines. Change CMake default setting of BUILD_CPP to off. * Fortran target depends * Remove incorrect source attribute * Revert define removal * printf specifiers and VS2015 min changes * Committing clang-format changes * Add time struct * TRILAB-227 and tools debug merges from develop * Merge various changes from dev * Issue #669 remove version from pkgcfg filename * remove version from h5cc script * doxygen changes merged from develop * Committing clang-format changes * Merge CMake fortran ninja changes from dev * Enable fortran to gcc yaml * Refactor Fortran CMake config tests and CMake test args * Merge warnings files fixes from develop Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
-rw-r--r--MANIFEST9
-rw-r--r--config/clang-cxxflags12
-rw-r--r--config/clang-warnings/noerror-general6
-rw-r--r--config/cmake/HDFCXXCompilerFlags.cmake77
-rw-r--r--config/cmake/HDFCompilerFlags.cmake11
-rw-r--r--config/gnu-cxxflags20
-rw-r--r--config/gnu-flags6
-rw-r--r--config/gnu-warnings/cxx-4.91
-rw-r--r--config/gnu-warnings/cxx-94
-rw-r--r--config/gnu-warnings/developer-104
-rw-r--r--config/gnu-warnings/noerror-general6
-rw-r--r--config/intel-cxxflags184
-rw-r--r--config/intel-fflags62
-rw-r--r--config/intel-flags78
-rw-r--r--config/intel-warnings/1519
-rw-r--r--config/intel-warnings/188
-rw-r--r--config/intel-warnings/developer-general4
-rw-r--r--config/intel-warnings/general1
-rw-r--r--config/intel-warnings/general-192
-rw-r--r--config/linux-gnulibc114
-rw-r--r--config/pgi-cxxflags100
-rw-r--r--config/pgi-fflags64
-rw-r--r--config/pgi-flags87
23 files changed, 608 insertions, 171 deletions
diff --git a/MANIFEST b/MANIFEST
index 258f340..fbbe7a6 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -136,6 +136,7 @@
./config/cygwin
./config/ibm-aix
./config/ibm-flags
+./config/intel-cxxflags
./config/intel-fflags
./config/intel-flags
./config/libhdf5.pc.in
@@ -147,6 +148,7 @@
./config/lt_vers.am
./config/Makefile.am.blank
./config/netbsd
+./config/pgi-cxxflags
./config/pgi-fflags
./config/pgi-flags
./config/solaris
@@ -172,6 +174,7 @@
./config/gnu-warnings/cxx-4.8
./config/gnu-warnings/cxx-4.9
./config/gnu-warnings/cxx-5
+./config/gnu-warnings/cxx-9
./config/gnu-warnings/cxx-error-5
./config/gnu-warnings/cxx-error-general
./config/gnu-warnings/cxx-noerror-5
@@ -196,8 +199,12 @@
./config/gnu-warnings/noerror-5
./config/gnu-warnings/noerror-8
./config/gnu-warnings/noerror-general
-./config/intel-warnings/ifort-general
+./config/intel-warnings/15
+./config/intel-warnings/18
+./config/intel-warnings/developer-general
./config/intel-warnings/general
+./config/intel-warnings/general-19
+./config/intel-warnings/ifort-general
./config/site-specific/BlankForm
diff --git a/config/clang-cxxflags b/config/clang-cxxflags
index e7ab6d8..23ba6a3 100644
--- a/config/clang-cxxflags
+++ b/config/clang-cxxflags
@@ -113,18 +113,6 @@ if test "X-clang" = "X-$cxx_vendor" -o "X-Apple LLVM" = "X-$cxx_vendor"; then
;;
esac
- case "$host_os-$host_cpu" in
- # cygwin needs the "-std=c99" flag removed, so make
- # a specific case for Cygwin without the flag and a default
- # case to add the flag everywhere else
- cygwin-*)
- ;;
-
- *)
- H5_CXXFLAGS="$H5_CXXFLAGS -std=c++11"
- ;;
- esac
-
H5_CXXFLAGS="$H5_CXXFLAGS $arch"
##############
diff --git a/config/clang-warnings/noerror-general b/config/clang-warnings/noerror-general
index b570b23..f90c812 100644
--- a/config/clang-warnings/noerror-general
+++ b/config/clang-warnings/noerror-general
@@ -1,6 +1,8 @@
#
-# HDF5 code should not trigger the following warnings under any
-# circumstances, so ask the compiler to treat them as errors:
+# These warnings will be treated as errors, using the error-general file,
+# when HDF5_ENABLE_WARNINGS_AS_ERRORS is set to true for CMake or
+# the --enable-warnings-as-errors option is specified for configure.
+# Otherwise this file will be used to treat them as warnings.
#
-Wbad-function-cast
-Wimplicit-function-declaration
diff --git a/config/cmake/HDFCXXCompilerFlags.cmake b/config/cmake/HDFCXXCompilerFlags.cmake
index 8bcfb14..64ec010 100644
--- a/config/cmake/HDFCXXCompilerFlags.cmake
+++ b/config/cmake/HDFCXXCompilerFlags.cmake
@@ -86,9 +86,11 @@ if (NOT MSVC AND NOT MINGW)
# warnings that are emitted. If you need it, add it at configure time.
if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
ADD_H5_FLAGS (HDF5_CMAKE_CXX_FLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/general")
+ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/15")
+ endif()
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0)
- list (APPEND H5_CXXFLAGS "-Wextra-tokens -Wformat -Wformat-security -Wic-pointer -Wshadow")
- list (APPEND H5_CXXFLAGS "-Wsign-compare -Wtrigraphs -Wwrite-strings")
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/18")
endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_LOADED
@@ -117,21 +119,20 @@ if (NOT MSVC AND NOT MINGW)
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_DEV_WARNINGS)
message (STATUS "....HDF5 developer group warnings are enabled")
- # if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
- # list (APPEND H5_CXXFLAGS "-Winline -Wreorder -Wport -Wstrict-aliasing")
- # elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- # autotools always add the C flags with the CXX flags
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/developer-general")
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-general")
- # elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- # ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/developer-general")
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/developer-general")
endif ()
else ()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- # autotools always add the C flags with the CXX flags
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-general")
- # elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- # ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/no-developer-general")
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/clang-warnings/no-developer-general")
endif ()
endif ()
@@ -139,14 +140,15 @@ if (NOT MSVC AND NOT MINGW)
# Technically, variable-length arrays are part of the C99 standard, but
# we should approach them a bit cautiously... Only needed for gcc 4.X
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0 AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.8)
- # autotools always add the C flags with the CXX flags
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.8-4.last")
endif ()
# Append more extra warning flags that only gcc 4.8+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
- ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.8")
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-4.8")
if (HDF5_ENABLE_DEV_WARNINGS)
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-4.8")
else ()
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-4.8")
@@ -155,8 +157,7 @@ if (NOT MSVC AND NOT MINGW)
# Append more extra warning flags that only gcc 4.9+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
- # autotools always add the C flags with the CXX flags
- ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.9")
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-4.9")
endif ()
@@ -173,16 +174,16 @@ if (NOT MSVC AND NOT MINGW)
# Append more extra warning flags that only gcc 6.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0)
- # autotools always add the C flags with the CXX flags
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/6")
endif ()
# Append more extra warning flags that only gcc 7.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
- # autotools always add the C flags with the CXX flags
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXxFLAGS2 "${HDF5_SOURCE_DIR}/config/gnu-warnings/7")
if (HDF5_ENABLE_DEV_WARNINGS)
- # autotools always add the C flags with the CXX flags
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-7")
#else ()
# ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-7")
@@ -191,15 +192,15 @@ if (NOT MSVC AND NOT MINGW)
# Append more extra warning flags that only gcc 8.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
- # autotools always add the C flags with the CXX flags
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/8")
- #if (HDF5_ENABLE_WARNINGS_AS_ERRORS)
- # ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-8")
- #else ()
- # ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/noerror-8")
- #endif ()
+ if (HDF5_ENABLE_WARNINGS_AS_ERRORS)
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-8")
+ else ()
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/noerror-8")
+ endif ()
if (HDF5_ENABLE_DEV_WARNINGS)
- # autotools always add the C flags with the CXX flags
+ # Use the C warnings as CXX warnings are the same
ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-8")
else ()
# autotools always add the C flags with the CXX flags
@@ -209,14 +210,26 @@ if (NOT MSVC AND NOT MINGW)
# Append more extra warning flags that only gcc 9.x+ knows about
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
- # autotools always add the C flags with the CXX flags
- ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/9")
+ # Use the C warnings as CXX warnings are the same
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/cxx-9")
endif ()
- endif ()
-else ()
- if (NOT MINGW)
- list (APPEND HDF5_CMAKE_CXX_FLAGS "/EHsc")
+
+ # Append more extra warning flags that only gcc 9.3+ knows about
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.3)
+ # do not use C warnings, gnu-warnings 9.3, no cxx warniings
+ # ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/9.3")
endif ()
+
+ # Append more extra warning flags that only gcc 10.x+ knows about
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0)
+ if (HDF5_ENABLE_DEV_WARNINGS)
+ # Use the C warnings as CXX warnings are the same
+ ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-10")
+ #else ()
+ # ADD_H5_FLAGS (H5_CXXFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/no-developer-10")
+ endif ()
+ endif ()
+ endif ()
endif ()
#-----------------------------------------------------------------------------
diff --git a/config/cmake/HDFCompilerFlags.cmake b/config/cmake/HDFCompilerFlags.cmake
index 0775f59..e38a92b 100644
--- a/config/cmake/HDFCompilerFlags.cmake
+++ b/config/cmake/HDFCompilerFlags.cmake
@@ -108,14 +108,13 @@ if (NOT MSVC AND NOT MINGW)
# warnings that are emitted. If you need it, add it at configure time.
if (CMAKE_C_COMPILER_ID STREQUAL "Intel")
ADD_H5_FLAGS (HDF5_CMAKE_C_FLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/general")
- list (APPEND H5_CFLAGS "-Wcomment -Wdeprecated -Wmain -Wmissing-declarations -Wmissing-prototypes -Wp64 -Wpointer-arith")
- list (APPEND H5_CFLAGS "-Wreturn-type -Wstrict-prototypes -Wuninitialized")
- list (APPEND H5_CFLAGS "-Wunknown-pragmas -Wunused-function -Wunused-variable")
+ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0)
+ ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/15")
+ endif()
# this is just a failsafe
list (APPEND H5_CFLAGS "-finline-functions")
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 18.0)
- list (APPEND H5_CFLAGS "-Wextra-tokens -Wformat -Wformat-security -Wic-pointer -Wshadow")
- list (APPEND H5_CFLAGS "-Wsign-compare -Wtrigraphs -Wwrite-strings")
+ ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/18")
endif()
elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU")
# Add general CFlags for GCC versions 4.8 and above
@@ -153,7 +152,7 @@ if (NOT MSVC AND NOT MINGW)
if (HDF5_ENABLE_DEV_WARNINGS)
message (STATUS "....HDF5 developer group warnings are enabled")
if (CMAKE_C_COMPILER_ID STREQUAL "Intel")
- list (APPEND H5_CFLAGS "-Winline -Wreorder -Wport -Wstrict-aliasing")
+ ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/intel-warnings/developer-general")
elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.8)
ADD_H5_FLAGS (H5_CFLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-general")
elseif (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang")
diff --git a/config/gnu-cxxflags b/config/gnu-cxxflags
index cba8298..b2ba08d 100644
--- a/config/gnu-cxxflags
+++ b/config/gnu-cxxflags
@@ -183,7 +183,6 @@ if test "X-g++" = "X-$cxx_vendor"; then
# Warnings #
############
-# First load the C warnings then add CXX warnings (if needed)
###########
# General #
@@ -199,6 +198,7 @@ if test "X-g++" = "X-$cxx_vendor"; then
# Developer warnings #
######################
+ # Use the C warnings as CXX warnings are the same
NO_DEVELOPER_WARNING_CXXFLAGS=$(load_gnu_arguments no-developer-general)
DEVELOPER_WARNING_CXXFLAGS=$(load_gnu_arguments developer-general)
@@ -210,6 +210,7 @@ if test "X-g++" = "X-$cxx_vendor"; then
# GCC 4.8 through the end of GCC 4 series
if test $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 8; then
+ # Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.8-4.last)"
fi
@@ -220,13 +221,13 @@ if test "X-g++" = "X-$cxx_vendor"; then
# gcc >= 4.8
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 8; then
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-4.8)"
+ # Use the C warnings as CXX warnings are the same
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-4.8)"
NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-4.8)"
fi
# gcc >= 4.9
if test $cxx_vers_major -ge 5 -o $cxx_vers_major -eq 4 -a $cxx_vers_minor -ge 9; then
- H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 4.9)"
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-4.9)"
fi
@@ -239,27 +240,40 @@ if test "X-g++" = "X-$cxx_vendor"; then
# gcc >= 6
if test $cxx_vers_major -ge 6; then
+ # Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 6)"
fi
# gcc >= 7
if test $cxx_vers_major -ge 7; then
+ # Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 7)"
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-7)"
fi
# gcc 8
if test $cxx_vers_major -ge 8; then
+ # Use the C warnings as CXX warnings are the same
H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 8)"
#H5_ECXXFLAGS="$H5_ECXXFLAGS $(load_gnu_arguments error-8)"
#H5_NECXXFLAGS="$H5_NECXXFLAGS $(load_gnu_arguments noerror-8)"
+ # Use the C warnings as CXX warnings are the same
DEVELOPER_WARNING_CXXFLAGS="$DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments developer-8)"
NO_DEVELOPER_WARNING_CXXFLAGS="$NO_DEVELOPER_WARNING_CXXFLAGS $(load_gnu_arguments no-developer-8)"
fi
# gcc 9
if test $cxx_vers_major -ge 9; then
- H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments 9)"
+ H5_CXXFLAGS="$H5_CXXFLAGS $(load_gnu_arguments cxx-9)"
+ fi
+
+ # gcc >= 9.3
+ # no cxx warnings, do NOT use C warnings
+
+ # gcc >= 10
+ if test $cxx_vers_major -ge 10; then
+ # Use the C warnings as CXX warnings are the same
+ DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS $(load_gnu_arguments developer-10)"
fi
#################
diff --git a/config/gnu-flags b/config/gnu-flags
index 01533de..3e4ceb2 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -207,9 +207,9 @@ if test "X-gcc" = "X-$cc_vendor"; then
H5_ECFLAGS="$H5_ECFLAGS $(load_gnu_arguments error-general)"
H5_NECFLAGS="$H5_NECFLAGS $(load_gnu_arguments noerror-general)"
- ######################
- # Developer warnings #
- ######################
+ ######################
+ # Developer warnings #
+ ######################
NO_DEVELOPER_WARNING_CFLAGS=$(load_gnu_arguments no-developer-general)
DEVELOPER_WARNING_CFLAGS=$(load_gnu_arguments developer-general)
diff --git a/config/gnu-warnings/cxx-4.9 b/config/gnu-warnings/cxx-4.9
index 046d6db..30553bd 100644
--- a/config/gnu-warnings/cxx-4.9
+++ b/config/gnu-warnings/cxx-4.9
@@ -1 +1,2 @@
+-Wdate-time
-Wopenmp-simd
diff --git a/config/gnu-warnings/cxx-9 b/config/gnu-warnings/cxx-9
new file mode 100644
index 0000000..8f843a4
--- /dev/null
+++ b/config/gnu-warnings/cxx-9
@@ -0,0 +1,4 @@
+-Wattribute-alias=2
+-Wmissing-profile
+# Turn this on when the C++ wrappers obey the Rule of Five
+-Wno-deprecated-copy
diff --git a/config/gnu-warnings/developer-10 b/config/gnu-warnings/developer-10
index fcd460d..022c97f 100644
--- a/config/gnu-warnings/developer-10
+++ b/config/gnu-warnings/developer-10
@@ -1,6 +1,2 @@
# New warning
-Warith-conversion
-
-# Enable static analysis of program flow
--fanalyzer
--fdiagnostics-path-format=none
diff --git a/config/gnu-warnings/noerror-general b/config/gnu-warnings/noerror-general
index f5b4afb..80c1975 100644
--- a/config/gnu-warnings/noerror-general
+++ b/config/gnu-warnings/noerror-general
@@ -1,6 +1,8 @@
#
-# HDF5 code should not trigger the following warnings under any
-# circumstances, so ask the compiler to treat them as errors:
+# These warnings will be treated as errors, using the error-general file,
+# when HDF5_ENABLE_WARNINGS_AS_ERRORS is set to true for CMake or
+# the --enable-warnings-as-errors option is specified for configure.
+# Otherwise this file will be used to treat them as warnings.
#
-Wbad-function-cast
-Wimplicit-function-declaration
diff --git a/config/intel-cxxflags b/config/intel-cxxflags
new file mode 100644
index 0000000..484100f
--- /dev/null
+++ b/config/intel-cxxflags
@@ -0,0 +1,184 @@
+# -*- shell-script -*-
+#
+# Copyright by The HDF Group.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://www.hdfgroup.org/licenses.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+
+
+# This file should be sourced into configure if the compiler is the
+# Intel icpc compiler or a derivative. It is careful not to do anything
+# if the compiler is not Intel; otherwise `cxx_flags_set' is set to `yes'
+#
+
+#
+# Prepend `$srcdir/config/intel-warnings/` to the filename suffix(es) given as
+# subroutine argument(s), remove comments starting with # and ending
+# at EOL, replace spans of whitespace (including newlines) with spaces,
+# and re-emit the file(s) thus filtered on the standard output stream.
+#
+load_intel_arguments()
+{
+ set -- $(for arg; do
+ sed 's,#.*$,,' $srcdir/config/intel-warnings/${arg}
+ done)
+ IFS=' ' echo "$*"
+}
+
+# Get the compiler version in a way that works for icpc
+# icpc unless a compiler version is already known
+#
+# cxx_vendor: The compiler name: icpc
+# cxx_version: Version number: 8.0
+#
+if test X = "X$cxx_flags_set"; then
+ cxx_version="`$CXX $CXXFLAGS $H5_CXXFLAGS -V 2>&1 |grep 'Version'`"
+ if test X != "X$cxx_version"; then
+ cxx_vendor=icpc
+ cxx_version=`echo $cxx_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'`
+ echo "compiler '$CXX' is Intel $cxx_vendor-$cxx_version"
+
+ # Some version numbers
+ # Intel version numbers are of the form: "major.minor"
+ cxx_vers_major=`echo $cxx_version | cut -f1 -d.`
+ cxx_vers_minor=`echo $cxx_version | cut -f2 -d.`
+ #cxx_vers_patch=`echo $cxx_version | cut -f2 -d.`
+ test -n "$cxx_vers_major" || cxx_vers_major=0
+ test -n "$cxx_vers_minor" || cxx_vers_minor=0
+ test -n "$cxx_vers_patch" || cxx_vers_patch=0
+ cxx_vers_all=`expr $cxx_vers_major '*' 1000000 + $cxx_vers_minor '*' 1000 + $cxx_vers_patch`
+ fi
+fi
+
+# Common Intel flags for various situations
+if test "X-icpc" = "X-$cxx_vendor"; then
+ # Insert section about version specific problems from compiler flags here,
+ # if necessary.
+
+ arch=
+ # Architecture-specific flags
+ # Nothing currently. (Uncomment code below and modify to add any)
+ #case "$host_os-$host_cpu" in
+ # *-i686)
+ # arch="-march=i686"
+ # ;;
+ #esac
+
+ # Host-specific flags
+ # Nothing currently. (Uncomment code below and modify to add any)
+ #case "`hostname`" in
+ # sleipnir.ncsa.uiuc.edu)
+ # arch="$arch -pipe"
+ # ;;
+ #esac
+
+ ###########
+ # General #
+ ###########
+
+ H5_CXXFLAGS="$H5_CXXFLAGS $arch"
+
+ ##############
+ # Production #
+ ##############
+
+ PROD_CXXFLAGS=
+
+ #########
+ # Debug #
+ #########
+
+ # NDEBUG is handled explicitly in configure
+ # -g is handled by the symbols flags
+ DEBUG_CXXFLAGS=
+
+ ###########
+ # Symbols #
+ ###########
+
+ NO_SYMBOLS_CXXFLAGS="-Wl,-s"
+ SYMBOLS_CXXFLAGS="-g"
+
+ #############
+ # Profiling #
+ #############
+
+ PROFILE_CXXFLAGS="-p"
+
+ ################
+ # Optimization #
+ ################
+
+ HIGH_OPT_CXXFLAGS="-O3"
+ DEBUG_OPT_CXXFLAGS="-O0"
+ NO_OPT_CXXFLAGS="-O0"
+
+ ############
+ # Warnings #
+ ############
+
+ ###########
+ # General #
+ ###########
+
+ # Add various general warning flags in intel-warnings.
+ # Use the C warnings as CXX warnings are the same
+ H5_CXXFLAGS="$H5_CXXFLAGS $(load_intel_arguments general)"
+
+ ######################
+ # Developer warnings #
+ ######################
+
+ # Use the C warnings as CXX warnings are the same
+ #NO_DEVELOPER_WARNING_CXXFLAGS=$(load_intel_arguments no-developer-general)
+ #DEVELOPER_WARNING_CXXFLAGS=$(load_intel_arguments developer-general)
+
+ #############################
+ # Version-specific warnings #
+ #############################
+
+ # intel == 8.0
+ if test $cxx_vers_major -eq 8 -a $cxx_vers_minor -eq 0; then
+ # v8.0 -O3 infinite loops when compiling test/tselect.c. Use -O2.
+ HIGH_OPT_CFLAGS="-O2"
+ fi
+
+ # intel == 10
+ if test $cxx_vers_major -eq 10; then
+ HIGH_OPT_CFLAGS="-O1"
+ fi
+
+ # intel >= 15
+ if test $cxx_vers_major -ge 15; then
+ # Use the C warnings as CXX warnings are the same
+ H5_CXXFLAGS="$H5_CXXFLAGS $(load_intel_arguments 15)"
+ fi
+
+ # intel >= 18
+ if test $cxx_vers_major -ge 18; then
+ # Use the C warnings as CXX warnings are the same
+ H5_CXXFLAGS="$H5_CXXFLAGS $(load_intel_arguments 18)"
+ fi
+
+ # intel <= 19
+ if test $cxx_vers_major -le 19; then
+ # Use the C warnings as CXX warnings are the same
+ H5_CXXFLAGS="$H5_CXXFLAGS $(load_intel_arguments general-19)"
+ fi
+
+ #################
+ # Flags are set #
+ #################
+ cxx_flags_set=yes
+fi
+
+# Clear cxx info if no flags set
+if test "X-$cxx_flags_set" = "X-"; then
+ cxx_vendor=
+ cxx_version=
+fi
diff --git a/config/intel-fflags b/config/intel-fflags
index b759dfa..42c1781 100644
--- a/config/intel-fflags
+++ b/config/intel-fflags
@@ -56,13 +56,17 @@ if test X = "X$f9x_flags_set"; then
fi
fi
-# Common Intel flags for various situations
if test "X-ifort" = "X-$f9x_vendor"; then
- # Insert section about version specific problems from compiler flags here,
- # if necessary.
+
+ FC_BASENAME=ifort
+ F9XSUFFIXFLAG=""
+ FSEARCH_DIRS=""
+
+ ###############################
+ # Architecture-specific flags #
+ ###############################
arch=
- # Architecture-specific flags
# Nothing currently. (Uncomment code below and modify to add any)
#case "$host_os-$host_cpu" in
# *-i686)
@@ -78,32 +82,55 @@ if test "X-ifort" = "X-$f9x_vendor"; then
# ;;
#esac
- # General
- FC_BASENAME=ifort
- F9XSUFFIXFLAG=""
- FSEARCH_DIRS=""
- H5_FCFLAGS="$H5_FCFLAGS -stand:f03 -free"
- H5_FCFLAGS="$H5_FCFLAGS $(load_intel_arguments ifort-general)"
+ ##############
+ # Production #
+ ##############
- # Production
PROD_FCFLAGS=
- # Debug
+ #########
+ # Debug #
+ #########
+
DEBUG_FCFLAGS="-check all"
- # Symbols
- SYMBOLS_FCFLAGS="-g"
+ ###########
+ # Symbols #
+ ###########
+
NO_SYMBOLS_FCFLAGS=
+ SYMBOLS_FCFLAGS="-g"
+
+ #############
+ # Profiling #
+ #############
- # Profiling
- # Use this for profiling with gprof
PROFILE_FCFLAGS="-p"
- # Optimization
+ ################
+ # Optimization #
+ ################
+
HIGH_OPT_FCFLAGS="-O3"
DEBUG_OPT_FCFLAGS=
NO_OPT_FCFLAGS=
+ ############
+ # Warnings #
+ ############
+
+ ###########
+ # General #
+ ###########
+
+ H5_FCFLAGS="$H5_FCFLAGS -stand:f03 -free"
+ H5_FCFLAGS="$H5_FCFLAGS $(load_intel_arguments ifort-general)"
+
+ #############################
+ # Version-specific warnings #
+ #############################
+
+
#################
# Flags are set #
#################
@@ -116,4 +143,3 @@ if test "X-$f9x_flags_set" = "X-"; then
f9x_version=
fi
-
diff --git a/config/intel-flags b/config/intel-flags
index 409ffe9..f46da0a 100644
--- a/config/intel-flags
+++ b/config/intel-flags
@@ -78,26 +78,43 @@ if test "X-icc" = "X-$cc_vendor"; then
# ;;
#esac
- # General
+ ###########
+ # General #
+ ###########
+
# Default to C99 standard.
H5_CFLAGS="$H5_CFLAGS $arch -std=c99"
- # Production
+ ##############
+ # Production #
+ ##############
+
PROD_CFLAGS=
- # Debug
+ #########
+ # Debug #
+ #########
+
# NDEBUG is handled explicitly in configure
DEBUG_CFLAGS=
- # Symbols
- SYMBOLS_CFLAGS="-g"
+ ###########
+ # Symbols #
+ ###########
+
NO_SYMBOLS_CFLAGS="-Wl,-s"
+ SYMBOLS_CFLAGS="-g"
+
+ #############
+ # Profiling #
+ #############
- # Profiling
- # Use this for profiling with gprof
PROFILE_CFLAGS="-p"
- # Optimization
+ ################
+ # Optimization #
+ ################
+
HIGH_OPT_CFLAGS="-O3"
DEBUG_OPT_CFLAGS="-O0"
NO_OPT_CFLAGS="-O0"
@@ -110,32 +127,51 @@ if test "X-icc" = "X-$cc_vendor"; then
# General #
###########
+ # Add various general warning flags in intel-warnings.
H5_CFLAGS="$H5_CFLAGS $(load_intel_arguments general)"
+ ######################
+ # Developer warnings #
+ ######################
+
+ #NO_DEVELOPER_WARNING_CFLAGS=$(load_intel_arguments no-developer-general)
+ #DEVELOPER_WARNING_CFLAGS=$(load_intel_arguments developer-general)
+
#############################
# Version-specific warnings #
#############################
-case "$cc_vendor-$cc_version" in
- icc-1[5-6]*)
- H5_CFLAGS="$H5_CFLAGS -Wcomment -Wdeprecated -Wextra-tokens -Wformat -Wformat-security -Wmain -Wmissing-declarations -Wmissing-prototypes -Wp64 -Wpointer-arith -Wreturn-type -Wshadow -Wstrict-prototypes -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-variable -Wwrite-strings"
- ;;
- icc-10*)
- HIGH_OPT_CFLAGS="-O1"
- ;;
- icc-8.0*)
+ # intel == 8.0
+ if test $cc_vers_major -eq 8 -a $cc_vers_minor -eq 0; then
# v8.0 -O3 infinite loops when compiling test/tselect.c. Use -O2.
HIGH_OPT_CFLAGS="-O2"
- ;;
- icc-*)
- ;;
-esac
+ fi
+
+ # intel == 10
+ if test $cc_vers_major -eq 10; then
+ HIGH_OPT_CFLAGS="-O1"
+ fi
+
+ # intel >= 15
+ if test $cc_vers_major -ge 15; then
+ H5_CFLAGS="$H5_CFLAGS $(load_intel_arguments 15)"
+ fi
+
+ # intel >= 18
+ if test $cc_vers_major -ge 18; then
+ H5_CFLAGS="$H5_CFLAGS $(load_intel_arguments 18)"
+ fi
+
+ # intel <= 19
+ # this file has warnings only available before oneapi versions
+ if test $cc_vers_major -le 19; then
+ H5_CFLAGS="$H5_CFLAGS $(load_intel_arguments general-19)"
+ fi
#################
# Flags are set #
#################
cc_flags_set=yes
-
fi
# Clear cc info if no flags set
diff --git a/config/intel-warnings/15 b/config/intel-warnings/15
new file mode 100644
index 0000000..6746f97
--- /dev/null
+++ b/config/intel-warnings/15
@@ -0,0 +1,19 @@
+-Wcomment
+-Wdeprecated
+-Wextra-tokens
+-Wformat
+-Wformat-security
+-Wmain
+-Wmissing-declarations
+-Wmissing-prototypes
+-Wp64
+-Wpointer-arith
+-Wreturn-type
+-Wshadow
+-Wstrict-prototypes
+-Wtrigraphs
+-Wuninitialized
+-Wunknown-pragmas
+-Wunused-function
+-Wunused-variable
+-Wwrite-strings
diff --git a/config/intel-warnings/18 b/config/intel-warnings/18
new file mode 100644
index 0000000..565b47a
--- /dev/null
+++ b/config/intel-warnings/18
@@ -0,0 +1,8 @@
+-Wextra-tokens
+-Wformat
+-Wformat-security
+-Wic-pointer
+-Wshadow
+-Wsign-compare
+-Wtrigraphs
+-Wwrite-strings
diff --git a/config/intel-warnings/developer-general b/config/intel-warnings/developer-general
new file mode 100644
index 0000000..fae56f0
--- /dev/null
+++ b/config/intel-warnings/developer-general
@@ -0,0 +1,4 @@
+-Winline
+-Wreorder
+-Wport
+-Wstrict-aliasing
diff --git a/config/intel-warnings/general b/config/intel-warnings/general
index d0b2e25..bd866b6 100644
--- a/config/intel-warnings/general
+++ b/config/intel-warnings/general
@@ -1,2 +1 @@
-Wall
--Wcheck \ No newline at end of file
diff --git a/config/intel-warnings/general-19 b/config/intel-warnings/general-19
new file mode 100644
index 0000000..e35af30
--- /dev/null
+++ b/config/intel-warnings/general-19
@@ -0,0 +1,2 @@
+# this is only available before oneapi versions
+-Wcheck
diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1
index 0fef161..d952c4e 100644
--- a/config/linux-gnulibc1
+++ b/config/linux-gnulibc1
@@ -199,9 +199,16 @@ if test -z "$CXX"; then
CXX_BASENAME=g++
fi
+# Figure out Intel CXX compiler flags
+# Do this ahead of GNU to avoid icpc being detected as g++
+. $srcdir/config/intel-cxxflags
+
# Figure out GNU CXX compiler flags
. $srcdir/config/gnu-cxxflags
+# Figure out PGI CXX compiler flags
+. $srcdir/config/pgi-cxxflags
+
# Figure out Clang CXX compiler flags
. $srcdir/config/clang-cxxflags
@@ -314,6 +321,9 @@ fi
# check if the compiler_version_info is already set
if test -z "$cxx_version_info"; then
case $CXX in
+ *pgc++*)
+ cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS -V 2>&1 | grep 'pgc++'`
+ ;;
*g++*)
cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS --version 2>&1 |\
grep 'GCC' | sed 's/\(.*(GCC) [-a-z0-9\. ]*\).*/\1/'`
@@ -322,10 +332,6 @@ case $CXX in
cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS -V 2>&1 | grep 'Version' |\
sed 's/\(Intel.* Compiler\).*\( Version [a-z0-9\.]*\).*\( Build [0-9]*\)/\1\2\3/'`
;;
- *pgCC*)
- cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS -V 2>&1 | grep 'pgCC'`
- ;;
-
*mpicxx*)
cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS -v 2>&1 | grep 'version' |\
sed 's/^[a-z0-9]* for //' |\
diff --git a/config/pgi-cxxflags b/config/pgi-cxxflags
new file mode 100644
index 0000000..5fc74ae
--- /dev/null
+++ b/config/pgi-cxxflags
@@ -0,0 +1,100 @@
+# -*- shell-script -*-
+#
+# Copyright by The HDF Group.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://www.hdfgroup.org/licenses.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+
+
+# This file should be sourced into configure if the compiler is the
+# PGI pgc++ compiler or a derivative. It is careful not to do anything
+# if the compiler is not PGI; otherwise `cxx_flags_set' is set to `yes'
+#
+
+# Get the compiler version in a way that works for pgc++
+# pgc++ unless a compiler version is already known
+#
+# cxx_vendor: The compiler name: pgc++
+# cxx_version: Version number: 5.0-2, 5.2-2
+#
+if test X = "X$cxx_flags_set"; then
+ cxx_version="`$CXX $CXXFLAGS -V 2>&1 |grep '^pgc++ '`"
+ if test X != "X$cxx_version"; then
+ cxx_vendor=`echo $cxx_version |sed 's/\([a-z]*++\).*/\1/'`
+ cxx_version=`echo $cxx_version |sed 's/pgc++ \([-a-z0-9\.\-]*\).*/\1/'`
+ echo "compiler '$CXX' is PGI $cxx_vendor-$cxx_version"
+
+ # Some version numbers
+ # PGI version numbers are of the form: "major.minor-patch"
+ cxx_vers_major=`echo $cxx_version | cut -f1 -d.`
+ cxx_vers_minor=`echo $cxx_version | cut -f2 -d. | cut -f1 -d-`
+ cxx_vers_patch=`echo $cxx_version | cut -f2 -d. | cut -f2 -d-`
+ test -n "$cxx_vers_major" || cxx_vers_major=0
+ test -n "$cxx_vers_minor" || cxx_vers_minor=0
+ test -n "$cxx_vers_patch" || cxx_vers_patch=0
+ cxx_vers_all=`expr $cxx_vers_major '*' 1000000 + $cxx_vers_minor '*' 1000 + $cxx_vers_patch`
+ fi
+fi
+
+# Common PGI flags for various situations
+if test "X-pgc++" = "X-$cxx_vendor"; then
+
+ ###########
+ # General #
+ ###########
+
+ H5_CXXFLAGS="$H5_CXXFLAGS -Minform=warn"
+
+ ##############
+ # Production #
+ ##############
+
+ PROD_CXXFLAGS=
+
+ #########
+ # Debug #
+ #########
+
+ # NDEBUG is handled explicitly in configure
+ # -g is handled by the symbols flags
+ DEBUG_CXXFLAGS="-Mbounds"
+
+ ###########
+ # Symbols #
+ ###########
+
+ NO_SYMBOLS_CXXFLAGS="-s"
+ SYMBOLS_CXXFLAGS="-g"
+
+ #############
+ # Profiling #
+ #############
+
+ PROFILE_CXXFLAGS="-Mprof=func,line"
+ # Use this for profiling with gprof
+ #PROFILE_CXXFLAGS="-pg"
+
+ ################
+ # Optimization #
+ ################
+
+ HIGH_OPT_CXXFLAGS="-O4"
+ DEBUG_OPT_CXXFLAGS="-gopt -O2"
+ NO_OPT_CXXFLAGS="-O0"
+
+ #################
+ # Flags are set #
+ #################
+ cxx_flags_set=yes
+fi
+
+# Clear cxx info if no flags set
+if test "X-$cxx_flags_set" = "X-"; then
+ cxx_vendor=
+ cxx_version=
+fi
diff --git a/config/pgi-fflags b/config/pgi-fflags
index 3171695..6401d8d 100644
--- a/config/pgi-fflags
+++ b/config/pgi-fflags
@@ -1,4 +1,4 @@
-# -*- shell-script -*-
+# -*- shell-script -*-
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
@@ -45,11 +45,12 @@ fi
# Common PGI flags for various situations
if test "X-pgf90" = "X-$f9x_vendor"; then
- # Insert section about version specific problems from gnu-flags here, if
- # necessary.
+
+ ###############################
+ # Architecture-specific flags #
+ ###############################
arch=
- # Architecture-specific flags
# Nothing currently. (Uncomment code below and modify to add any)
#case "$host_os-$host_cpu" in
# *-i686)
@@ -65,15 +66,10 @@ if test "X-pgf90" = "X-$f9x_vendor"; then
# ;;
#esac
- # General
- FC_BASENAME=pgf90
- Fortran_COMPILER_ID=PGI
- F9XSUFFIXFLAG=""
- FSEARCH_DIRS=""
- # Uncomment the following to add something specific for FCFLAGS.
- #FCFLAGS="$FCFLAGS"
+ ##############
+ # Production #
+ ##############
- # Production
# Check for MPI wrapper being used and tweak down compiler options
# Comment out the Tweaking since it caused problems to mpich1.2.6.
# Need to investigate the reasons to tweak.
@@ -84,24 +80,55 @@ if test "X-pgf90" = "X-$f9x_vendor"; then
#fi
PROD_FCFLAGS="-fast -Mnoframe"
- # Debug
+ #########
+ # Debug #
+ #########
+
DEBUG_FCFLAGS="-Mbounds -Mchkptr -Mdclchk"
- # Symbols
- SYMBOLS_FCFLAGS="-g"
+ ###########
+ # Symbols #
+ ###########
+
NO_SYMBOLS_FCFLAGS="-s"
+ SYMBOLS_FCFLAGS="-g"
+
+ #############
+ # Profiling #
+ #############
- # Profiling
PROFILE_FCFLAGS="-Mprof=func,line"
# Use this for profiling with gprof
#PROFILE_FCFLAGS="-pg"
- # Optimization
+ ################
+ # Optimization #
+ ################
+
HIGH_OPT_FCFLAGS=
DEBUG_OPT_FCFLAGS=
NO_OPT_FCFLAGS=
- # Flags are set
+ ############
+ # Warnings #
+ ############
+
+ ###########
+ # General #
+ ###########
+
+ FC_BASENAME=pgf90
+ Fortran_COMPILER_ID=PGI
+ F9XSUFFIXFLAG=""
+ FSEARCH_DIRS=""
+ # Uncomment the following to add something specific for FCFLAGS.
+ #FCFLAGS="$FCFLAGS"
+
+
+
+ #################
+ # Flags are set #
+ #################
f9x_flags_set=yes
fi
@@ -111,4 +138,3 @@ if test "X-$f9x_flags_set" = "X-"; then
f9x_version=
fi
-
diff --git a/config/pgi-flags b/config/pgi-flags
index e1bec00..b197a1c 100644
--- a/config/pgi-flags
+++ b/config/pgi-flags
@@ -1,4 +1,4 @@
-# -*- shell-script -*-
+# -*- shell-script -*-
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
@@ -45,8 +45,8 @@ fi
# Common PGI flags for various situations
if test "X-pgcc" = "X-$cc_vendor"; then
- # Insert section about version specific problems from gnu-flags here, if
- # necessary.
+ # Insert section about version specific problems from compiler flags here,
+ # if necessary.
arch=
# Architecture-specific flags
@@ -65,58 +65,59 @@ if test "X-pgcc" = "X-$cc_vendor"; then
# ;;
#esac
- # General
- H5_CFLAGS="$H5_CFLAGS $arch -c99 -Minform=inform"
-
- # Production
- case "$cc_vendor-$cc_version" in
- pgcc-10.6*)
- PROD_CFLAGS=
- ;;
- pgcc-9.*)
- PROD_CFLAGS=
- ;;
- *)
- PROD_CFLAGS="-fast"
- ;;
- esac
-
- # Debug
+ ###########
+ # General #
+ ###########
+
+ # Default to C99 standard.
+ H5_CFLAGS="$H5_CFLAGS $arch -c99 -Minform=warn"
+
+ ##############
+ # Production #
+ ##############
+
+ # NDEBUG is handled explicitly by the configure script
+ PROD_CFLAGS="-fast"
+
+ #########
+ # Debug #
+ #########
+
# NDEBUG is handled explicitly by the configure script
+ # -g is handled by the symbols flags
DEBUG_CFLAGS="-Mbounds"
- # Symbols
- SYMBOLS_CFLAGS="-g"
+ ###########
+ # Symbols #
+ ###########
+
NO_SYMBOLS_CFLAGS="-s"
+ SYMBOLS_CFLAGS="-g"
+
+ #############
+ # Profiling #
+ #############
- # Profiling
PROFILE_CFLAGS="-Mprof=func,line"
# Use this for profiling with gprof
#PROFILE_CFLAGS="-pg"
- # Optimization
- case "$cc_vendor-$cc_version" in
- # Tweak down compiler optimizations for v10.6, it has a bug
- pgcc-10.6*)
- HIGH_OPT_CFLAGS="-O1"
- ;;
- # Tweak down compiler optimizations for v9.x
- pgcc-9.*)
- HIGH_OPT_CFLAGS="-O1"
- ;;
- *)
- HIGH_OPT_CFLAGS=
- ;;
- esac
- DEBUG_OPT_CFLAGS=
- NO_OPT_CFLAGS=
-
- # Flags are set
+ ################
+ # Optimization #
+ ################
+
+ HIGH_OPT_CFLAGS="-O4"
+ DEBUG_OPT_CFLAGS="-gopt -O2"
+ NO_OPT_CFLAGS="-O0"
+
+ #################
+ # Flags are set #
+ #################
cc_flags_set=yes
fi
# Clear cc info if no flags set
if test "X-$cc_flags_set" = "X-"; then
- cc_vendor=
- cc_version=
+ cc_vendor=
+ cc_version=
fi