Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
Description
Bug report
Bug description:
When doing cross-builds, thePEP-739build-details.json
gets generated using inconsistent data, some of which based on the build python, and some from the target platform python.
See for example the following gist:
https://gist.github.com/itamaro/8f23ebec2e142fd7480241b76c16c4e0
The gist contains thebuild-details.json
generated for a 3.15 GIL-disabled build, using a 3.15 GIL-enabled build as the build-python.
Concretely:
cd~/pybuild/python/main-default./configure --with-pydebugmake -jcd~/pybuild/python/main-nogil./configure --with-pydebug --disable-gilmake -j# now use the GIL-enabled python to regenerate build-details.json for the nogil build_PYTHON_PROJECT_BASE=. _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_td_darwin_darwin _PYTHON_SYSCONFIGDATA_PATH=build/lib.macosx-14.5-arm64-3.15~/pybuild/python/main-default/python.exe -E Tools/build/generate-build-details.py /tmp/build-details.json
Some examples from the gist:
Incorrect -abi.flags
is["d"]
instead of["t", "d"]
:
"abi": {"flags": ["d" ] },
Correct -libpython.static
has the correct SOABI, includingt
:
"libpython": {"static":"/usr/local/lib/libpython3.15td.a" },
Incorrect -suffixes.extensions
includes extensions for the GIL-enabled ABI:
"extensions": [".cpython-315d-darwin.so",".cpython-315-darwin.so",".abi3.so",".so" ]
Notes
I used a "cross-build" on the same MacOS host here, with GIL enabled vs GIL disabled, because it was the easiest for a full end-to-end repro on a single machine.
The issue is more general though, as I originally observed it when generatingbuild-info.json
files for a MacOS-target runtime (both GIL enabled and disabled) using a Linux-GIL-enabled build-python. That setup is more involved, but the mixing is also more apparent, with some fields using "darwin" and other fields using "linux-gnu-x86_64" as the multiarch string.
CPython versions tested on:
CPython main branch, 3.15, 3.14
Operating systems tested on:
macOS, Linux