Closed vstinner closed 6 months ago
I can reproduce the issue on Fedora 39 with:
./configure --prefix $PWD/target CC=clang LD=clang --with-lto --enable-optimizations
time make
./python -m test test_peg_generator -v -m test_ternary_operator -u all
It seems like it's a regression introduced by the change: commit 1ddbeae040beb35614f3933f340e0dedcc1e98e4.
commit 1ddbeae040beb35614f3933f340e0dedcc1e98e4
Author: Erlend E. Aasland <erlend@python.org>
Date: Fri Apr 12 11:36:40 2024 +0200
gh-117752: Autoconf: fix PGO builds for 'make -C build' incantations (#117803)
configure | 8 ++++----
configure.ac | 16 ++++++++++++----
2 files changed, 16 insertions(+), 8 deletions(-)
cc @erlend-aasland
Yes, I suspected this. Perhaps we should revert that change and just don't support the make -C build
scenario.
I still think we should keep 396b831850f0f364d584db4407a5d633f33e571c, though.
For git bisect, I used:
git clean -fdx
./configure --prefix $PWD/target CC=clang LD=clang --enable-optimizations PROFILE_TASK="-c pass" CFLAGS="-O0" --with-lto
time make
./python -m test test_peg_generator -v -m test_ternary_operator -u all
For old commits, it seems like test_ternary_operator() didn't exist, so instead I ran:
./python -m test test_peg_generator -u all -v
The test_peg_generator check for PGO build no longer works since the variable contains a shell command:
$ ./python
Python 3.13.0a6+ (heads/main:a9107fe5c0, Apr 15 2024, 15:17:09) [Clang 17.0.6 (Fedora 17.0.6-2.fc39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sysconfig
>>> sysconfig.get_config_var('PGO_PROF_USE_FLAG')
'-fprofile-instr-use="$(shell pwd)/code.profclangd"'
I wrote PR gh-117893 to fix the test.
Bug report
Example on aarch64 Debian Clang LTO + PGO 3.x: https://buildbot.python.org/all/#/builders/1084/builds/4019
Linked PRs