sys-boot/m1n1-bin is now available

Posted: 2026-08-08 in asahi by James Calligeros | Revision: 3
Format:
2.0
As most Asahi users will be aware, m1n1 now requires Rust. More specifically, it requires the aarch64-none-softfloat target. While it is possible to build core and alloc by passing a flag to m1n1's Makefile, core and alloc have versioned dependencies which change with each minor Rust version. As such, it is logistically impossible to do this within the confines of Gentoo's Rust packaging infrastructure, which requires us to pin specific crate versions in the dependent package's ebuild.

As a user, you have two options: 1. Set RUST_CROSS_TARGETS appropriately
  If you are using dev-lang/rust, you have the option of building
  std for an arbitrary set of target triples. Create the file
  /etc/portage/env/dev-lang/rust with the contents:
      I_KNOW_WHAT_I_AM_DOING_CROSS=yes
      RUST_CROSS_TARGETS=(
              "AArch64:aarch64-unknown-none-softfloat:aarch64-unknown-linux-gnu"
      )
  and rebuild dev-lang/rust. You should now be able to build sys-boot/m1n1
  just as before.
2. Use the new sys-boot/m1n1-bin package
  If you do not wish to use dev-lang/rust, we now have sys-boot/m1n1-bin,
  which is a drop-in replacement for sys-boot/m1n1. Unmerge sys-boot/m1n1
  and then emerge sys-boot/m1n1-bin. The binary is built from each GitHub
  tag on GitHub CI runners. You may inspect the build pipeline in the m1n1
  repository.