When python performs a cross compile, it uses a host interpreter to run
steps on behalf of the foreign architecture to finalize the build.
When performing these steps, foreign modules may be loaded if the SOABI
matches that of the host. This can lead to issues if the modules are
linked against a libc not available on the host or if the binaries
include instructions unsupported by the host.
For now, patch the foreign libraries out of PYTHONPATH and explicitly
define the path to sysconfigdata so builds can complete without error.
This method currently passes all upstream CI pipelines [0] and should
also work (with some modifications) for the migration to 3.12 [1].
Fixes: http://autobuild.buildroot.net/results/c854080e003e9a7d525325073190b472a8f982aa/
[0]: https://github.com/python/cpython/pull/116294
[1]: https://lists.buildroot.org/pipermail/buildroot/2024-February/685369.html
Signed-off-by: Vincent Fazio <vfazio@gmail.com>
Tested-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
(cherry picked from commit d01e13c4d4)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>