diff options
author | Brett Cannon <brett@python.org> | 2016-09-07 00:12:40 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2016-09-07 00:12:40 (GMT) |
commit | 63d98bcd4c88eea1c4b50dae95da662284813114 (patch) | |
tree | 3d9cd6a47792930a1db8e6e3307f42f7907d02b8 /configure.ac | |
parent | 62ec3317d2b7f1be98ff49b2278538a9ae5a7049 (diff) | |
download | cpython-63d98bcd4c88eea1c4b50dae95da662284813114.zip cpython-63d98bcd4c88eea1c4b50dae95da662284813114.tar.gz cpython-63d98bcd4c88eea1c4b50dae95da662284813114.tar.bz2 |
Issue #26359: Add the --with-optimizations configure flag.
The flag will activate LTO and PGO build support when available.
Thanks to Alecsandur Patrascu of Intel for the original patch.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 786796a..b511a79 100644 --- a/configure.ac +++ b/configure.ac @@ -1282,6 +1282,37 @@ else AC_MSG_RESULT(no); Py_DEBUG='false' fi], [AC_MSG_RESULT(no)]) +# Enable optimization flags +AC_SUBST(DEF_MAKE_ALL_RULE) +AC_SUBST(DEF_MAKE_RULE) +Py_OPT='false' +AC_MSG_CHECKING(for --with-optimizations) +AC_ARG_WITH(optimizations, AS_HELP_STRING([--with-optimizations], [Enable all optimizations when available (LTO, PGO, etc). Disabled by default.]), +[ +if test "$withval" != no +then + Py_OPT='true' + AC_MSG_RESULT(yes); +else + Py_OPT='false' + AC_MSG_RESULT(no); +fi], +[AC_MSG_RESULT(no)]) +if test "$Py_OPT" = 'true' ; then + Py_LTO='true' + case $ac_sys_system in + Darwin*) + # At least on macOS El Capitan, LTO does not work with PGO. + Py_LTO='false' + ;; + esac + DEF_MAKE_ALL_RULE="profile-opt" + DEF_MAKE_RULE="build_all" +else + DEF_MAKE_ALL_RULE="build_all" + DEF_MAKE_RULE="all" +fi + # Enable LTO flags AC_SUBST(LTOFLAGS) AC_MSG_CHECKING(for --with-lto) @@ -5337,3 +5368,13 @@ $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \ -s Modules Modules/Setup.config \ Modules/Setup.local Modules/Setup mv config.c Modules + +if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then + echo "" >&AS_MESSAGE_FD + echo "" >&AS_MESSAGE_FD + echo "If you want a release build with all optimizations active (LTO, PGO, etc)," + echo "please run ./configure --with-optimizations" >&AS_MESSAGE_FD + echo "" >&AS_MESSAGE_FD + echo "" >&AS_MESSAGE_FD +fi + |