Skip to content

build and release the CLI for Windows on ARM64 - #1552

Merged
sunshowers merged 1 commit into
mainfrom
jj-stack/build-and-release-the-cli-for-windows-on-arm64-yoksnzlr
Oct 2, 2026
Merged

sunshowers merged 1 commit into
mainfrom
jj-stack/build-and-release-the-cli-for-windows-on-arm64-yoksnzlr

Conversation

@sunshowers

@sunshowers sunshowers commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Adds aarch64-pc-windows-msvc to the dist targets -- with this there will be a oxide-cli-aarch64-pc-windows-msvc.zip.

Also update cargo-dist to 1.0.18 to pick up oxidecomputer/cargo-dist#340.

Noticed this while trying out winget install OxideComputer.OxideCLI on a Surface tablet.

Comment thread dist-workspace.toml
Comment on lines 38 to +40
aarch64-apple-darwin = "macos-14"
aarch64-pc-windows-msvc = "windows-11-arm"
x86_64-apple-darwin = "macos-14"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Alphabetized this and the list above.

@daberkow daberkow left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Looks good!

@ahl ahl 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.

was this tested with our fork of dist?

@sunshowers
sunshowers added this pull request to stack #1555 September 22, 2026 22:45
@sunshowers

sunshowers commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor Author

Revision history

Version Changes from previous version Submitted commit
4 (current) f36cf0e2..a4c8882d a4c8882d
3 8b63b8e1..f36cf0e2 f36cf0e2
2 e99a6204..8b63b8e1 8b63b8e1
1 Initial version e99a6204

Generated by jj-stack from this pull request's force-push history.

@sunshowers
sunshowers force-pushed the jj-stack/build-and-release-the-cli-for-windows-on-arm64-yoksnzlr branch from e99a620 to 8b63b8e Compare September 22, 2026 22:57
@sunshowers

Copy link
Copy Markdown
Contributor Author

Moving to draft while I test.

@sunshowers
sunshowers marked this pull request as draft September 22, 2026 23:02
@sunshowers
sunshowers force-pushed the jj-stack/build-and-release-the-cli-for-windows-on-arm64-yoksnzlr branch from 8b63b8e to f36cf0e Compare September 29, 2026 06:14
@sunshowers

Copy link
Copy Markdown
Contributor Author

Seems to work great! https://github.com/oxidecomputer/oxide.rs/actions/runs/36530091327?pr=1554 has aarch64-pc-windows-msvc in its artifact list now.

@sunshowers

Copy link
Copy Markdown
Contributor Author

Tested the binaries built in #1554 (see workflow artifacts) on a Snapdragon Surface Pro, by logging into the colo rack -- works great.

$ file ~/bin/oxide.exe
/c/Users/rain/bin/oxide.exe: PE32+ executable for MS Windows 6.02 (console), ARM64, 8 sections

$ ~/bin/oxide.exe auth status
  Checking $URL...
Profile "oxide" ($URL) status: Authenticated

@sunshowers
sunshowers marked this pull request as ready for review September 30, 2026 19:05
@sunshowers
sunshowers marked this pull request as draft September 30, 2026 19:06
@sunshowers

Copy link
Copy Markdown
Contributor Author

Actually I want to double check a few more things.

Adds aarch64-pc-windows-msvc to the dist targets -- with this there will be a
`oxide-cli-aarch64-pc-windows-msvc.zip`.

Noticed this while trying out `winget install OxideComputer.OxideCLI` on a Surface tablet.
@sunshowers
sunshowers force-pushed the jj-stack/build-and-release-the-cli-for-windows-on-arm64-yoksnzlr branch from f36cf0e to a4c8882 Compare October 1, 2026 14:53
@sunshowers

sunshowers commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor Author

Okay, simplified this down -- this works great and is ready for review. (Code signing is currently broken, so we'll probably need to update cargo-dist again, but that doesn't need to block landing this.)

@sunshowers
sunshowers marked this pull request as ready for review October 1, 2026 15:24
Comment thread .cargo/config.toml
Comment on lines +4 to +8
[target.aarch64-pc-windows-msvc]
rustflags = [
"-C", "link-args=/STACK:8388608",
]

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.

do we need the gnu equivalent as below?

@sunshowers sunshowers Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Hmm, there's no aarch64-pc-windows-gnu, but there is gnullvm for both x86_64 and aarch64. https://doc.rust-lang.org/rustc/platform-support/windows-gnullvm.html

Given that we don't even try to build gnullvm on any arch, probably not?

@sunshowers
sunshowers merged commit dfecbf6 into main Oct 2, 2026
19 checks passed
@sunshowers
sunshowers deleted the jj-stack/build-and-release-the-cli-for-windows-on-arm64-yoksnzlr branch October 2, 2026 16:44
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.

3 participants