Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust supports Windows on Arm #4

Merged
merged 1 commit into from
Dec 22, 2020
Merged

Rust supports Windows on Arm #4

merged 1 commit into from
Dec 22, 2020

Conversation

woachk
Copy link
Contributor

@woachk woachk commented Jun 24, 2020

Firefox is supported and is on production for Windows on Arm. One of its big dependencies is Rust.

Firefox is supported and is on production for Windows on Arm. One of its big dependencies is Rust.
@dstaley
Copy link
Owner

dstaley commented Jun 24, 2020

Rust is in an interesting position because rustup isn't distributed as an ARM64 binary. I'm not sure what toolchain gets installed when you run the installer linked on this page. If it gives you the ARM64 toolchain, I'll merge this, but if it requires additional steps to install the ARM64 version then it doesn't meet the acceptance criteria listed in the README.

@woachk
Copy link
Contributor Author

woachk commented Jun 24, 2020

@dstaley it just requires:

rustup target add aarch64-pc-windows-msvc

tbh, that shouldn't count as an additional step beyond the normal ones :)

@dstaley
Copy link
Owner

dstaley commented Jun 24, 2020

I know it's a small step, but my goal with the project was to highlight applications that are shipping ARM64 versions by default. My thinking was that I'd only light up an application if you could follow the exact same steps on both an x86 and an ARM64 machine and get the respective versions. If the x86 version of Rust doesn't require the user to run the command you've listed, then the ARM64 version would need to work without the command in order to mark it as available.

That being said, I'm surprised the installer doesn't default to the correct toolchain, and I'll be filing an issue with rustup later today.

Furthermore, I'm hesitant to mark Rust as available since it looks like rustc and cargo aren't available for aarch64-pc-windows-msvc. I'm not familiar enough with Rust to fully understand what that means, but the fact that the platform support page is explicit in denoting whether a platform supports those gives me pause.

@wezm
Copy link

wezm commented Jun 25, 2020

Furthermore, I'm hesitant to mark Rust as available since it looks like rustc and cargo aren't available for aarch64-pc-windows-msvc. I'm not familiar enough with Rust to fully understand what that means, but the fact that the platform support page is explicit in denoting whether a platform supports those gives me pause.

The rustc and cargo columns in that table indicate whether rustc and cargo are built for that platform when landing changes. I.e. continuous integration. It doesn’t indicate whether rustc and cargo are available or not.

Landing changes to the rust-lang/rust repository's master branch is gated on platforms building. For some platforms only the standard library is compiled, but for others rustc and cargo are too.

@xobs
Copy link

xobs commented Jun 25, 2020

From my understanding, what it means is that you can target aarch64-pc-windows-msvc, however as you say rustc and cargo are not yet available.

For starters, they are not in the list of standalone installers. In fact, there aren't any installers on that list that don't already have a tickmark in both the cargo and rustc column.

What you get by running rustup target add aarch64-pc-windows-msvc is an x86_64 or i686 compiler that has the ability to build for aarch64, but it does not get you a compiler that is running natively.

There is currently an open issue about rustc being unable to produce binaries when run natively on aarch64: rust-lang/rust#72881 so native binaries certainly won't be available until that's fixed, and even then it needs to be integrated into the release builders.

@tleasor
Copy link

tleasor commented Jun 26, 2020

rustc is now working as a native ARM64 binary when cross-compiled from source. Once I've commited the necessary fixes upstream, I'll look into getting supported added to the release builders.

@ZHOUYue67
Copy link

It seems that support will arrived with v1.49.0

rust-lang/rust#77902

@dstaley dstaley merged commit 7d92106 into dstaley:master Dec 22, 2020
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.

6 participants