Skip to content

ci: build and package Linux arm64 (aarch64) native library - #105

Merged
thiagoluiznunes merged 1 commit into
topfreegames:masterfrom
chagretes:feature/linux-arm64
Jul 6, 2026
Merged

ci: build and package Linux arm64 (aarch64) native library#105
thiagoluiznunes merged 1 commit into
topfreegames:masterfrom
chagretes:feature/linux-arm64

Conversation

@chagretes

Copy link
Copy Markdown
Contributor

What

Adds Linux arm64 (aarch64) to the build/release pipeline so com.wildlifestudios.nuget.libpitaya ships an arm64 native lib — enabling Unity dedicated servers / game rooms to run on Linux arm64 (Graviton) hosts.

Changes (purely additive)

  • .github/workflows/build-and-release.yaml: new build-linux-arm64 job (runs on ubuntu-24.04-arm, uses the same Dockerfile so the target glibc matches the x86_64 build), uploading libpitaya_linux_arm64. Added to the package job needs.
  • package.sh: copies the arm64 artifact into PitayaNativeLibraries/Linux/arm64/.
  • package/PitayaNativeLibraries/Linux/arm64/libpitaya-linux.so.meta (new): plugin meta targeting Standalone Linux64 / CPU ARM64, plus the folder .meta.
  • The existing x86_64 lib and its meta (Linux64 CPU x86_64) are unchanged → x86_64 builds are unaffected; Unity 6 selects the right lib per build architecture (confirmed the importer accepts CPU=ARM64 for Standalone Linux64).

Validation

An arm64 libpitaya-linux.so built this way (native aarch64, glibc-matched) was verified with dlopen + LD_BIND_NOW inside the target arm64 game image — loads with all symbols resolved. NEEDED: libz.so.1, libm, libc (OpenSSL linked statically), a subset of the x86_64 lib.

Note

Same DllImport name in a separate Linux/arm64/ folder (mirrors the existing Android arm64/armv7 layout) so only one lib is active per build arch.

@cursor

cursor Bot commented Jul 6, 2026

Copy link
Copy Markdown

Bugbot is not enabled for this team, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Add a build-linux-arm64 job (native arm64 runner, same Dockerfile so the
glibc target matches the x86_64 build) that produces libpitaya-linux.so for
aarch64, and include it in the package: package.sh copies it to
PitayaNativeLibraries/Linux/arm64/, with a plugin meta targeting Standalone
Linux64 / CPU ARM64. Purely additive — the existing x86_64 lib and its meta
(Linux64 CPU x86_64) are unchanged, so x86_64 builds are unaffected and Unity
selects the right lib per build architecture.

Enables Unity dedicated servers / game rooms to run on Linux arm64 (Graviton).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@chagretes
chagretes force-pushed the feature/linux-arm64 branch from 6b82d2a to d0c6191 Compare July 6, 2026 17:36
@cursor

cursor Bot commented Jul 6, 2026

Copy link
Copy Markdown

Bugbot is not enabled for this team, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@thiagoluiznunes thiagoluiznunes left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@thiagoluiznunes
thiagoluiznunes merged commit 5fe3770 into topfreegames:master Jul 6, 2026
1 check passed
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.

2 participants