• v0.7.1 c12ee6055c

    release.yml: arm64-static via dockcross/linux-arm64-musl
    release / build (arm64) (push) Waiting to run
    release / build (x86_64) (push) Waiting to run
    release / build (x86_64-static / musl) (push) Waiting to run
    release / build (arm64-static / musl) (push) Waiting to run
    release / release (push) Blocked by required conditions

    leviathan released this 2026-05-24 01:17:03 +00:00 | 10 commits to main since this release

    Third attempt at arm64-static. Previous two:

    1. Alpine container on ubuntu-24.04-arm:
      'JavaScript Actions in Alpine containers only supported on x64
      Linux runners' — actions/checkout JS bundle can't run.

    2. musl-tools on ubuntu-24.04-arm:
      musl-gcc + Ubuntu's /usr/include collide. -isystem /usr/include
      pulls glibc stdio.h whose __gnuc_va_list + __time64_t types
      conflict with musl's stdio.h. -isystem /usr/include/linux alone
      leaves us missing asm/ headers.

    dockcross/linux-arm64-musl avoids both:

    • Image base is Debian (glibc) → actions/checkout works.
    • Ships aarch64-linux-musl-gcc with a CONSISTENT musl + linux-
      uapi sysroot. No header collision.

    The dockcross pattern is: pull the image, ask it to spit out its
    wrapper script ('docker run --rm dockcross/linux-arm64-musl' prints
    a bash wrapper to stdout), then './dockcross bash -c ...' runs the
    command inside the toolchain container with the cwd volume-mounted.

    Produces a statically-linked aarch64 ELF binary, same packaging
    flow as the x86_64-static job.

    Downloads