Skip to content

ctypes.pythonapi issues; getting AttributeError: undefined symbol #1866

Closed
@SomberNight

Description

@SomberNight

Using the new python3 toolchain, I am trying to use PyCryptodome (3.7+) as a dependency.

As in #1685, PyCryptodome >= 3.6.4 runs into compilation issues; I am trying to fix these too, though this is not that relevant here.

PyCryptodome >=3.6.0 crashes at runtime (since commit Legrandin/pycryptodome@f5aa2c1). So actually the currently pinned version in the recipe does not work:

The issue at runtime is with ctypes.

Say I have a main script that just does the following (https://github.com/Legrandin/pycryptodome/blob/95ccce7ae82d3a36f1a8652dd2c645222d0128dd/lib/Crypto/Util/_raw_api.py#L200):

import ctypes
ctypes.pythonapi.PyObject_GetBuffer

This works with cpython on my laptop, but with the p4a-compiled python on Android it fails:

06-14 19:06:27.053 15246 15274 I python  : Android kivy bootstrap done. __name__ is __main__
06-14 19:06:27.053 15246 15274 I python  : AND: Ran string
06-14 19:06:27.053 15246 15274 I python  : Run user program, change dir and execute entrypoint
06-14 19:06:27.092 15246 15274 I python  : Traceback (most recent call last):
06-14 19:06:27.092 15246 15274 I python  :   File "/home/user/wspace/electrum/.buildozer/android/app/main.py", line 84, in <module>
06-14 19:06:27.093 15246 15274 I python  :   File "/home/user/wspace/electrum/.buildozer/android/platform/build/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21/python3/Lib/ctypes/__init__.py", line 369, in __getattr__
06-14 19:06:27.093 15246 15274 I python  :   File "/home/user/wspace/electrum/.buildozer/android/platform/build/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21/python3/Lib/ctypes/__init__.py", line 374, in __getitem__
06-14 19:06:27.094 15246 15274 I python  : AttributeError: undefined symbol: PyObject_GetBuffer

I have also tried to access some other attributes of ctypes.pythonapi, such as Py_IncRef, which raises the same exception.

Any idea what's going on here? Why is ctypes.pythonapi non-functional?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions