From 42d5fa1602935e76187a14ba493cd62d7f0fb02c Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Mon, 21 Sep 2026 15:54:25 +0300 Subject: [PATCH] Skip optimisations to speedup `test_freeze` rebuild (GH-157264) (cherry picked from commit a6ad448237755cfd2d52d6002f7c38f5f67b5ab2) Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- Tools/freeze/test/freeze.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Tools/freeze/test/freeze.py b/Tools/freeze/test/freeze.py index 1e3687dbb807a6..f4330076f225b5 100644 --- a/Tools/freeze/test/freeze.py +++ b/Tools/freeze/test/freeze.py @@ -64,6 +64,16 @@ def find_opt(args, name): return -1 +def remove_opt(args: list[str], name: str) -> None: + opt = f'--{name}' + optstart = f'{opt}=' + args[:] = [ + arg + for arg in args + if arg != opt and not arg.startswith(optstart) + ] + + def ensure_opt(args, name, value): opt = f'--{name}' pos = find_opt(args, name) @@ -128,6 +138,10 @@ def prepare(script=None, outdir=None): # Run configure. print(f'configuring python in {builddir}...') config_args = shlex.split(sysconfig.get_config_var('CONFIG_ARGS') or '') + # Optimisations such as LTO and PGO only slow down the build of this + # throwaway interpreter without affecting what the test checks. + remove_opt(config_args, 'enable-optimizations') + remove_opt(config_args, 'with-lto') cmd = [os.path.join(srcdir, 'configure'), *config_args] ensure_opt(cmd, 'cache-file', os.path.join(outdir, 'python-config.cache')) prefix = os.path.join(outdir, 'python-installation')