Winit: aarch64/Apple Silicon/M1 support

Created on 6 Dec 2020  Â·  8Comments  Â·  Source: rust-windowing/winit

When trying to compile Alacritty (and probably many more) on Apple Silicon, the compilation fails without the fix in 3a077ff21125e9b130ab18596e9a363b5d9dcb86 .

A patch release would be greatly appreciated. Thank you.

Most helpful comment

It looks like glutin fails to compile due to breaking changes in master.

--- a/glutin/src/platform/mod.rs
+++ b/glutin/src/platform/mod.rs
@@ -30,7 +30,7 @@ pub mod desktop {
         target_os = "netbsd",
         target_os = "openbsd",
     ))]
-    pub use winit::platform::desktop::*;
+    pub use winit::platform::run_return::*;
 }

 use std::os::raw;

With this patch applied locally, alacritty gets past its initial build failure. Here is the override in Cargo.toml (note that it still doesn't work, but it's nothing related to this repository.

--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,3 +8,7 @@ members = [
 lto = true
 debug = 1
 incremental = false
+
+[patch.crates-io]
+winit = { git = "https://github.com/rust-windowing/winit" }
+glutin = { path = "/path/to/glutin/glutin" }

All 8 comments

Winit doesn't have a known way to perform patch releases unfortunately, I'll try to come up with something.

It looks like in case of alacritty, the build then fails when compiling glutin with:

glutin git:(master) ✗ cargo build
    Updating git repository `https://github.com/rust-windowing/winit`
    Updating crates.io index
   Compiling cocoa v0.24.0
   Compiling winit v0.23.0 (https://github.com/rust-windowing/winit#8fb7aa5c)
   Compiling glutin v0.25.1 (/Users/byron/dev/glutin/glutin)
error[E0432]: unresolved import `winit::platform::desktop`
  --> glutin/src/platform/mod.rs:33:30
   |
33 |     pub use winit::platform::desktop::*;
   |                              ^^^^^^^ could not find `desktop` in `platform`

The patch release can't be done without cherry picking things and moving them into a separate branch. I'm also not sure how winit scrips are working here. I think we can do a major release soon-ish, but can't say more.

Thanks a lot, I think I went ahead being a bit too specific in the title and just corrected that.
I will take a look and see why glutin doesn't manage to compile in the desktop module.

Lastly, if you need any testing, I am happy to help.

It looks like glutin fails to compile due to breaking changes in master.

--- a/glutin/src/platform/mod.rs
+++ b/glutin/src/platform/mod.rs
@@ -30,7 +30,7 @@ pub mod desktop {
         target_os = "netbsd",
         target_os = "openbsd",
     ))]
-    pub use winit::platform::desktop::*;
+    pub use winit::platform::run_return::*;
 }

 use std::os::raw;

With this patch applied locally, alacritty gets past its initial build failure. Here is the override in Cargo.toml (note that it still doesn't work, but it's nothing related to this repository.

--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,3 +8,7 @@ members = [
 lto = true
 debug = 1
 incremental = false
+
+[patch.crates-io]
+winit = { git = "https://github.com/rust-windowing/winit" }
+glutin = { path = "/path/to/glutin/glutin" }

@kchibisov Are you aware of any blockers to publishing a new release? This is the last crate I need updated for an app I'm building to get it working on Apple Silicon.

+1, waiting for the new release of winit to compile my code on Apple Silicon Mac

@ifsheldon If you haven't seen it yet, there'll be a release when #1793 gets merged.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

swiftcoder picture swiftcoder  Â·  3Comments

tomaka picture tomaka  Â·  3Comments

ryanisaacg picture ryanisaacg  Â·  3Comments

e00E picture e00E  Â·  5Comments

alexheretic picture alexheretic  Â·  4Comments