]> granicus.if.org Git - python/commitdiff
bpo-36618: Don't add -fmax-type-align flag to old clang (GH-12811)
authorVictor Stinner <vstinner@redhat.com>
Fri, 12 Apr 2019 22:51:07 +0000 (00:51 +0200)
committerGitHub <noreply@github.com>
Fri, 12 Apr 2019 22:51:07 +0000 (00:51 +0200)
Misc/NEWS.d/next/Build/2019-04-12-19-49-10.bpo-36618.gcI9iq.rst
configure
configure.ac

index 597dd67b46e0f723369dc8e6b36b7bf7c3a5a27b..4408227b326c495cfd876908e18ebff48abef32d 100644 (file)
@@ -4,5 +4,5 @@ alignment on 16 bytes by default and so uses MOVAPS instruction which can
 lead to segmentation fault. Instruct clang that Python is limited to
 alignemnt on 8 bytes to use MOVUPS instruction instead: slower but don't
 trigger a SIGSEGV if the memory is not aligned on 16 bytes. Sadly, the flag
-must be expected to ``CFLAGS`` and not just ``CFLAGS_NODIST``, since third
-party C extensions can have the same issue.
+must be added to ``CFLAGS`` and not just ``CFLAGS_NODIST``, since third party C
+extensions can have the same issue.
index ac1e66a96bb62b2e3dc72f579f45234fbd2cf0bf..9c7eded8535985a0de74ce37aed905dfea0bebcd 100755 (executable)
--- a/configure
+++ b/configure
@@ -6889,9 +6889,14 @@ then
     # instead: slower but don't trigger a SIGSEGV if the memory is not aligned
     # on 16 bytes.
     #
-    # Sadly, the flag must be expected to CFLAGS and not just CFLAGS_NODIST,
+    # Sadly, the flag must be added to CFLAGS and not just CFLAGS_NODIST,
     # since third party C extensions can have the same issue.
-    CFLAGS="$CFLAGS -fmax-type-align=8"
+    #
+    # Check if -fmax-type-align flag is supported (it's not supported by old
+    # clang versions):
+    if "$CC" -v --help 2>/dev/null |grep -- -fmax-type-align > /dev/null; then
+        CFLAGS="$CFLAGS -fmax-type-align=8"
+    fi
 fi
 
 
index 863b34245ad623b26fa4f587edce733d89d8272d..6450519444c8d3e66a8dd6406a580a3238f46627 100644 (file)
@@ -1540,9 +1540,14 @@ then
     # instead: slower but don't trigger a SIGSEGV if the memory is not aligned
     # on 16 bytes.
     #
-    # Sadly, the flag must be expected to CFLAGS and not just CFLAGS_NODIST,
+    # Sadly, the flag must be added to CFLAGS and not just CFLAGS_NODIST,
     # since third party C extensions can have the same issue.
-    CFLAGS="$CFLAGS -fmax-type-align=8"
+    #
+    # Check if -fmax-type-align flag is supported (it's not supported by old
+    # clang versions):
+    if "$CC" -v --help 2>/dev/null |grep -- -fmax-type-align > /dev/null; then
+        CFLAGS="$CFLAGS -fmax-type-align=8"
+    fi
 fi
 
 AC_SUBST(BASECFLAGS)