diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2020-06-29 16:53:55 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2020-06-29 16:53:55 (GMT) |
commit | 785a1cef0c2ea2d1a179d86e34117ffd73aaa70d (patch) | |
tree | 328dac1fd1adf20d4c2077fa15da7327a39817f2 /configure.ac | |
parent | 7a4d7da14a745333c4e8f3955a0afd9db70969c0 (diff) | |
parent | 30776671fb0a27a98b0640aa968f850241a862ce (diff) | |
download | hdf5-785a1cef0c2ea2d1a179d86e34117ffd73aaa70d.zip hdf5-785a1cef0c2ea2d1a179d86e34117ffd73aaa70d.tar.gz hdf5-785a1cef0c2ea2d1a179d86e34117ffd73aaa70d.tar.bz2 |
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit '30776671fb0a27a98b0640aa968f850241a862ce': (31 commits)
* Fix intermittent error with Splitter VFD. Mismatch in time of test file creation was creating false negatives.
Added note for HDFFV-10591.
Fix HDFFV-10591
Reduce overhead for H5open, which is involved in the public symbols like H5T_NATIVE_INT, etc.
Remove unnecessary version conditions for Clang compilers.
Fix for HDFFV-10961: Couple changes to the tests' usage output files for h5clear.
Fix for HDFFV-10961: add description to usage for --increment option.
Add c++ to --enable-sanitize-checks option.
Remove duplicate entries in MANIFEST.
Make changes to CMake CompilerFlags.cmake files so extra flags are loaded for non-GNU compilers.
Fix MANIFEST
Add tests for all version to H5_NO_DEPRECATED_SYMBOLS section and to section for current version, with and without default API version flags.
HDFFV-11000: update-testh5cc.sh.in to test sample versioned functions in HDF5 1.10, 1.12 and develop.
Remember the info for the last ID looked up for a given ID type.
Eliminate allocating file & memory offset & length arrays when performing I/O on a single element.
Update new clang files to not pick up clang as vendor for pgCC. Add new files to MANIFEST Temporary demotion of 2 -Werror warning flags that fail on macos 10.12 Remove Production flag unknown to Apple clang.
Remove redundant metadata cache tagging from some low-level internal chunk functions. The metadata cache tagging has already been done by routines further up the call stack.
Clean up code to get clang version in config/linux-gnulibc1
Minor normalizations with HDF5 1.10.
Add flags from config/clang-warnings/*general files to H5 C and CXX flags for all versions of Clang and Clang++ compilers. Switched from cut to awk in testcheck_version.sh.in to avoid dependence on tab vs. " " in version definitions in H5public.h.
...
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index db0cddf..9480033 100644 --- a/configure.ac +++ b/configure.ac @@ -289,6 +289,62 @@ while test -n "$hname"; do test "$hname_tmp" = "$hname" && break done +## +## Enable/disable sanitizer checks for clang compilers, initially address sanitizer +## +AC_MSG_CHECKING([for clang sanitizer checks]) +AC_ARG_ENABLE([sanitize-checks], + [AS_HELP_STRING([--enable-sanitize-checks=address], + [(clang/clang++ compilers only) Enable sanitize checks. + Address is useful for detecting issues dealing with + memory. See AddressSanitizer in config/sanitizer/README.md + for more information. + [default=none] + ])], + [CLANG_SANITIZE_CHECKS=$enableval]) + +# Set default +if test "X-$CLANG_SANITIZE_CHECKS" = X- ; then + CLANG_SANITIZE_CHECKS=none +fi + +if test "X$CC_BASENAME" = "Xclang"; then + AC_SUBST([CLANG_SANITIZE_CHECKS]) + + # There are several sanitizer tools. At present we are testing + # and describing only -fsanitizer=address with autotools. + case "X-$CLANG_SANITIZE_CHECKS" in + X-no|X-none) + CLANG_SANITIZE_CHECKS=none + CLANG_SANITIZE_LIST= + ;; + *) + CLANG_SANITIZE_LIST=$CLANG_SANITIZE_CHECKS + ;; + esac + AC_MSG_RESULT([$CLANG_SANITIZE_CHECKS]) + + # Other tools can be added to the list of checks + # The clang compiler doesn't support some of them; they should be + # checked before adding them to the list in the help message. + # The sanitizers/sanitizers.cmake file lists these options: + # address, memory, memoryWithOrigins, undefined, thread, leak, + # 'address;undefined'. Which and which combinations of these are + # supported varies by compiler version, but unsupported options + # or combinations will result in configure errors reported in config.log. + # Comma separated lists of sanitize options wil be entered intact in + # one -fsanitize=<list> flag. Space separated lists will be entered in + # separate -fsanitize=<item> flags. + # NOTE: No sanity checking done here! + if test -n "$CLANG_SANITIZE_LIST"; then + H5_CFLAGS="$H5_CFLAGS -fno-omit-frame-pointer" + H5_CXXFLAGS="$H5_CXXFLAGS -fno-omit-frame-pointer" + for sanitizer in `echo $CLANG_SANITIZE_LIST`; do + H5_CFLAGS="$H5_CFLAGS -fsanitize=${sanitizer}" + H5_CXXFLAGS="$H5_CXXFLAGS -fsanitize=${sanitizer}" + done + fi +fi ## ---------------------------------------------------------------------- ## Determine build mode (debug, production, clean). |