Skip to content

ci: use native runner for Windows ARM64 releases - #354

Open
meop wants to merge 4 commits into
chmln:masterfrom
meop:ci/windows-arm64-release-pr
Open

meop wants to merge 4 commits into
chmln:masterfrom
meop:ci/windows-arm64-release-pr

Conversation

@meop

@meop meop commented Aug 31, 2026 •

Copy link
Copy Markdown

Summary

  • Run the existing aarch64-pc-windows-msvc release and test jobs on GitHub native windows-11-arm runners.
  • Add the Windows ARM64 GNU-family Rust target, aarch64-pc-windows-gnullvm. Rust does not provide a literal aarch64-pc-windows-gnu target.
  • Package every Windows target by target triple, so ARM64 binaries are archived as ZIP files with sd.exe.

Toolchain

The GNU-family target installs the MSYS2 CLANGARM64 toolchain and uses the setup action output for Cargo linker configuration. This avoids a runner-specific hard-coded path.

The gnullvm build is linked with -C target-feature=+crt-static. Without it, sd.exe imports MSYS2's libunwind.dll and does not start on a machine without MSYS2. The existing x86_64-pc-windows-gnu build is unaffected; Rust links its unwinder statically.

Validation

The fork-only validation workflow is not included in this PR.

Disclosure

This change was prepared with assistance from Claude (Anthropic) and OpenAI Codex. I reviewed the diff and validated it through the linked GitHub Actions runs.

meop and others added 4 commits August 29, 2026 01:36
The aarch64-pc-windows-gnullvm build linked libunwind dynamically, so
sd.exe imported MSYS2's libunwind.dll and would not start on a machine
without it. Build with +crt-static so libunwind is linked statically.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@meop

meop commented Oct 4, 2026

Copy link
Copy Markdown
Author

Pushed a fix for the GNU-family build: the previous gnullvm artifact imported MSYS2's libunwind.dll, so it would not have started on a clean Windows ARM64 machine. It is now linked with +crt-static, and the fork smoke checks that sd.exe runs with only System32 on PATH. Validation links are updated in the description.

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