Skip to content

feat: Add Linux ARM64 support - #2894

Merged
bitsandfoxes merged 16 commits into
mainfrom
feat/linux-arm64-support
Oct 28, 2026
Merged

bitsandfoxes merged 16 commits into
mainfrom
feat/linux-arm64-support

Conversation

@bitsandfoxes

@bitsandfoxes bitsandfoxes commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Linux dedicated servers built for ARM64 (Unity 6000.3+, IL2CPP) now get the native SDK. Both Linux backends (Breakpad and native) are built for x86_64 and ARM64 into matching subfolders of Plugins/Linux/Sentry~ and SentryNative~, the same way Windows ships x86/x64. CI builds the ARM64 libraries on ubuntu-22.04-arm to keep the glibc floor low.

Both architectures build for StandaloneLinux64, so BuildPostProcess reads the target architecture from UnityEditor.LinuxStandalone.UserBuildSettings.architecture, the same setting Unity's own Linux build uses to pick the player. It lives in the Linux module's assembly, so it's read via reflection and falls back to x86_64 on versions without ARM64 support. That arch decides which libraries get copied, which plugin dir they land in (<Player>_Data/Plugins/<arch>), which stale artifacts get cleaned up, and which .dbg sidecars get uploaded.

The subfolders are named after Unity's plugin CPU names (x86_64, ARM64), which is what Unity itself uses for <Player>_Data/Plugins/<CPU>. One name serves both the package and the player, with no mapping.

Since #2708 the Linux libs live in hidden ~ folders and are copied after the build, so the PluginImporter collision in UUM-131765 doesn't apply here and no Unity patch-version gate is needed.

CI

A new ARM64 integration test sits next to the Windows x86 one: one Unity version (the newest in the matrix, skipped below 6000.3), native backend only. The x86_64 matrix already covers the version spread and Breakpad.

  • Build on ubuntu-24.04: Unity has no ARM64 Linux editor and the GameCI images lack the ARM64 server player, so setup-unity.ps1 (now with the Linux x64 Unity CLI) installs Unity with the linux-server module and cross-compiles. The job asserts the player is aarch64.
  • Run on ubuntu-24.04-arm, without xvfb-run since the dedicated server is headless.

Closes #2466. Supersedes #2470.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against b219429

@bitsandfoxes
bitsandfoxes marked this pull request as ready for review October 23, 2026 22:14

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0283c9e. Configure here.

@bitsandfoxes
bitsandfoxes requested review from a team, jpnurmi, limbonaut and tustanivsky October 28, 2026 13:31
@bitsandfoxes
bitsandfoxes merged commit 4e7d4b0 into main Oct 28, 2026
127 of 133 checks passed
@bitsandfoxes
bitsandfoxes deleted the feat/linux-arm64-support branch October 28, 2026 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

arm64 Linux dedicated server support

2 participants