Skip to content

Add Linux ARM64 (aarch64) native build support#1561

Open
gnodet wants to merge 1 commit intomasterfrom
arm64-glibc-master
Open

Add Linux ARM64 (aarch64) native build support#1561
gnodet wants to merge 1 commit intomasterfrom
arm64-glibc-master

Conversation

@gnodet
Copy link
Contributor

@gnodet gnodet commented Mar 17, 2026

Summary

Port of #1527 (ARM64 builds for mvnd-1.x) to the master branch:

  • CI runners: Add ubuntu-24.04-arm to the build matrix for native Linux ARM64 builds
  • Matrix fix: Fix broken exclude rules that referenced macos-latest and windows-latest instead of actual runner names (macos-15, windows-2025)
  • glibc pinning: Add glibc.redef.aarch64 that pins all symbols to GLIBC_2.17 (the first glibc version with ARM64 support)
  • Arch-conditional compilation: Add #if defined(__aarch64__) in dynamic-libc-start.c for correct dlsym/dlvsym symver
  • gcc wrapper: Add uname -m detection to select the correct redef file
  • Maven profile: Add linux-aarch64-image-only-require-glibc-2.17 profile in client/pom.xml
  • Release workflow: Add ARM64 glibc patch/verify steps + linux-aarch64 release asset uploads

Test plan

  • CI builds should pass on all platforms (ubuntu x64, ubuntu arm64, macOS Intel, macOS ARM, Windows)
  • Linux AMD64 binary should still only require glibc 2.12
  • Linux ARM64 binary should only require glibc 2.17

🤖 Generated with Claude Code

Port ARM64 build support from mvnd-1.x PR #1527 to master:
- Add ubuntu-24.04-arm runner for Linux ARM64 builds
- Fix broken matrix exclude rules (macos-latest→macos-15, windows-latest→windows-2025)
- Add glibc.redef.aarch64 pinning all symbols to GLIBC_2.17
- Add #if defined(__aarch64__) conditional in dynamic-libc-start.c
- Add uname -m arch detection in gcc wrapper script
- Add linux-aarch64-image-only-require-glibc-2.17 profile in client/pom.xml
- Add ARM64 glibc patch/verify steps in CI workflows
- Add linux-aarch64 release asset upload steps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant