Skip to content

Publish a linux/arm64 (aarch64) release binary #542

Description

@rakiz

Request

Add an aarch64-linux (a.k.a. arm64-linux) binary to the release assets, alongside the existing x86_64-linux and arm64-darwin ones.

Current state

As of v0.4.0, the release ships three assets:

  • scip-clang-x86_64-linux
  • scip-clang-dev-x86_64-linux
  • scip-clang-arm64-darwin

So ARM is covered on macOS but not on Linux. Users on aarch64-linux (ARM servers, AWS Graviton, ARM CI runners, ARM dev machines) currently have to build scip-clang from source — which means compiling LLVM/Clang locally, a heavy step that a published binary would remove.

What seems to be missing

Looking at .github/workflows/release.yml, the build-and-upload-artifacts matrix has three jobs, all on ubuntu-24.04-…-amd64 or macos-14 — there's no Linux ARM runner in the matrix. Adding one appears to be a single matrix entry targeting an arm64 Linux runner (e.g. the GitHub-hosted ubuntu-24.04-arm, or a graph-team arm64 runner mirroring the amd64 one), since:

  • the upload step already globs ./*-release-artifacts/* and is platform-agnostic (per the "Download everything to avoid spelling out the different platforms" comment), so a new artifact would be picked up with no further change;
  • the build itself is the same Bazel/LLVM path, just on aarch64.

The main cost is presumably the runner (LLVM/Clang-from-source + LTO wants a sizeable box), not the workflow change.

Why it matters

A stock aarch64-linux binary would let ARM Linux users install without a local LLVM compile, matching the out-of-the-box experience x86_64 and macOS ARM users already have.

Happy to help test an arm64 build if that's useful.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions