-
Notifications
You must be signed in to change notification settings - Fork 54
Description
I'm trying to get cross-compilation working but without any luck so far. I tried every incantation of buildPlatform, hostPlatform, localSystem, crossSystem in either channels config or host's config, but I just can't get it to work.
In particular:
{
nixpkgs.buildPlatform = { config = "x86_64-unknown-linux-gnu"; };
nixpkgs.hostPlatform = { config = "aarch64-unknown-linux-gnu"; };
}
This should cross-compile according to the nixpkgs documentation, but it doesn't.
Also this (unsure what the difference to above is supposed to be):
{
nixpkgs.localSystem = { config = "x86_64-unknown-linux-gnu"; };
nixpkgs.crossSystem = { config = "aarch64-unknown-linux-gnu"; };
}
Additionally, setting pkgs seems to have zero effect when using fup:
{
nixpkgs.pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux.pkgsCross.aarch64-multiplatform
}
I also tried it in channels config:
{
channels.cross = {
input = nixpkgs; # input = nixpkgs.legacyPackages.x86_64-linux.pkgsCross.aarch64-multiplatform; doesn't work
pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgsCross.aarch64-multiplatform; # ignored?
localSystem = { config = "x86_64-unknown-linux-gnu"; }; # ignored?
crossSystem = { config = "aarch64-unknown-linux-gnu"; }; # ignored?
};
}
Trying to read the code it looks like on is merely able to influence nixpkgs.config
from the flake level, however all these options go into options directly under nipkgs
.
Do you know of anyone successfully using fup for aarch64?
My aarch64 hosts either wrongly build as x86_64, or use qemu to build. The latter is extremely slow to a point it's unusable, and stopped working alltogether recently trying to build "grafana" (just stops doing anything without load).
Any pointers?