Android: Disable native heap pointer tagging for core compatibility - #19280
Merged
Conversation
Targeting Android API 30 or higher enables native heap pointer tagging for the RetroArch process, causing Flycast's ARM64 native code to crash when launching content. Target SDK 29 works, while targets 30 and 36 crash. Setting allowNativeHeapPointerTagging to false resolves the crash at both targets. Libretro cores execute inside the RetroArch process, so apply Android's documented compatibility opt-out while affected native core code is updated for tagged-pointer compatibility.
Contributor
|
As soon as its merged and built I'll test nightly and confirm, thanks for your time doing this. |
Contributor
|
Good catch |
Contributor
|
Fixed my issue. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Targeting Android API 30 or higher enables native heap pointer tagging for the RetroArch process, causing Flycast's ARM64 native code to crash when launching content. Setting allowNativeHeapPointerTagging to false resolves the crash.
Tested on a pixel 6 with android 17. I was not able to reproduce the issue on any other device.
Related Issues
Should resolve #18026 #19187 There have been a few other strange issues with cores, such as ppsspp, on android recently. It's possible this could resolve those issues, but it's untested.
Related Pull Requests
When bisecting, I wasn't able to reproduce unless I was on 53021d4 or newer.
Reviewers
I looked into this on the recommendation of @i30817