Bug#1105149: g-ir-scanner cross wrapper does not interact well with cross building Python extensions
Simon McVittie
smcv at debian.org
Mon May 12 13:01:05 BST 2025
On Mon, 12 May 2025 at 07:52:53 +0200, Helmut Grohne wrote:
>It ended up calling the cross wrapper. Unfortunately,
>there is a short cut "if sysconfig.get_config_var('MULTIARCH') ==
>DEB_HOST_MULTIARCH". The left hand gets influenced by setting
>_PYTHON_SYSCONFIGDATA_NAME and therefore the short cut is taken
>disabling qemu.
And what was the result? Failing to run the scanner because it was a
host-architecture executable and you don't have transparent qemu
emulation of the host architecture on the build architecture?
I was hoping that sysconfig.get_config_var('MULTIARCH') would return the
hard-coded architecture of the running Python interpreter, which would
have meant that this shortcut was correct. But if your override for
cross-building makes sysconfig describe the host architecture rather
than the build architecture, then yes this is wrong.
Is there anything - perhaps in sys or platform rather than sysconfig -
that would tell us, specifically, the architecture of the running Python
interpreter? Unfortunately I don't see anything immediately useful in
the documentation of those modules.
The sysconfig API documentation says "The sysconfig module provides
access to Python’s configuration information like the list of
installation paths and the configuration variables relevant for the
current platform" which unfortunately doesn't really help us to decide
whether it refers to the host or build platform: either one of those
could reasonably be described as "current".
I think g-ir-scanner is probably slow enough that an exec of the CAN_RUN
helper before we run the actual scanner is not a significant slowdown,
so I think dropping this shortcut would probably be OK. Please could you
propose a tested merge request or patch?
Are you targeting this for a trixie freeze exception, or for forky?
smcv
More information about the pkg-gnome-maintainers
mailing list