libretro / libretro/RetroArch

[Android] aarch64 build crashes on Android 16 (SDK 36) — SIGSEGV in font_driver_init_first

Open
#18,824 1 comment 0 reactions 0 assignees View on GitHub

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_initdrivers_initfont_driver_init_first
  • SEGV_ACCERR with 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

  1. Install RetroArch_aarch64.apk from buildbot nightly on an Android 16 device
  2. Launch the app
  3. App crashes immediately (within ~1 second)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.