New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a build infrastructure for Android #74571
Comments
This PR adds a build infrastructure for Android on linux that allows a developer to check that source code changes do not break the existing state of this support by testing the changes on Android with a simple command. For example after a change to the socket module: The README in the PR describes how to install the Android NDK and SDK, how to cross-compile Python, how to run python interactively or to run the Python test suite on the emulator, how to debug python on the emulator with gdb. This build system has been tested with android-ndk-r13 and android-ndk-r14 which is the latest stable release of the NDK. UnifiedHeaders [1] introduced in android-ndk-r14 is not yet used by this version of the build system. [1] https://android.googlesource.com/platform/ndk.git/+/master/docs/UnifiedHeaders.md |
The build system for the x86_64, x86 and armv7 architectures has been tested on API 21 and for the x86_64 and arm64 architectures on API 24. Of these combinations of architecture/api, only x86_64 on API 21 builds correctly today, the others were building correctly few weeks ago but recent changes in Python seem to have broken those builds. To fix this temporarily:
|
Commited 'bpo-30386: Support the new NDK Unified Headers'. This does fix the missing declarations in the NDK headers and android-api-24.patch is not needed now. Unified Headers comes with a new annoying problem: langinfo.h exists now but nl_langinfo() is intentionaly not declared except for the __ANDROID_API_FUTURE__ API level
|
Details of commit "Add Makefile targets to implement the buildbot steps" in 543a287: The following buildbot steps, as defined by the UnixBuild class of the master.cfg buildbot configuration file, have now their corresponding commands:
The 'configure' Makefile target builds the native interpreter, the external libraries and runs configure for the target host on its first execution. Afterwards it mainly runs configure. As it is, the native interpreter is not distclean(ed) by the above four steps and therefore changes made in Setup.dist are ignored by the successive rebuilds of the native interpreter. The following changes have also been made:
|
Details of commit "Update the native interpreter build on Setup.dist and version changes." in 408c05d: Native interpreter build:
|
I don't intend to change the current code in PR 1629 until there is a review or comments asking for changes. Ned Deily has self-requested a review, reviews from other people are also welcome. |
See also python/buildmaster-config#26 : "Add the Android build factory". |
See also the thread on python-dev: |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: