Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support 16 KB page sizes #1171

Open
mhsmith opened this issue Jun 4, 2024 · 4 comments
Open

Support 16 KB page sizes #1171

mhsmith opened this issue Jun 4, 2024 · 4 comments
Milestone

Comments

@mhsmith
Copy link
Member

mhsmith commented Jun 4, 2024

Sources:

Beginning with Android 15, Android supports devices that are configured to use a page size of 16 KB (16 KB devices). Devices that use this configuration will not be able to run existing apps that use native code [with 4 KB pages].

16KiB compatible binaries are also compatible with 4KiB page devices. You do not need to build both 16KiB and 4KiB variants of your libraries.

To minimize disruption, the default configuration for NDK r27 remains 4KiB page sizes. A future NDK (likely r28) will change the defaults.

We plan to make 16 KB page compatibility required for app uploads to the Google Play store next year. [This sentence has now been removed, but I expect they'll still require it at some point.]

I don't expect physical devices to start requiring this until at least 2 years after Google Play makes it compulsory. But since our binaries have a lifetime equal to that of a Python version (5 years), we should start building in 16 KB mode as soon as possible. This applies to Python, its supporting libraries in cpython-android-source-deps, Chaquopy, and all wheels.

For Python 3.13 and later, we should fix this upstream.

@mhsmith
Copy link
Member Author

mhsmith commented Oct 9, 2024

This will be fixed in Chaquopy 16 for all Python versions. However, existing wheels will still not be 16 KB-compatible, so unless your project is pure-Python, it may be unable to run on 16 KB devices with Python 3.12 and older. Python 3.13 and newer should be fine.

The current error message from loading a 4 KB binary on a 16 KB device is quite misleading:

dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/com.test.csdk.sample_app-ZWeY82cnmYLTHIVMDD5iuQ==/lib/arm64/libbz2.so" (new hash type from the future?)

I expect they'll improve that before 16 KB devices go mainstream.

@mhsmith
Copy link
Member Author

mhsmith commented Oct 9, 2024

As mentioned at https://developer.android.com/guide/practices/page-sizes, full 16 KB compatibility would also require us to provide a 16 KB version of libc++_shared.so. This is included in NDK version 27 and later.

I updated the chaquopy-libcxx recipe and tested it on Python 3.8, ARM64, API level 34, with all packages that require chaquopy-libcxx. I made this list as follows

find . -name '*cp38*' | while read path; do if unzip -p $path '*/METADATA' | grep -q chaquopy-libcxx; then dirname $path; fi; done | sort | uniq | sed 's|./||' | tr '\n' ' '

brotli contourpy cymem depthai dlib editdistance gensim greenlet grpcio jpegio kiwisolver llvmlite matplotlib murmurhash numba opencv-contrib-python opencv-contrib-python-headless opencv-python opencv-python-headless pandas preshed qutip rawpy scikit-image scikit-learn scipy sentencepiece spacy srsly tensorflow tflite-runtime thinc tokenizers torch torchvision xgboost

Then do the same with the non-Python chaquopy packages:

chaquopy-crc32c chaquopy-flac chaquopy-geos chaquopy-libcxx chaquopy-libraw chaquopy-libtiff chaquopy-libzmq chaquopy-llvm chaquopy-proj chaquopy-proj-openssl-3

And add any Python packages which use these, and haven't already been listed:

google-crc32c numpy pyproj pyzmq shapely soundfile

All of them pass except for dlib and greenlet, which crash as follows:

16:34:53.542 python.stderr    W  test_face_detector (chaquopy.test.dlib.TestDlib) ...
16:34:53.584 Thread-4         W  type=1400 audit(0.0:7048): avc:  granted  { execute } for  path="/data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/dlib.so" dev="dm-39" ino=346392 scontext=u:r:untrusted_app:s0:c192,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c192,c256,c512,c768 tclass=file app=com.chaquo.python.pkgtest3
16:34:54.017 audit            W  audit_lost=5628 audit_rate_limit=5 audit_backlog_limit=64
16:34:54.017 audit            E  rate limit exceeded
16:34:54.146 libc             W  Access denied finding property "ro.debuggable"
16:34:54.259 chromium         E  [1009/163454.258884:ERROR:elf_dynamic_array_reader.h(64)] tag not found
16:34:54.259 chromium         E  [1009/163454.259979:ERROR:elf_dynamic_array_reader.h(64)] tag not found
16:34:54.260 chromium         E  [1009/163454.260050:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[...]
16:34:54.667 DEBUG            A  pid: 18821, tid: 19009, name: Thread-4  >>> com.chaquo.python.pkgtest3 <<<
16:34:54.667 DEBUG            A  uid: 10192
16:34:54.667 DEBUG            A  tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
16:34:54.667 DEBUG            A  pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
16:34:54.667 DEBUG            A  signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000000
16:34:54.667 DEBUG            A  Cause: null pointer dereference
16:34:54.667 DEBUG            A      x0  00000078c3861720  x1  00000078c3860a58  x2  0000000000000001  x3  b400007a2e008b20
16:34:54.667 DEBUG            A      x4  00000078c3861720  x5  000000786ccda128  x6  fefeff16e5349b0a  x7  7f7f7f7fff7fff7f
16:34:54.667 DEBUG            A      x8  0000000000000000  x9  0000000000004a41  x10 0000000000004a41  x11 00000075b6b2985c
16:34:54.667 DEBUG            A      x12 00000075b613f000  x13 00000075b6b51de8  x14 0000000000000001  x15 0000000000000000
16:34:54.667 DEBUG            A      x16 00000075b6b4f3c8  x17 0000007b892f5840  x18 00000000000000b0  x19 00000078c3860a58
16:34:54.667 DEBUG            A      x20 0000000000000001  x21 0000000000000002  x22 0000000000000002  x23 00000078c3861720
16:34:54.667 DEBUG            A      x24 00000075b6b51000  x25 0000000000000000  x26 0000000000000001  x27 0000000000000001
16:34:54.667 DEBUG            A      x28 0000000000000001  x29 00000078c3860a30
16:34:54.667 DEBUG            A      lr  000000786cd4dcc8  sp  00000078c3860a30  pc  0000000000000000  pst 0000000000001000
16:34:54.667 DEBUG            A  105 total frames
16:34:54.667 DEBUG            A  backtrace:
16:34:54.667 DEBUG            A    NOTE: Function names and BuildId information is missing for some frames due
                                   NOTE: to unreadable libraries. For unwinds of apps, only shared libraries
                                   NOTE: found under the lib/ directory are readable.
                                   NOTE: On this device, run setenforce 0 to make the libraries readable.
                                   NOTE: Unreadable libraries:
                                   NOTE:   /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
                                   NOTE:   /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/dlib.so
16:34:54.667 DEBUG            A        #00 pc 0000000000000000  <unknown>
16:34:54.667 DEBUG            A        #01 pc 000000000012ecc4  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
16:34:54.667 DEBUG            A        #02 pc 000000000012e9b8  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
16:34:54.667 DEBUG            A        #03 pc 00000000000bb3c4  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
16:34:54.667 DEBUG            A        #04 pc 00000000000bb1f0  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
16:34:54.667 DEBUG            A        #05 pc 00000000007b7d3c  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/dlib.so
16:34:54.667 DEBUG            A        #06 pc 00000000007b83c4  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/dlib.so
16:34:54.667 DEBUG            A        #07 pc 00000000003c6e20  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/dlib.so
16:34:54.667 DEBUG            A        #08 pc 0000000000050374  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/dlib.so
16:34:54.667 DEBUG            A        #09 pc 00000000001632cc  /data/app/~~2JMCglDo725c2msXNWQQ_w==/com.chaquo.python.pkgtest3-IcPrrE2s35hNgj5ZfRC7IQ==/base.apk (offset 0x13d20000) (BuildId: 4ba9d6dbd52b41fa9a0a689a6fb1ec4ac7e1b68e)
16:34:54.667 DEBUG            A        #10 pc 0000000000162cac  /data/app/~~2JMCglDo725c2msXNWQQ_w==/com.chaquo.python.pkgtest3-IcPrrE2s35hNgj5ZfRC7IQ==/base.apk (offset 0x13d20000) (_PyObject_MakeTpCall+348) (BuildId: 4ba9d6dbd52b41fa9a0a689a6fb1ec4ac7e1b68e)
17:01:58.899 python.stderr    W  test_basic (chaquopy.test.greenlet.TestGreenlet) ... 
17:01:58.920 Thread-4         W  type=1400 audit(0.0:8890): avc:  granted  { execute } for  path="/data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so" dev="dm-39" ino=344848 scontext=u:r:untrusted_app:s0:c192,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c192,c256,c512,c768 tclass=file app=com.chaquo.python.pkgtest3
17:01:58.920 Thread-4         W  type=1400 audit(0.0:8891): avc:  granted  { execute } for  path="/data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so" dev="dm-39" ino=344841 scontext=u:r:untrusted_app:s0:c192,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c192,c256,c512,c768 tclass=file app=com.chaquo.python.pkgtest3
17:01:58.978 ImeTracker       I  com.chaquo.python.pkgtest3:255aab7a: onRequestHide at ORIGIN_SERVER_HIDE_INPUT reason HIDE_UNSPECIFIED_WINDOW
17:01:58.978 ImeTracker       I  com.chaquo.python.pkgtest3:255aab7a: onCancelled at PHASE_SERVER_SHOULD_HIDE
17:01:58.979 Google...ervice  I  GoogleInputMethodService.onFinishInput():3227 
17:01:58.980 Google...ervice  I  GoogleInputMethodService.updateDeviceLockedStatus():2087 repeatCheckTimes = 0, unlocked = true
17:01:58.980 Google...ervice  I  GoogleInputMethodService.onStartInput():1877 onStartInput(EditorInfo{inputType=0x0(NULL) imeOptions=0x0 privateImeOptions=null actionName=UNSPECIFIED actionLabel=null actionId=0 initialSelStart=-1 initialSelEnd=-1 initialCapsMode=0x0 hintText=null label=null packageName=com.chaquo.python.pkgtest3 fieldId=0 fieldName=null extras=null}, false)
17:01:58.980 Google...ervice  I  GoogleInputMethodService.shouldHideHeaderOnInitialState():4008 ShouldHideHeaderOnInitialState = false
17:01:58.981 Google...ervice  I  GoogleInputMethodService.updateDeviceLockedStatus():2087 repeatCheckTimes = 2, unlocked = true
17:01:59.020 linker64         W  type=1400 audit(0.0:8892): avc:  denied  { search } for  name="tests" dev="dm-39" ino=65540 scontext=u:r:untrusted_app:s0:c192,c256,c512,c768 tcontext=u:object_r:shell_test_data_file:s0 tclass=dir permissive=0 app=com.chaquo.python.pkgtest3
17:01:59.027 audit            W  audit_lost=7207 audit_rate_limit=5 audit_backlog_limit=64
17:01:59.027 audit            E  rate limit exceeded
17:01:59.125 libc             W  Access denied finding property "ro.debuggable"
17:01:59.198 chromium         E  [1009/170159.198003:ERROR:elf_dynamic_array_reader.h(64)] tag not found
17:01:59.198 chromium         E  [1009/170159.198455:ERROR:elf_dynamic_array_reader.h(64)] tag not found
17:01:59.198 chromium         E  [1009/170159.198642:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[...]
17:01:59.573 DEBUG            A  pid: 21490, tid: 21597, name: Thread-4  >>> com.chaquo.python.pkgtest3 <<<
17:01:59.573 DEBUG            A  uid: 10192
17:01:59.573 DEBUG            A  tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
17:01:59.573 DEBUG            A  pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
17:01:59.573 DEBUG            A  signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x0000007866e16200
17:01:59.573 DEBUG            A      x0  000000783cab6e10  x1  000000783cab6158  x2  0000000000000001  x3  b40000794deeb6f0
17:01:59.573 DEBUG            A      x4  000000783cab6e10  x5  000000783615f128  x6  fefeff0029d49b0a  x7  7f7f7f7f7fffff7f
17:01:59.573 DEBUG            A      x8  0000007866e16200  x9  000000000000545d  x10 000000000000545d  x11 0000007859307120
17:01:59.573 DEBUG            A      x12 0000000000000001  x13 0000000000000001  x14 0000000000000000  x15 00000f8abc921882
17:01:59.573 DEBUG            A      x16 0000007859323790  x17 0000007b892f5840  x18 0000000000000000  x19 000000783cab6158
17:01:59.573 DEBUG            A      x20 0000000000000001  x21 0000000000000002  x22 0000000000000002  x23 000000783cab6e10
17:01:59.573 DEBUG            A      x24 0000000000000000  x25 0000000000000000  x26 0000000000000000  x27 0000000000000000
17:01:59.573 DEBUG            A      x28 0000000000000000  x29 000000783cab6130
17:01:59.573 DEBUG            A      lr  00000078361d2cc8  sp  000000783cab6130  pc  0000007866e16200  pst 0000000000001000
17:01:59.573 DEBUG            A  25 total frames
17:01:59.573 DEBUG            A  backtrace:
17:01:59.573 DEBUG            A    NOTE: Function names and BuildId information is missing for some frames due
                                   NOTE: to unreadable libraries. For unwinds of apps, only shared libraries
                                   NOTE: found under the lib/ directory are readable.
                                   NOTE: On this device, run setenforce 0 to make the libraries readable.
                                   NOTE: Unreadable libraries:
                                   NOTE:   /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
                                   NOTE:   /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so
17:01:59.573 DEBUG            A        #00 pc 0000000000016200  <anonymous:7866e00000>
17:01:59.573 DEBUG            A        #01 pc 000000000012ecc4  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
17:01:59.573 DEBUG            A        #02 pc 000000000012e9b8  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
17:01:59.573 DEBUG            A        #03 pc 00000000000bb3c4  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
17:01:59.573 DEBUG            A        #04 pc 00000000000bb1f0  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so
17:01:59.573 DEBUG            A        #05 pc 0000000000018234  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so
17:01:59.573 DEBUG            A        #06 pc 000000000001873c  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so
17:01:59.573 DEBUG            A        #07 pc 00000000000144d8  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so
17:01:59.573 DEBUG            A        #08 pc 00000000000118a8  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so
17:01:59.573 DEBUG            A        #09 pc 0000000000012758  /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so
17:01:59.573 DEBUG            A        #10 pc 000000000016c40c  /data/app/~~DDQnJTfKIQn_nN8DH4nULA==/com.chaquo.python.pkgtest3-7BoBgFfHbMNUwm9X0PaJ6Q==/base.apk (offset 0x13d20000) (BuildId: 4ba9d6dbd52b41fa9a0a689a6fb1ec4ac7e1b68e)
17:01:59.573 DEBUG            A        #11 pc 000000000022a4ec  /data/app/~~DDQnJTfKIQn_nN8DH4nULA==/com.chaquo.python.pkgtest3-7BoBgFfHbMNUwm9X0PaJ6Q==/base.apk (offset 0x13d20000) (BuildId: 4ba9d6dbd52b41fa9a0a689a6fb1ec4ac7e1b68e)
17:01:59.573 DEBUG            A        #12 pc 0000000000227360  /data/app/~~DDQnJTfKIQn_nN8DH4nULA==/com.chaquo.python.pkgtest3-7BoBgFfHbMNUwm9X0PaJ6Q==/base.apk (offset 0x13d20000) (_PyEval_EvalFrameDefault+10452) (BuildId: 4ba9d6dbd52b41fa9a0a689a6fb1ec4ac7e1b68e)

It's possible that this would be fixed by rebuilding dlib and greenlet against the new libc++. But since Android is obviously in the very early stages of this transition, it's not worth spending any more time on it right now. So I've saved the chaquopy-libcxx recipe updates in #1262, and haven't released any new wheels for it.

@mhsmith mhsmith modified the milestones: 16.0, 17.0 Oct 9, 2024
@mhsmith
Copy link
Member Author

mhsmith commented Oct 22, 2024

Greenlet 3.1.1 also crashed when I first built it for Python 3.13 (#1244). However, this was probably caused by building it against a newer libc++ version from NDK 27.1.12297006, and running it with an older one, which is not safe in general. So it looks like we'll have to deal with this now anyway.

Running with libc++ version 180000 from #1262, the tests passed. Running with the existing libc++ version, 11000, it crashed as follows:

``` 13:24:43.184 DEBUG A Build fingerprint: 'google/sdk_gphone64_arm64/emu64a:15/AE3A.240806.005/12228598:userdebug/dev-keys' 13:24:43.184 DEBUG A Revision: '0' 13:24:43.184 DEBUG A ABI: 'arm64' 13:24:43.184 DEBUG A Timestamp: 2024-10-22 13:24:43.018613290+0100 13:24:43.184 DEBUG A Process uptime: 25s 13:24:43.184 DEBUG A Cmdline: com.chaquo.python.pkgtest3 13:24:43.184 DEBUG A pid: 1658, tid: 1749, name: Thread-3 >>> com.chaquo.python.pkgtest3 <<< 13:24:43.184 DEBUG A uid: 10213 13:24:43.184 DEBUG A tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE) 13:24:43.184 DEBUG A pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY) 13:24:43.184 DEBUG A signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr -------- 13:24:43.184 DEBUG A x0 0000000000000000 x1 00000000000006d5 x2 0000000000000006 x3 0000007ce68e21e0 13:24:43.184 DEBUG A x4 0000007ce3e2f0e8 x5 0000007ce3e2f0e8 x6 0000007ce3e2f0e8 x7 0000007ce3e2f0e8 13:24:43.184 DEBUG A x8 00000000000000f0 x9 0000007f99229468 x10 ffffff80fffffb9f x11 0000000000000000 13:24:43.184 DEBUG A x12 0000000000000004 x13 0000000000000000 x14 0000000000000008 x15 0000a655afe79f43 13:24:43.184 DEBUG A x16 0000007f992d8ff8 x17 0000007f992c31c0 x18 0000007ce526c000 x19 000000000000067a 13:24:43.184 DEBUG A x20 00000000000006d5 x21 00000000ffffffff x22 ffffff806560ff7f x23 0000007ce68e2460 13:24:43.184 DEBUG A x24 0000007f9a9f0080 x25 b400007dddcd4d90 x26 0000000000000001 x27 b400007dddcd4d90 13:24:43.184 DEBUG A x28 0000007f9a9f0080 x29 0000007ce68e2260 13:24:43.184 DEBUG A lr 0000007f992616a4 sp 0000007ce68e21c0 pc 0000007f992616d4 pst 0000000000001000 13:24:43.184 DEBUG A 16 total frames 13:24:43.184 DEBUG A backtrace: 13:24:43.184 DEBUG A NOTE: Function names and BuildId information is missing for some frames due NOTE: to unreadable libraries. For unwinds of apps, only shared libraries NOTE: found under the lib/ directory are readable. NOTE: On this device, run setenforce 0 to make the libraries readable. NOTE: Unreadable libraries: NOTE: /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so NOTE: /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #00 pc 000000000005b6d4 /apex/com.android.runtime/lib64/bionic/libc.so (abort+168) (BuildId: 1b9fecf834d610f77e641f026ca7269b) 13:24:43.184 DEBUG A #1 pc 00000000000e00e0 /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so 13:24:43.184 DEBUG A #2 pc 00000000000df6dc /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so 13:24:43.184 DEBUG A #3 pc 00000000000df4fc /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/chaquopy/lib/libc++_shared.so 13:24:43.184 DEBUG A #4 pc 00000000000358dc /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #5 pc 00000000000359a8 /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #6 pc 0000000000023148 /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #7 pc 0000000000024c2c /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #8 pc 000000000002801c /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #9 pc 000000000024a68c /data/app/~~Edc06gT3338cYi7yq9tbrQ==/com.chaquo.python.pkgtest3-UYNbYWAlBlWE_TpMWjHaIw==/base.apk!libpython3.13.so (offset 0x2a98000) (BuildId: d1b6455d9469909b72e8d94b5ce0ab5b3b8e0a0f) 13:24:43.184 DEBUG A #10 pc 000000000023efdc /data/app/~~Edc06gT3338cYi7yq9tbrQ==/com.chaquo.python.pkgtest3-UYNbYWAlBlWE_TpMWjHaIw==/base.apk!libpython3.13.so (offset 0x2a98000) (PyObject_Vectorcall+92) (BuildId: d1b6455d9469909b72e8d94b5ce0ab5b3b8e0a0f) 13:24:43.184 DEBUG A #11 pc 000000000036afa0 /data/app/~~Edc06gT3338cYi7yq9tbrQ==/com.chaquo.python.pkgtest3-UYNbYWAlBlWE_TpMWjHaIw==/base.apk!libpython3.13.so (offset 0x2a98000) (_PyEval_EvalFrameDefault+21448) (BuildId: d1b6455d9469909b72e8d94b5ce0ab5b3b8e0a0f) 13:24:43.184 DEBUG A #12 pc 0000000000025724 /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #13 pc 0000000000024f84 /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #14 pc 0000000000024ac8 /data/data/com.chaquo.python.pkgtest3/files/chaquopy/AssetFinder/requirements/greenlet/_greenlet.so 13:24:43.184 DEBUG A #15 pc 00000000001002b4 [anon:stack_and_tls:1749] ```

@mhsmith
Copy link
Member Author

mhsmith commented Oct 22, 2024

I've now made new builds of the existing versions of dlib and greenlet, and tested all C++-based packages on all Python versions, so it's safe to release chaquopy-libcxx version 180000.

In theory this means we've now done everything necessary to support 16 KB pages. But I haven't been testing on a 16 KB device, so I'll leave this issue open and do that as part of the next Chaquopy release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant