[Android] aarch64 build crashes on Android 16 (SDK 36) — SIGSEGV in font_driver_init_first
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
The aarch64 RetroArch build (com.retroarch.aarch64) crashes immediately on startup with SIGSEGV on Android 16 (API 36). The 32-bit build (com.retroarch, armeabi-v7a) works fine on the same device.
This is likely related to #17675 — a user there also reports RetroArch "won't open" on a Pixel 9 Pro running Android 16.
Device
- Model: Samsung Galaxy S23 (SM-S911U1, Snapdragon 8 Gen 2)
- OS: Android 16 (API 36)
- Build:
samsung/dm1quew/dm1q:16/BP2A.250605.031.A3/S911U1UES7EZB6:user/release-keys - Kernel:
Linux 5.15.178-android13-8(4KB page size) - ABI: arm64-v8a
RetroArch version
- aarch64 nightly from buildbot (1.22.2) — crashes
- 32-bit nightly from buildbot (1.22.2) — works
Tombstone
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x0000007280c9b03b
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
backtrace:
#00 pc 0x0e6e284 libretroarch-activity.so
#01 pc 0x0bfeec0 libretroarch-activity.so
#02 pc 0x0bf3fd8 libretroarch-activity.so
#03 pc 0x0bfebf4 libretroarch-activity.so (font_driver_init_first+184)
#04 pc 0x0f32868 libretroarch-activity.so
#05 pc 0x0f324c0 libretroarch-activity.so
#06 pc 0x0d89ea4 libretroarch-activity.so
#07 pc 0x0c6fb58 libretroarch-activity.so (drivers_init+1588)
#08 pc 0x0c888e8 libretroarch-activity.so (retroarch_main_init+8556)
#11 pc 0x0c855d8 libretroarch-activity.so (rarch_main+528)
BuildId: 177a70d08f24cd5a4ce7ec9338c0dbe062cd9723
Notes
- Crash occurs during early init:
retroarch_main_init→drivers_init→font_driver_init_first SEGV_ACCERRwith PAC and tagged addresses enabled suggests possible pointer authentication or memory tagging issue on newer ARM cores- Memory near the fault shows RetroArch config strings ("nul", "false", "true", "Quitter"), suggesting the crash is in config/font parsing code
- The 32-bit build avoids the issue entirely (no PAC/MTE in 32-bit mode)
Steps to reproduce
- Install
RetroArch_aarch64.apkfrom buildbot nightly on an Android 16 device - Launch the app
- App crashes immediately (within ~1 second)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the crash from the arm64 nightly APK on Android 16 and compare it with the working 32-bit build. Trace the initialization path from retroarch_main_init through drivers_init to font_driver_init_first, using the provided tombstone and BuildId; done means the arm64 app launches without the SIGSEGV while the existing startup path remains functional.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, c
- Domain
- mobile-dev, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 44/100