-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Make armv7-android a tier-1 platform #1795
Comments
This was inspired by rust-lang/rust#37691 just missing the release, and the corresponding warning about code generation on armhf in the release notes. |
Ah yes of course! I actually had no idea armv7 Android was a tier 1 platform for Firefox. It's definitely a bad sign that Firefox has more tier 1 platforms than Rust! (or at least a certain cause of pain, as we're seeing). The change we need to make armv7 tier 1 is likely to just add an auto bot running tests, which should hopefully become very easy very soon! |
Are there current plans for when armv7 Android will become a tier 1 platform for Rust? |
I think we've been running tests on ARM for a while now? Not sure where the canonical tiers are defined though. |
We don't run the compiler on ARM tho, so we are vulnerable to unpleasantnesses such as rust-lang/rust#40593. |
so does the lack of response mean there are no current plans for making android a tier 1 platform? |
ARM is pretty much Tier 1.5 - running rustc on an armv7 host is not CI-tested (because that would require us to find a fast ARM build machine to do CI on), but compiling targeting armv7 is supported. |
@arielb1 That makes sense. Thanks for the explanation. |
BTW, it's possible to create a 32-bit armv7 ("armv8l") chroot on a fast 64-bit aarch64 machine, then run the rustc armv7 test suite inside that. It's what I've been doing on Debian. This isn't exactly androideabi but I imagine there's a quite a lot of overlap and fixing errors here could improve the android situation. I see test failures all the time on armhf(armv7) Debian unfortunately. |
For that, we'll need an armv8 build server. Our CI infrastructure is all in the cloud - do you know of good cloud ARMv8 servers? |
I don't personally know about them in detail, but you could ask ircs://irc.oftc.net/#debian-arm about what they're doing and/or browse the list of Debian machines here and contact the companies listed. For tests.reproducible-builds.org we have some machines donated by codethink.co.uk. This isn't a public offer but it might be worth contacting them to see if they would do a similar thing for Rust. |
In the past I've used Linaro for arm testing. They offered brief loaners for experiments, but might be amenable to a dedicated host for something like language support. The only armv8 cloud service I've been able to find is Scaleway. Reviews say their emphasis is more on price than reliability, but it's worth an experiment. They also offer actual armv7 machines, but I don't know how easy it is to run an android image on them. For Gecko we're just run emulators on x86 cloud hosts. That's very slow of course, but fast x86 cloud hosts are available, and it lets one use established adb-based tools designed for handset development. Does qemu support native execution of armv7 on aarch64 the way people use i386-android images for development on amd64 hosts? That could be another way to test armv7-android directly. |
Triage: still tier 2. |
I understand from the 1.13.0 stable release notes that ARM is currently considered a 2nd tier platform for Rust releases. Android is one of the major software platforms in the world today, and the mobile OS most open to third-party native code. Being able to target it is an important part of Rust's story.
More specifically, Firefox treats arm android as a tier-1 platform. Being able to rely on the same level of support in official rust releases would be a great aide in our deployment of Rust code in the Gecko rendering engine.
I therefore propose that
armv7-linux-androideabi
be promoted to tier-1.The text was updated successfully, but these errors were encountered: