Xavier de Gaye added the comment: 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. It also fixes the missing declaration of sethostname() at API 24 that caused the import of the _socket module to fail. More surprisingly it also fixes the compilation failure with 32 bits architectures (the size of off_t is now 8 instead of 4 previously) and issue29619.patch is not needed now. Only one version of the NDK is supported, currently it is android-ndk-r14 the latest stable release. The '-Wno-nullability-completeness' compilation flag is needed to avoid a flow of warnings in the processing of some NDK headers. 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 which is reserved for the development of the NDK itself. The solution chosen here is: * Undefine HAVE_LANGINFO_H and CODESET in Include/pyport.h to maintain the status quo in the Python code. * The Makefile generated by makesetup runs a script at configure time that checks that nl_langinfo() is not declared and aborts the build otherwise. This allows to detect when langinfo.h starts being not broken anymore when swicthing to a new version of the NDK. In that case the following steps should be taken upon swicthing to this new version: + Remove this script from the build system (obviously). + Remove the changes in Include/pyport.h. + Revert the changes made in issue 28596. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue30386> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com