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.

Title: Android cross-built for armv5te with clang and '-mthumb' crashes with SIGSEGV or SIGILL
Type: crash Stage: resolved
Components: Cross-Build Versions: Python 3.6
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: Alex.Willmer, thomas-petazzoni, xdegaye
Priority: normal Keywords:

Created on 2016-07-24 12:27 by xdegaye, last changed 2022-04-11 14:58 by admin. This issue is now closed.

File name Uploaded Description Edit
strace.txt xdegaye, 2016-07-24 12:27
logcat.txt xdegaye, 2016-07-24 12:27
strace-pydebug.txt xdegaye, 2016-07-24 12:28
logcat-pydebug.txt xdegaye, 2016-07-24 12:28
Messages (3)
msg271146 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-07-24 12:27
Android ndk version r11c.

The crash happens very early on python startup.  The SIGILL occurs when python is built 'with-pydebug'.

Python runs fine on the armv5te emulator when built with clang without '-mthumb'.
Python runs fine on the armv5te emulator when built with gcc 4.9 with or without '-mthumb'.

Attaching the strace and logcat output for each type of build.

The backtrace when python is built 'with-pydebug' (but logcat.txt says that the SIGSEGV occurs at PyUnicode_DecodeUTF8Stateful when not built 'with-pydebug'):

Program received signal SIGILL, Illegal instruction.
0xb6d77e0a in r_object (p=0xbed89588)
    at Python/marshal.c:1340
1340                idx = r_ref_reserve(flag, p);
(gdb) bt
#0  0xb6d77e0a in r_object (p=0xbed89588)
    at Python/marshal.c:1340
#1  0xb6d76ba2 in PyMarshal_ReadObjectFromString (str=0xb6e5f9ae <_Py_M__importlib> "c", len=30106)
    at Python/marshal.c:1584
#2  0xb6d72506 in PyImport_ImportFrozenModuleObject (name='_frozen_importlib')
    at Python/import.c:1187
#3  0xb6d727ec in PyImport_ImportFrozenModule (name=0xb6e49ac0 "_frozen_importlib")
    at Python/import.c:1236
#4  0xb6d7ff96 in import_init (interp=0xb6919068, sysmod=<module at remote 0xb688a818>)
    at Python/pylifecycle.c:243
#5  0xb6d7fc80 in _Py_InitializeEx_Private (install_sigs=1, install_importlib=1)
    at Python/pylifecycle.c:413
#6  0xb6d80f30 in Py_InitializeEx (install_sigs=1)
    at Python/pylifecycle.c:450
#7  0xb6d80f3e in Py_Initialize ()
    at Python/pylifecycle.c:456
#8  0xb6daa5e6 in Py_Main (argc=1, argv=0xb6901068)
    at Modules/main.c:678
#9  0xb6f9b84c in ?? ()
msg271149 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-07-24 12:36
The reference to '-mthumb' in the ndk documentation:
msg307316 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2017-11-30 14:26
ARMV5TE is deprecated in NDK r16 and will be removed in r17.
Closing as won't fix.
Date User Action Args
2022-04-11 14:58:34adminsetgithub: 71793
2017-11-30 14:26:25xdegayesetstatus: open -> closed
resolution: wont fix
messages: + msg307316

stage: resolved
2016-07-29 10:30:05xdegayesetnosy: + thomas-petazzoni
2016-07-24 12:36:10xdegayesetmessages: + msg271149
2016-07-24 12:32:57xdegayelinkissue26865 dependencies
2016-07-24 12:28:36xdegayesetfiles: + logcat-pydebug.txt
2016-07-24 12:28:17xdegayesetfiles: + strace-pydebug.txt
2016-07-24 12:27:58xdegayesetfiles: + logcat.txt
2016-07-24 12:27:43xdegayecreate