WEYL WEYL
← Back to Weyl Standard
guides

Cross-Compilation

Building for aarch64 targets from x86_64 workstations.

Cross-Compilation

Building for aarch64 targets from x86_64 workstations.

Available Targets

TargetPlatformGPU
weyl-cross.graceaarch64-linuxsm_90a (Grace Hopper)
weyl-cross.jetsonaarch64-linuxsm_87 (Jetson Orin)
weyl-cross.aarch64aarch64-linuxnone
weyl-cross.x86-64x86_64-linuxsm_120 (Blackwell)

Usage

# Build for Grace Hopper
pkgs.weyl-cross.grace.mkDerivation {
name = "my-grace-app";
src = ./src;
}
# Build for Jetson Orin
pkgs.weyl-cross.jetson.mkDerivation {
name = "my-jetson-app";
src = ./src;
}

How It Works

Cross-compilation uses:

  1. pkgsCross.aarch64-multiplatform for the target toolchain
  2. CUDA cross-compilation flags for GPU code
  3. The weyl-stdenv flags for debuggability

Distributed Builds

For faster cross-compilation, configure remote builders:

configuration.nix
nix.buildMachines = [{
hostName = "grace-builder";
system = "aarch64-linux";
maxJobs = 32;
supportedFeatures = [ "nixos-test" "big-parallel" ];
}];
nix.distributedBuilds = true;

Native vs Cross

When possible, build natively on target hardware. Cross-compilation is for:

For production inference workloads, build on the target architecture.