You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Developers want to run rover compiled for the ARM architecture which runs on their new Mac computers with Apple processors. Rover downloads pre-built supergraph binaries that are built from source code in this repository. We currently provide pre-built binaries for architectures x86_64-apple-darwin, x86_64-pc-windows-msvc, and x86_64-unknown-linux-gnu. Our next releases (2.0.6 and 0.36.2) will also have support for the aarch64-unknown-linux-gnu architecture.
Problem
We're blocked on support for aarch64-apple-darwin for a few reasons:
You can cross-compile for aarch64-apple-darwin on an x86_64 machine, but v8 will still generate snapshots (bytecode) in x86_64. This means that running supergraph compose on an M1 when it was compiled on Intel will fail miserably.
Resolution for now
Only deliver prebuilt aarch64-unknown-linux-gnu binaries, and forgo native ARM support for Macs processors. Many other tools at the moment do not provide binaries for this architecture because Apple makes it incredibly hard to support. This should be fine! M1 users can run x86_64-apple-darwin binaries because of Apple's emulation software Rosetta. This should work by default with no configuration because we sign our binaries. Running in Docker will also work because we provide pre-built binaries for aarch64-unknown-linux-gnu.
Long term resolutions
There are a few paths forward here:
If Circle (or Apple) start renting out CI servers that run on Apple's processors, we'll use that to provide these binaries.
If Federation gets oxidized (see: rewritten in 🦀 Rust), this shouldn't be a problem anymore since we won't need to build and embed v8 snapshots into these plugin binaries - we'll just cross compile from x86_64 macs and it will Just Work
For unsupported architectures, we could enable Rover's installer script to clone Rover and run cargo build (this would be a slow installation but maybe better than nothing)
We decide that x86_64 emulation is good enough and never build for aarch64-apple-darwin
The text was updated successfully, but these errors were encountered:
this is no longer blocked because circle has ARM machines we can run now. building for arm is not prioritized at the moment though.
EverlastingBugstopper
changed the title
blocked: cannot cross compile for aarch64-apple-darwin
chore: provide prebuilt binaries for aarch64-apple-darwinApr 18, 2023
ensure those binaries work on Intel machines using Rosetta in the reverse direction
if it works, start downloading only aarch64-apple-darwin binaries regardless of architecture. installers should be version aware, i.e. before 2.5.5 download x86, after 2.5.5 download aarch64
Situation
Developers want to run rover compiled for the ARM architecture which runs on their new Mac computers with Apple processors. Rover downloads pre-built
supergraph
binaries that are built from source code in this repository. We currently provide pre-built binaries for architecturesx86_64-apple-darwin
,x86_64-pc-windows-msvc
, andx86_64-unknown-linux-gnu
. Our next releases (2.0.6 and 0.36.2) will also have support for theaarch64-unknown-linux-gnu
architecture.Problem
We're blocked on support for
aarch64-apple-darwin
for a few reasons:supergraph compose
on an M1 when it was compiled on Intel will fail miserably.Resolution for now
Only deliver prebuilt
aarch64-unknown-linux-gnu
binaries, and forgo native ARM support for Macs processors. Many other tools at the moment do not provide binaries for this architecture because Apple makes it incredibly hard to support. This should be fine! M1 users can runx86_64-apple-darwin
binaries because of Apple's emulation software Rosetta. This should work by default with no configuration because we sign our binaries. Running in Docker will also work because we provide pre-built binaries foraarch64-unknown-linux-gnu
.Long term resolutions
There are a few paths forward here:
cargo build
(this would be a slow installation but maybe better than nothing)aarch64-apple-darwin
The text was updated successfully, but these errors were encountered: