summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2020-12-02 13:32:22 (GMT)
committerGitHub <noreply@github.com>2020-12-02 13:32:22 (GMT)
commitc7c1046d492eb3c956868a66a5a66f814808838b (patch)
treee6a402fdbb28d72e3c2db4a2749e85357e3037e9 /config
parent82c0cb122f468c0d8d684da64a08acf50534bd02 (diff)
downloadhdf5-c7c1046d492eb3c956868a66a5a66f814808838b.zip
hdf5-c7c1046d492eb3c956868a66a5a66f814808838b.tar.gz
hdf5-c7c1046d492eb3c956868a66a5a66f814808838b.tar.bz2
Fix autotools clang debug optimization level w/ older clang and Xcode versions (#146)
* Fixes clang debug optimization level w/ Autotools NOTE: This was only released in HDF5 1.10.7, so only the 1.10 branch needs a note in RELEASE.txt. * Updates the clang -Og setting with a version check w/ autotools * Sets -Og when clang >= 4.0 or Xcode >= 9.0 * Older versions get -O1 * Autotools only
Diffstat (limited to 'config')
-rw-r--r--config/clang-flags14
1 files changed, 12 insertions, 2 deletions
diff --git a/config/clang-flags b/config/clang-flags
index e539a3f..e7b51a3 100644
--- a/config/clang-flags
+++ b/config/clang-flags
@@ -56,7 +56,10 @@ load_clang_arguments()
#
if test "X-" = "X-$cc_flags_set"; then
# clang -v will return version number following "clang" on Linux machines,
- # but on Macs the version number will follow "Apple LLVM version"
+ # but on Xcode the version number will follow "Apple LLVM version"
+ # Note that the Xcode reported LLVM version doesn't match the canonical
+ # LLVM version, so you'll need to do different version checks for
+ # Xcode.
cc_version="`$CC $CFLAGS $H5_CFLAGS -v 2>&1 |\
grep 'clang version' | sed 's/.*clang version \([-a-z0-9\.]*\).*/\1/'`"
if test -n "$cc_version"; then
@@ -160,9 +163,16 @@ if test "X-clang" = "X-$cc_vendor" -o "X-Apple LLVM" = "X-$cc_vendor"; then
################
HIGH_OPT_CFLAGS="-O3"
- DEBUG_OPT_CFLAGS="-Og"
NO_OPT_CFLAGS="-O0"
+ # -Og is only understood by clang 4+ and Xcode 9+
+ # Otherwise use -O1 (which is what -Og usually equates to)
+ if test "X-clang" = "X-$cc_vendor" -a $cc_vers_major -ge 4 -o "X-Apple LLVM" = "X-$cc_vendor" -a $cc_vers_major -ge 9; then
+ DEBUG_OPT_CFLAGS="-Og"
+ else
+ DEBUG_OPT_CFLAGS="-O1"
+ fi
+
############
# Warnings #
############