summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstratakis <cstratak@redhat.com>2018-12-04 15:54:01 +0100
committerVictor Stinner <vstinner@redhat.com>2018-12-04 15:54:01 +0100
commitf92c7aa1ae81efa475b5aecf66e4711ef0f52c4c (patch)
tree139b7b75f0ffc39a3d75f028a242a8e7501e806e
parente63e617ebbe481c498bdf037a62e09f4f9f3963f (diff)
downloadcpython-git-f92c7aa1ae81efa475b5aecf66e4711ef0f52c4c.tar.gz
bpo-35351: Pass link time optimization flags to CFLAGS_NODIST (GH-10797)
When using link time optimizations, the -flto flag is passed to BASECFLAGS, which makes it propagate to distutils. Those flags should be reserved for the interpreter and the stdlib extension modules only, thus moving those flags to CFLAGS_NODIST.
-rw-r--r--Misc/NEWS.d/next/Build/2018-12-04-15-33-28.bpo-35351.ZhhBfT.rst2
-rwxr-xr-xconfigure2
-rw-r--r--configure.ac2
3 files changed, 4 insertions, 2 deletions
diff --git a/Misc/NEWS.d/next/Build/2018-12-04-15-33-28.bpo-35351.ZhhBfT.rst b/Misc/NEWS.d/next/Build/2018-12-04-15-33-28.bpo-35351.ZhhBfT.rst
new file mode 100644
index 0000000000..ee6c870b06
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2018-12-04-15-33-28.bpo-35351.ZhhBfT.rst
@@ -0,0 +1,2 @@
+When building Python with clang and LTO, LTO flags are no longer passed into
+CFLAGS to build third-party C extensions through distutils.
diff --git a/configure b/configure
index e9e33b3715..8d3336387c 100755
--- a/configure
+++ b/configure
@@ -6626,7 +6626,7 @@ $as_echo "$as_me: llvm-ar found via xcrun: ${LLVM_AR}" >&6;}
LTOFLAGS="$LTOFLAGS -g"
fi
- BASECFLAGS="$BASECFLAGS $LTOFLAGS"
+ CFLAGS_NODIST="$CFLAGS_NODIST $LTOFLAGS"
LDFLAGS="$LDFLAGS $LTOFLAGS"
fi
diff --git a/configure.ac b/configure.ac
index 15d03ba381..5c1c021920 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1357,7 +1357,7 @@ if test "$Py_LTO" = 'true' ; then
LTOFLAGS="$LTOFLAGS -g"
fi
- BASECFLAGS="$BASECFLAGS $LTOFLAGS"
+ CFLAGS_NODIST="$CFLAGS_NODIST $LTOFLAGS"
LDFLAGS="$LDFLAGS $LTOFLAGS"
fi