Xavier de Gaye <[email protected]> added the comment:
Thanks for fixing the regression Victor.
Here is another potential problem.
On Android API 24 built with NDK r19, symbol resolution fails in the _socket
shared library after changeset 8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b when
python is built with '--enable-shared':
generic_x86_64:/data/local/tmp/python $ python -c "import _socket"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dlopen failed: cannot locate symbol "PyByteArray_Type"
referenced by
"/data/local/tmp/python/lib/python3.8/lib-dynload/_socket.cpython-38d.so"...
This does not happen when the build is configured without '--enable-shared'.
An NDK issue [1] reports the same problem and dimitry in this issue explains
that on Android >= 23 the shared library must be linked against the shared
library where the symbol is defined. Dimitry says that the Android loader was
fixed in M (i.e. API 23) and it must refer to the changes listed in the
"RTLD_LOCAL (Available in API level >= 23)" section of "Android changes for NDK
developers" [2].
[1] https://github.com/android-ndk/ndk/issues/201
[2]
https://android.googlesource.com/platform/bionic/+/android-n-mr2-preview-1/android-changes-for-ndk-developers.md
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue21536>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com