Skip to content

Build and provide ARM64 Linux binaries - #6015

Merged
SimplyDanny merged 30 commits into
realm:mainfrom
bradleymackey:feature/linux-binary-aarch64
Aug 16, 2025
Merged

SimplyDanny merged 30 commits into
realm:mainfrom
bradleymackey:feature/linux-binary-aarch64

Conversation

@bradleymackey

@bradleymackey bradleymackey commented Mar 8, 2025 •

Copy link
Copy Markdown
Contributor
  • Linux builds with Docker are now built using the static Linux SDK from Apple, which statically links Musl into the swiftlint binary.
  • Unfortunately, SwiftLint is inherently dependent on shared libraries, so it's not possible at the moment to produce a fully statically linked build. Hosts will need to ensure they have Swift runtime dependencies available. Alternatively, they can run SwiftLint from a Docker container, which bundles all the required runtime dependencies.
    • The aim of this change is to statically link libc (reducing the burden on the host environment to have exactly the correct glibc version).
  • Add an ARM64 build to the build artifacts and include this in linux release arifacts and the cross-platform artifact bundle.
    • The artifact paths of the original amd64 binary are unaffected, and the new arm64 binary is named swiftlint_arm64, located in the same directory as the amd64 binary.

@bradleymackey bradleymackey changed the title Linux: static builds + arm64 build Linux: static libc + arm64 build Mar 8, 2025

@SimplyDanny SimplyDanny left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looking forward to this!

To test the build you could make the docker.yml workflow trigger in pull requests.

Comment thread .github/workflows/docker.yml Outdated
Comment thread .github/workflows/docker.yml Outdated
Comment thread Dockerfile
Comment thread Makefile Outdated
Comment thread tools/build-linux-release.sh
@SimplyDanny SimplyDanny linked an issue Aug 13, 2025 that may be closed by this pull request
2 tasks
@SimplyDanny
SimplyDanny force-pushed the feature/linux-binary-aarch64 branch from 983c4cb to eee433f Compare August 13, 2025 18:35
@SimplyDanny
SimplyDanny force-pushed the feature/linux-binary-aarch64 branch 2 times, most recently from 2106b23 to 3b6020f Compare August 14, 2025 19:58
@SimplyDanny
SimplyDanny force-pushed the feature/linux-binary-aarch64 branch from 3b6020f to 0abcd82 Compare August 14, 2025 20:01
@SimplyDanny
SimplyDanny force-pushed the feature/linux-binary-aarch64 branch from d3a2b12 to fe00900 Compare August 15, 2025 16:33
@SimplyDanny
SimplyDanny marked this pull request as ready for review August 15, 2025 16:33
@SimplyDanny
SimplyDanny force-pushed the feature/linux-binary-aarch64 branch from fe00900 to ba70e10 Compare August 15, 2025 16:36
@SimplyDanny
SimplyDanny force-pushed the feature/linux-binary-aarch64 branch from ba70e10 to de0702f Compare August 15, 2025 16:42
@SimplyDanny SimplyDanny changed the title Linux: static libc + arm64 build Build and provide ARM64 Linux binaries Aug 16, 2025
@SimplyDanny
SimplyDanny merged commit ad30ece into realm:main Aug 16, 2025
21 checks 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.

Please provide linux/arm64 Binary Release

2 participants