1.7 KiB
Experimental macOS build scripts
This is the folder for experimental macOS build support on Apple Silicon (we do not plan to support x86_64 macOS).
These scripts are not guaranteed to work and are not actively supported by the maintainer or other contributors. If you do have any issues, please mention @IAmTheNerdNextDoor in GitHub Issues.
Dependencies
Regardless of stdlib, you will need:
- Rustup (DO NOT install Rustup from Homebrew as you will incur conflicts. If you have Rustup installed from Homebrew, uninstall it and reinstall from the Rustup site.)
- aarch64-none-elf
- Homebrew
- QEMU (
brew install qemu) - dosfstools (
brew install dosfstools)
If building for the GNU library:
- aarch64-unknown-linux-gnu (
brew tap messense/macos-cross-toolchains && brew install aarch64-unknown-linux-gnu)
If building for the Musl library:
- Zig (
brew install zig)
We use Zig to cross-compile to Linux musl on macOS.
When it comes to Rust, you need the nightly toolchain. To install it, run:
rustup default nightly
Building
You can start building the initrd programs using this script:
./scripts/mac-experimental/build-deps.sh
musl programs are built by default.
If you want GNU program builds:
stdlib=gnu ./scripts/mac-experimental/build-deps.sh
After building, you can make the initrd with:
./scripts/mac-experimental/create-image.sh
The initrd should now be at ./moss.img.
You can then build and run moss with:
cargo run --release
If you get an error about aarch64-unknown-none-softfloat during building, you need to install the target:
rustup target install aarch64-unknown-none-softfloat
Have fun!