-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Open
Labels
buildThe build process and cross-buildThe build process and cross-buildstdlibPython modules in the Lib dirPython modules in the Lib dirtopic-sysconfigtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
This loop can run forever if there's a cycle in the Makefile variable definitions:
cpython/Lib/sysconfig/__main__.py
Line 79 in 5334732
while len(variables) > 0: |
To reproduce:
make clean
echo 'foo=$(foo)' > ./Modules/Setup.local
./configure
make # hangs forever
Or more minimally:
make clean
echo 'foo=$(foo)' > ./Modules/Setup.local
make Makefile
./python -m sysconfig --generate-posix-vars # hangs forever
Longer cycles are also possible, e.g. v1=$(v2)
, v2=$(v3)
, ...., v999=$(v1)
.
Note that this is less of an issue if the recursive variable definition gets expanded in the Makefile before python -m sysconfig --generate-posix-vars
gets invoked. In that case, Make will detect the cycle and exit before the infinite loop occurs.
@serhiy-storchaka you may be interested, this is very similar to #136073
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
Metadata
Metadata
Assignees
Labels
buildThe build process and cross-buildThe build process and cross-buildstdlibPython modules in the Lib dirPython modules in the Lib dirtopic-sysconfigtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error