homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: building Android with android-ndk-r14
Type: compile error Stage: resolved
Components: Cross-Build Versions: Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: Alex.Willmer, xdegaye, yan12125
Priority: normal Keywords: patch

Created on 2016年12月21日 20:24 by xdegaye, last changed 2022年04月11日 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
api-level.h xdegaye, 2016年12月21日 20:24
Pull Requests
URL Status Linked Edit
PR 4492 merged xdegaye, 2017年11月21日 16:03
Messages (4)
msg283778 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016年12月21日 20:24
android-ndk-r14 introduces "Unified Headers" [1] and is planned to be released late january/early february 2017 [2].
__ANDROID_API__ is not anymore defined in 'android/api-level.h' that is currently included by Include/pyport.h, and is passed instead with -D__ANDROID_API__=$API when compiling. And 'android/api-level.h' is now used to set the API level to 10000 as a Magic version number for a current development build when __ANDROID_API__ is not defined (see attached file).
Adoption of android-ndk-r14 should be made with the following changes:
* Remove the include of <android/api-level.h> in Include/pyport.h.
* Update configure.ac to abort when __ANDROID__ is defined and __ANDROID_API__ is not defined.
* Revert the changes made in issues #28538 and #28762, android-ndk-r14 fixes the problems raised in these two issues.
[1] https://android.googlesource.com/platform/ndk.git/+/master/docs/UnifiedHeaders.md
[2] https://github.com/android-ndk/ndk/wiki 
msg283815 - (view) Author: (yan12125) * Date: 2016年12月22日 06:40
Thanks for compiling up necessary changes for NDK r14! Seems that indicates future Python versions will require at least NDK r14 to build?
Another headache from unified headers is that it requires different --sysroot in compilation and linking. Currently setup.py/distutils does not cope with it well. See my dirty hack at [1] for an ad-hoc workaround.
[1] https://github.com/yan12125/python3-android/blob/master/mk/python/distutils-android-sysroot.patch 
msg283822 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016年12月22日 09:11
> Seems that indicates future Python versions will require at least NDK r14 to build?
Yes.
msg306799 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2017年11月23日 10:44
New changeset c06c22e9a9fb9326e79fcf1551601eacc1fd457d by xdegaye in branch 'master':
bpo-29040: Support building Android with Unified Headers (GH-4492)
https://github.com/python/cpython/commit/c06c22e9a9fb9326e79fcf1551601eacc1fd457d
History
Date User Action Args
2022年04月11日 14:58:41adminsetgithub: 73226
2017年11月23日 10:46:12xdegayesetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2017年11月23日 10:44:40xdegayesetmessages: + msg306799
2017年11月21日 16:03:30xdegayesetkeywords: + patch
stage: needs patch -> patch review
pull_requests: + pull_request4429
2017年11月21日 10:11:39xdegayesetversions: - Python 3.6
2016年12月22日 09:11:00xdegayesetmessages: + msg283822
2016年12月22日 06:40:09yan12125setnosy: + yan12125
messages: + msg283815
2016年12月21日 20:27:49xdegayelinkissue26865 dependencies
2016年12月21日 20:24:25xdegayecreate

AltStyle によって変換されたページ (->オリジナル) /