Building Helix Editor for linux-musl on macOS
# aarch64
rustup target add aarch64-unknown-linux-musl
# x86_64
rustup target add x86_64-unknown-linux-musl
Install linux musl cross compiler
# aarch64
brew install messense/macos-cross-toolchains/aarch64-unknown-linux-musl
# x86_64
brew install messense/macos-cross-toolchains/x86_64-unknown-linux-musl
Set Environment Variables
# aarch64
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-unknown-linux-musl-gcc
export CC_aarch64_unknown_linux_gnu=aarch64-linux-musl-gcc
export CXX_aarch64_unknown_linux_musl=aarch64-linux-musl-g++
export AR_aarch64_unknown_linux_musl=aarch64-linux-musl-ar
# x86_64
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=x86_64-linux-musl-gcc
export CC_x86_64_unknown_linux_musl=x86_64-linux-musl-gcc
export CXX_x86_64_unknown_linux_musl=x86_64-linux-musl-g++
export AR_x86_64_unknown_linux_musl=x86_64-linux-musl-ar
# aarch64
set -gx CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER aarch64-unknown-linux-musl-gcc
set -gx CC_aarch64_unknown_linux_gnu aarch64-linux-musl-gcc
set -gx CXX_aarch64_unknown_linux_musl aarch64-linux-musl-g++
set -gx AR_aarch64_unknown_linux_musl aarch64-linux-musl-ar
# x86_64
set -gx CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER x86_64-linux-musl-gcc
set -gx CC_x86_64_unknown_linux_musl x86_64-linux-musl-gcc
set -gx CXX_x86_64_unknown_linux_musl x86_64-linux-musl-g++
set -gx AR_x86_64_unknown_linux_musl x86_64-linux-musl-ar
# aarch64
RUSTFLAGS=" -C target-feature=-crt-static" cargo build \
--profile opt \
--config ' build.rustflags="-C target-cpu=native"' \
--locked \
--target aarch64-unknown-linux-musl
# x86_64
RUSTFLAGS=" -C target-feature=-crt-static" cargo build \
--profile opt \
--config ' build.rustflags="-C target-cpu=native"' \
--locked \
--target x86_64-unknown-linux-musl