gh-146541: Allow building the Android testbed for 32-bit targets#146542
gh-146541: Allow building the Android testbed for 32-bit targets#146542freakboy3742 merged 3 commits intopython:mainfrom
Conversation
|
I'll wait until @mhsmith weighs in to confirm I haven't missed anything, but I think this all makes sense, and shouldn't impact the 64-bit builds. |
Misc/NEWS.d/next/Build/2026-03-28-02-48-51.gh-issue-146541.k-zlM6.rst
Outdated
Show resolved
Hide resolved
|
I think it would be OK to backport this to 3.13 and 3.14 to avoid future merge conflicts, as it only affects Android-specific build and test code and doesn't add any new features to Python itself. |
0208457 to
6c53216
Compare
This allows building the Android testbed for 32-bit targets using the prebuilt 32-bit dependencies that are already available here: https://github.com/beeware/cpython-android-source-deps/releases , adding the target triplets to match them, `arm-linux-androideabi` and `i686-linux-android`. This also adds the `arm` key to the dictionary used to convert the `machine` variable to an Android ABI in `sysconfig.get_platform()`, because when the Android testbed is being cross-compiled, it stores the contents of the first substring of `_PYTHON_HOST_PLATFORM` before the first `-` symbol in the `machine` variable, which the dictionary does not currently handle.
6c53216 to
6eecb18
Compare
6eecb18 to
b2d3a75
Compare
mhsmith
left a comment
There was a problem hiding this comment.
Thanks, this all looks good to me. In future, please don't force push a PR which has already been reviewed, as it makes the history difficult to understand.
|
!buildbot aarch64 android |
|
🤖 New build scheduled with the buildbot fleet by @mhsmith for commit c92b23e 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F146542%2Fmerge The command will test the builders whose names match following regular expression: The builders matched are:
|
|
@freakboy3742: Ready to merge. |
freakboy3742
left a comment
There was a problem hiding this comment.
Thanks @robertkirkman for the PR, and @mhsmith for the review.
|
Thanks @robertkirkman for the PR, and @freakboy3742 for merging it 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14. |
|
Sorry, @robertkirkman and @freakboy3742, I could not cleanly backport this to |
|
Sorry, @robertkirkman and @freakboy3742, I could not cleanly backport this to |
… targets (pythonGH-146542) Allows building the Android testbed for 32-bit targets, adding the target triplets `arm-linux-androideabi` and `i686-linux-android`. (cherry picked from commit 848bbe9) Co-authored-by: Robert Kirkman <31490854+robertkirkman@users.noreply.github.com> Co-authored-by: Malcolm Smith <smith@chaquo.com>
|
GH-148064 is a backport of this pull request to the 3.14 branch. |
|
I agree a 3.14 backport is warranted, but the 3.13 backport turns out to be non-trivial due to a conflict in sysconfig. It's not a complex change, but it definitely puts it outside the territory of a non-invasive build system change. |
|
FWIW, if you, or anyone else, has time to get the backport to a point where you are comfortable with the patch, it's okay by me. I have no strong feelings and trust your judgement. It's your call 👍 |
…ts (GH-146542) (#148064) Allows building the Android testbed for 32-bit targets, adding the target triplets `arm-linux-androideabi` and `i686-linux-android`. (cherry picked from commit 848bbe9) Co-authored-by: Robert Kirkman <31490854+robertkirkman@users.noreply.github.com> Co-authored-by: Malcolm Smith <smith@chaquo.com>
This allows building the Android testbed for 32-bit targets using the prebuilt 32-bit dependencies that are already available here: https://github.com/beeware/cpython-android-source-deps/releases , adding the target triplets to match them,
arm-linux-androideabiandi686-linux-android.This also adds the
armkey to the dictionary used to convert themachinevariable to an Android ABI insysconfig.get_platform(), because when the Android testbed is being cross-compiled, it stores the contents of the first substring of_PYTHON_HOST_PLATFORMbefore the first-symbol in themachinevariable, which the dictionary does not currently handle.