[MacPorts] #74366: Variant +optimizations of python314 @3.14.7 should be disabled on (PPC?) Mac OS X 10.5.8, Leopard
MacPorts
noreply at macports.org
Wed Aug 26 20:58:12 UTC 2026
#74366: Variant +optimizations of python314 @3.14.7 should be disabled on (PPC?)
Mac OS X 10.5.8, Leopard
-------------------------+-----------------------
Reporter: ballapete | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.12.5
Keywords: ppc leopard | Port: python314
-------------------------+-----------------------
Towards the end of building `Profile-Guided Optimization (PGO)` is
started, which at first works fine, but then comes to an endless step:
{{{
LC_ALL=C sed -e 's,\$(\([A-Za-z0-9_]*\)),\$\{\1\},g' < Misc/python-
config.sh >python-config
The following modules are *disabled* in configure script:
_gdbm _tkinter
Checked 114 modules (36 built-in, 76 shared, 0 n/a on macosx-10.5-ppc, 2
disabled, 0 missing, 0 failed on import)
DYLD_FRAMEWORK_PATH=/opt/local/var/macports/build/python314-850f3633/work/Python-3.14.7
./python -E ./Tools/build/generate-build-details.py `cat pybuilddir.txt
`/build-details.json
make[2]: Leaving directory
`/opt/local/var/macports/build/python314-850f3633/work/Python-3.14.7'
touch profile-gen-stamp
make[1]: Leaving directory
`/opt/local/var/macports/build/python314-850f3633/work/Python-3.14.7'
# Next, run the profile task to generate the profile information.
DYLD_FRAMEWORK_PATH=/opt/local/var/macports/build/python314-850f3633/work/Python-3.14.7
./python -m test --pgo --timeout=
Using random seed: 1787656138
0:00:00 load avg: 1.11 Run 43 tests sequentially in a single process
0:00:00 load avg: 1.11 [ 1/43] test_array
0:00:37 load avg: 1.19 [ 1/43] test_array passed in 37.0 sec
0:00:37 load avg: 1.19 [ 2/43] test_base64
0:00:54 load avg: 1.51 [ 2/43] test_base64 passed
0:00:54 load avg: 1.51 [ 3/43] test_binascii
0:00:56 load avg: 1.51 [ 3/43] test_binascii passed
0:00:56 load avg: 1.51 [ 4/43] test_binop
0:00:58 load avg: 1.51 [ 4/43] test_binop passed
0:00:58 load avg: 1.51 [ 5/43] test_bisect
0:01:00 load avg: 1.55 [ 5/43] test_bisect passed
0:01:00 load avg: 1.55 [ 6/43] test_bytes
0:05:05 load avg: 1.16 [ 6/43] test_bytes passed in 4 min 4 sec
0:05:05 load avg: 1.16 [ 7/43] test_bz2
0:05:32 load avg: 1.26 [ 7/43] test_bz2 passed
0:05:32 load avg: 1.26 [ 8/43] test_cmath
0:05:38 load avg: 1.31 [ 8/43] test_cmath passed
0:05:39 load avg: 1.31 [ 9/43] test_codecs
0:06:24 load avg: 1.13 [ 9/43] test_codecs passed in 45.3 sec
0:06:24 load avg: 1.13 [10/43] test_collections
0:06:50 load avg: 1.17 [10/43] test_collections passed
0:06:50 load avg: 1.17 [11/43] test_complex
0:06:55 load avg: 1.15 [11/43] test_complex passed
0:06:55 load avg: 1.15 [12/43] test_dataclasses
0:07:19 load avg: 1.03 [12/43] test_dataclasses passed
0:07:19 load avg: 1.03 [13/43] test_datetime
0:09:46 load avg: 2.00 [13/43] test_datetime passed in 2 min 26 sec
0:09:46 load avg: 2.00 [14/43] test_decimal
0:12:14 load avg: 1.14 [14/43] test_decimal passed in 2 min 28 sec
0:12:14 load avg: 1.14 [15/43] test_difflib
0:12:43 load avg: 1.09 [15/43] test_difflib passed
0:12:43 load avg: 1.09 [16/43] test_float
0:12:53 load avg: 1.15 [16/43] test_float passed
0:12:53 load avg: 1.15 [17/43] test_fstring
0:15:59 load avg: 1.01 [17/43] test_fstring passed in 3 min 6 sec
0:15:59 load avg: 1.01 [18/43] test_functools
}}}
Even (real) hours later `test_functool` was not passed. The explanation
for this can be found in `configure.ac`:
{{{
2088 # Use -fprofile-update=atomic to fix a random GCC internal error
on PGO
2089 # build (gh-145801) caused by corruption of profile data (.gcda
files).
}}}
To understand this it's necessary to know that `GCC 15.2` reports every
time when compiling a CPython source file
{{{
warning: target does not support atomic profile update, single mode is
selected
}}}
This warning seems to indicate that compiler option `-fprofile-
update=atomic` is automatically converted into `-fprofile-update=single`
and so `GCC 15.2` has to run (randomly?) into a bug producing corrupted
profile data. (At least twice I could reproduce the described behaviour.
Coincidence?)
What's left are tests with MacPorts' default without BLAKE2 hash function.
--
Ticket URL: <https://trac.macports.org/ticket/74366>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list