summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xMac/BuildScript/build-installer.py10
-rw-r--r--Misc/NEWS.d/next/macOS/2020-11-01-17-37-16.bpo-42235.A97_BN.rst2
2 files changed, 12 insertions, 0 deletions
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
index 540b5a0..ff62096 100755
--- a/Mac/BuildScript/build-installer.py
+++ b/Mac/BuildScript/build-installer.py
@@ -436,6 +436,14 @@ def library_recipes():
return result
+def compilerCanOptimize():
+ """
+ Return True iff the default Xcode version can use PGO and LTO
+ """
+ # bpo-42235: The version check is pretty conservative, can be
+ # adjusted after testing
+ mac_ver = tuple(map(int, platform.mac_ver()[0].split('.')))
+ return mac_ver >= (10, 15)
# Instructions for building packages inside the .mpkg.
def pkg_recipes():
@@ -1176,6 +1184,7 @@ def buildPython():
"%s "
"%s "
"%s "
+ "%s "
"LDFLAGS='-g -L%s/libraries/usr/local/lib' "
"CFLAGS='-g -I%s/libraries/usr/local/include' 2>&1"%(
shellQuote(os.path.join(SRCDIR, 'configure')),
@@ -1188,6 +1197,7 @@ def buildPython():
shellQuote(WORKDIR)[1:-1],))[internalTk()],
(' ', "--with-tcltk-libs='-L%s/libraries/usr/local/lib -ltcl8.6 -ltk8.6'"%(
shellQuote(WORKDIR)[1:-1],))[internalTk()],
+ (' ', "--enable-optimizations --with-lto")[compilerCanOptimize()],
shellQuote(WORKDIR)[1:-1],
shellQuote(WORKDIR)[1:-1]))
diff --git a/Misc/NEWS.d/next/macOS/2020-11-01-17-37-16.bpo-42235.A97_BN.rst b/Misc/NEWS.d/next/macOS/2020-11-01-17-37-16.bpo-42235.A97_BN.rst
new file mode 100644
index 0000000..eef4fcd
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2020-11-01-17-37-16.bpo-42235.A97_BN.rst
@@ -0,0 +1,2 @@
+``Mac/BuildScript/build-installer.py`` will now use "--enable-optimizations"
+and ``--with-lto`` when building on macOS 10.15 or later.